#python中常用的数据类型

一、数值
"""
整数:int
小数:flaot
布尔值:bool
操作:算数运算
"""

二、字符串

# 1.字符串的定义
方式一:使用单引号来定义
s='我的第一个字符串'
方式二:使用双引号定义
s2="我也是字符串"

方式三:使用三引号
s3='''我是一个可以换行的字符串'''
s4="""我也是一个可以换行的字符串"""

方式四:使用str来定义空字符串
s5=str()
print(s, s2, s3, s4)
注意点
#单引号和双引号的字符串没有区别,不支持换行
#三个单引号和三个双引号没有区别,可以换行输出

# 2.字符串的切片和索引取值
索引取值
"""
案例:
需求:获取s中的第三个字符
s = 'abcdefg'
正索引  0123456
反向索引 从后往前 -7 -6 -5 -4 -3 -2 -1  
字符串中的字符是有顺序的,这个顺序我们把它叫做索引,从0开始数

语法
res = s[索引值]
res = s[2] #获取第三个字符的值
"""
s='abcdefg'
正向索引值
res=s[1]
反向索引值
res=s[-1]
print(res)

"""
正向索引:从前往后,从0开始数
反向索引:从后往前,从-1开始数



切片
"""
案例:
需求:获取下面字符中的hao
s= 'ni hao python'
res=s[3:6]

语法:
-1.基本用法
res = s[起始索引:结束索引]
res = s[:结束索引]
res = s[起始索引:]

-2.反向索引
res = s[-3:-1]

-3.切片使用步长
res = s[起始索引:结束索引:步长]
res = s[::]

注意点:
-切片包含起始索引,不包含结束索引(取头不取尾)
-如果不写起始索引,表示从字符串最前面开始
-如果不写终止索引,表示截取到字符串最后面

"""
s= 'ni hao python'
res=s[3:6]
使用字符串切片
print(s[3:6])
print(s[:6])
print(s[3:])
print(s[-3:-1])

切片使用步长
ss = '123456789'
print(ss[3:9:2])
#思路:先用起始位置为结束位置,把内容截取出来,然后通过步长进行取值



# 3.字符串拼接的方法
需求:将下面字符串拼接为一个整体
name = '张三  '
desc = '我的名字叫做:'
age = 18
desc2 = '我的年龄是:'

# 1.使用 + 进行拼接
res2 = desc + name + desc2 + str(age)
print(res2)
# 2.使用join方法进行拼接
res3 = '*'.join([desc, name, desc2, str(age)])
print(res3)
res4 = ''.join([desc, name, desc2, str(age)])
print(res4)
注意点:字符串只能和字符串拼接

# 4.字符串格式化输入
"""
        欠条
    今天xx向张三,身份证号码xxx
借款 xxx,特写此借条为凭证。

                日期:xxx
                签字:xxx

name = '李四'
code = 5664546136451
money = 8000
date = '2025-03-03'
"""

name = '李四'
code = 5664546136451
money = 8000
date = '2025-03-03'

方式一:使用f表达式
在字符串前面加上f,表示这个字符串使用了f表达式,然后就可以在字符串中通过{}去填充变量。
tempfile = f"""

                欠条
    今天{name}向张三,身份证号码{code}
借款 {money},特写此借条为凭证。

                日期:{date}
                签字:{name}
"""
print(tempfile)

方式二:字符串的format方法
t2 = """

                欠条
    今天{}向张三,身份证号码{}
借款 {},特写此借条为凭证。

                日期:{}
                签字:{}
"""
res = t2.format(name, code, money, date, name)
print(res)

#更多格式化功能
"""
数据    格式   结果    表示
5.111 {:.2f} 5.11   保留小数点后两位
0.25  {:.2%} 25.00% 百分比格式
aa    {:<10} aa     左对齐(宽度为10
aa    {:^10} aa     中间对其(宽度为10
"""
# 1.格式化保留小数的位数
price = 5.111
保留2为小数
desc = f'今天的苹果{price:.2f}一斤'
print(desc)
保留3位小数
desc2 = f'今天的苹果{price:.3f}一斤'
print(desc2)

使用format
保留2位小数
desc3 = ('今天的苹果{:.2f}一斤').format(price)
保留3位小数
desc4 = ('今天的苹果{:.3f}一斤').format(price)

print(desc3)
print(desc4)

案例2:格式保留小数位数
n = 80 100
print(n)
res = '及格率为:{:.3%}'.format(n)
res2 = f'及格率为:{n:.2%}'
print(res)
print(res2)

案例3:字符串格式化的比例
s = '我的名字:{:<7},年龄是:{:^5},性别:{}'.format('张三'8'')
s2 = '我的名字:{:<8},年龄是:{:^5},性别:{}'.format('44'8'')
s3 = '我的名字:{:>8},年龄是:{:^5},性别:{}'.format('55555'8'')
s4 = '我的名字:{:>8},年龄是:{:^5},性别:{}'.format('666'8'')
print(s)
print(s2)
print(s3)
print(s4)



# 5.字符串的处理方法
"""
1.特殊的字符
n:换行符
r:不常见
t:水平制表符......(有时间可以自行扩展)
关闭转义:r'hello n python'
"""
s = 'hello n py t thon'
print(s)

"""
2.常用方法
方法-描述
join-字符串拼接
find-查找元素的位置
count-查找元素的个数
replace-替换字符
split-字符串分割
format-字符串输出
upper-将字母大写
strip-去除空格 收尾指定内容
lower-将字母转换成小写
"""
s = '  fsadg agdg ADFdga sccc ccc***'
# res =s.find('d')
# res =s.count('c')
# res =s.replace('a', "k", 1)
# res =s.split('d')
# res =s.strip('*')
# res =s.upper()
res =s.lower()
print(res)



三、列表
问题:一个变量可以保存一个数值,也可以保存一个字符串,如果把多个数据放在一个变量中来保存,怎样做?
li = ['张三'''18]
"""
1.列表的定义
-列表是使用中括号来表示
-列表可以存放多个数据(n个)
-列表中的数据可以是任意类型
查看数据类型
使用python中内置的type
"""
怎么查看数据类型
list1 = [123]
print(type(list1))
print(type(li))
print(type(123))
print(type('li'))
print(type(2.5))
"""
2.列表的基本操作
-索引取值
-切片操作
-通过索引去修改值
"""
索引取值
li2 = [123122332435]
print(li2[4])

切片操作
print(li2[-1])
print(li2[2:6:2])

通过索引修改列表内的数值
li2[2] = 666
print(li2)

"""
3.列表操作的操作方法
-添加数据
-删除数据
-修改数据
-查找数据
"""
#1.添加数据
方式一:append方法,往列表尾部添加数据
li3 = [123]
li3.append(4)
print(li3)

方式二:insert方法,可以在指定的位置中添加数据
li3.insert(0"pytong")
print(li3)

方式三:extend,往列表中一次性添加多个值
li3.extend(li2)
li3.extend(['a''b''c'])
print(li3)

#2.删除数据
li4 = ['pytong'66622332435'a''b''c']
方法一:remove方法:指定元素进行删除
li4.remove('a')
print(li4)
方法二:pop方法:指定元素的索引进行删除操作
res2 = li4.pop(4)
print(res2)
方法三:del关键字:指定元素的索引进行删除操作
del li4[0]
print(li4)


3.修改数据

通过索引赋值修改数据
li21 = [123122332435]
li21[2] = 133
print(li21)

"""
4.查找数据
"""
li5 = [123232323]
修改
li5[2] = 333
print(li5)

查找
方法一:index方法:操作某个值的索引(如果值不存在,则报错)
res3 = li5.index(2)
print(res3)

方法二:count:统计列表中某个值的个数
res4 = li5.count(2)
print(res4)

"""
5.其他的操作
"""
排序
li6 = [100150031220332435]
正序:sort方法:默认是从小到大进行排序
注意:列表排序一般用于纯数字(数字和字符串都有的列表,无法进行排序)
li6.sort()
print(li6)

倒序:reverse列表的倒序方法
li6.reverse()
print(li6)

从大到小进行数据排序
li6.sort(reverse=True)
print(li6)



# 4.联系案例
"""
需求:通过前面所学的知识,实现一个简单的学生管理系统?
-运行程序可以选择菜单,菜单如下
1.添加学生
2.删除学生
3.所有学生列表
q.退出系统

技术点:
-循环+列表+字符串格式化输出
"""
保存所有学生的信息列表
students = []

print('欢迎使用雪上管理系统')

while True:
    print("""
    ======菜单提示======
    1、添加学生
    2、修改学生
    3、查询学生列表
    q、退出系统
    """)
    n = input("请输入您的选项:")
    if n == '1':
        print("***进入添加学生的功能***")
        name = input("请输入新增的学生名:")
        students.append(name)
        print("***添加完毕,已为您返回主菜单***")

    elif n == '2':
        print("进入删除学生的功能")
        print("***进入删除学生的功能***")
        name = input("请输入删除的学生名:")
        students.remove(name)
        print("***删除完毕,已为您返回主菜单***")

    elif n == '3':
        print("***学生列表信息如下***")
        print(students)
        print("---学生信息显示完毕,已为您返回主菜单---")

    elif n == 'q':
        print("退出程序")
        break
    else:
        print("您输入选择有误,请重新输入!")


# 用Deepseek完善后的代码
保存所有学生的信息列表
students = []

print('欢迎使用学生管理系统')

while True:
    print("""
    ======菜单提示======
    1、添加学生
    2、删除学生
    3、查询学生列表
    q、退出系统
    """)
    choice = input("请输入您的选项:").strip()  去除前后空格

    if choice == '1':
        print("***进入添加学生的功能***")
        while True:
            name = input("请输入学生姓名(输入q返回主菜单):").strip()
            if name.lower() == 'q':
                break
            if not name:
                print("姓名不能为空,请重新输入!")
                continue
            if name in students:
                print(f"学生{name}已存在,请勿重复添加!")
                continue
            students.append(name)
            print(f"学生{name}添加成功!")
            break

    elif choice == '2':
        print("***进入删除学生的功能***")
        if not students:
            print("当前没有学生信息可删除!")
        else:
            name = input("请输入要删除的学生姓名:").strip()
            if name in students:
                students.remove(name)
                print(f"学生{name}已成功删除!")
            else:
                print(f"学生{name}不存在,删除失败!")

    elif choice == '3':
        print("***学生列表信息如下***")
        if not students:
            print("当前没有学生信息!")
        else:
            print("序号t学生姓名")
            print("-" 20)
            for idx, student in enumerate(students, 1):
                print(f"{idx}t{student}")

    elif choice.lower() == 'q':
        print("正在退出系统...")
        break

    else:
        print("输入选项有误,请重新输入!")

print("感谢使用本系统,再见!")




四、字典
"""
问题:
-使用一个列表存储了一个学员信息,姓名,年龄,电话
stu =["小明""18","13811223344"]
stu[2] = "13300990099"
问题一:当前电话写错了怎么修改?
问题二:当前列表中有10个设置100个元素,不知道电话号码具体的下标,怎么修改电话号码?
"""
# 1、字典的定义和基本使用
"""
-字典是通过{}来表示的
-字典的结构:{key:value}
注意点:
-字典的key不能重复
"""
dic ={
    "name":"小明",
    "age":18,
    "mobile":"13588668899"
    }
dic['name'] = '张三'
print(dic)


# 2、字典的常用操作
dic = {}
#-添加数据
方式一:通过key 进行赋值
dic['name'] = "老王"
dic['address'] = "隔壁"
print(dic)

方式二:update方法:一次往字典中更新一个字典
dic.update({"a":11,"b":22})
print(dic)

#-修改数据:通过key 进行赋值修改
dic2 = {"aa":11,"bb":22,"cc":33}
dic2["aa"] = 999
print(dic2)

#-删除数据
dic3 = {"a":11,"b":22,"c":33,"d":44,"e":55}
方法一:pop方法:通过key删除vulue
dic3.pop("a")
print(dic3)

方法二:popitem方法:删除字典中最后一个数据
dic3.popitem()
print(dic3)

方法三:使用del关键字进行删除
del dic3['a']
print(dic3)




#-查找数据
字典查询方法
dic4 = {'b'22'c'33'd'44'e'55}
方法一:直接通过key进行索引取值
res = dic4['b'#没有就会报错
print(res)
方法二:通过get方法指定key获取对应的值
res2 = dic4.get('f'#没有返回none空,不会报错
print(res2)
注意点:通过get方法查找,及时不存在也不会报错,第一种会报错

字典的其他方法
dic5 = {'a'22'b'33'c'44'd'55}
# keys方法:获取字典所有的key
# print(dic5.keys())
keys = list(dic5.keys())
print(keys)
# values方法:获取字典所有的value
# print(dic5.values())
values = list(dic5.values())
print(values)
# items方法:获取字典所有的keyvlue
# print(dic5.items())
items = list(dic5.items())
print(items)




五、元组
# 1、元组的定义
# -元组是定义在小括号中的
# -元组内部的数据:它支持数组、字符串、列表
# -元组也支持索引取值
注意:元组内部的元素,定义厚无法修改
t = (1,2,3,1,2,3,'asd',[11,12,13])
print(t)

# 2、元组的操作方法
# index:根据值查找索引
res = t.index(1)
print(res)

# count:查找某个值在元组中出现的次数
res2 = t.count(1)
print(res2)




六、集合
# 1、集合的定义
# -集合也用{}来表示
# -集合中的数据结构:{value1,value2,value3...}
# -集合是不支持索引取值的
# -创建空集合需要使用set()
# -集合中不能存在重复的元素(集合会自动去重)
# -集合中的元素是无需的
s = {12345}
print(s)

#空字典
ss = {}
# print(type(s2))
print(ss)

#空集合
s1 = set()
print(s1)

# 2、集合的操作方法
#-添加元素
#add方法
s.add(77)
s.add(9)
print(s)

#-删除元素
方式一:pop方法,随机删除一个值
res = s.pop()
print(s)

方式二:remove指定元素值进行删除
res = s.remove(2)
res = s.remove(5)
print(s)

print("删除后的集合:",s)




用完善学习笔记

以下是针对提供的数据类型笔记的总结与完善:

常用数据类型总结与完善一、数值类型

整数(int):如5,-3

浮点数(float):如3.14,-0.001

布尔值(bool):True(1)或False(0),是int的子类。

操作:支持算术运算(+,-,*,/,//,%,**)。

print(True+1) # 输出2,True等价于1

print(False*5) # 输出0

二、字符串(str)1. 定义方式

单/双引号:s1 = 'hello'或s2 = “world”

三引号(多行字符串):

s3='''第一行

第二行'''

s4=”””多行

字符串”””

空字符串:s5 = str()

2. 索引与切片

索引:支持正向(从0开始)和反向(从-1开始)索引。

s=''

print(s[1]) # 'b'(正向)

print(s[-1]) # 'g'(反向)

切片:s[start:end:step],左闭右开。

s='ni hao '

print(s[3:6]) # 'hao'(索引3到5)

print(s[::-1]) # 反转字符串

3. 拼接与格式化

拼接:

name=”张三”

age=18

# 使用+

info=”姓名:”+name+”,年龄:”+str(age)

# 使用join

info=” “.join([“姓名:”, name,”年龄:”,str(age)])

格式化:

# f-(推荐)

price=5.111

print(f”价格:{price:.2f}”) # 保留两位小数

# 方法

print(“及格率:{:.2%}”.(0.8)) # 输出80.00%

4. 常用方法

查找:.find(),.index()

统计:.count()

修改:.(),.upper(),.lower()

分割与去空格:.split(),.strip()

三、列表(list)1. 定义与特点

有序、可变,元素可为任意类型。

li=[1,'a',True, [2,3]]

2. 基本操作

索引/切片:类似字符串。

li=[10,20,30,40]

print(li[1]) # 20

print(li[1:3]) # [20, 30]

修改元素:li[0] = 100

3. 常用方法

增:.(),.(),.()

删:.(),.pop(),del

查:.index(),.count()

排序:.sort(),.()

nums=[3,1,4,2]

nums.sort(=True) # 降序排序 → [4, 3, 2, 1]

4. 学生管理系统优化

改进点:

删除前检查学生是否存在。

输入选项统一转为小写处理。

格式化输出学生列表。

=[]

:

=input(“请输入选项:”).strip().lower() # 统一小写

=='1':

name=input(“姓名:”).strip()

:

.(name)

else:

print(“学生已存在!”)

=='2':

name=input(“删除姓名:”).strip()

:

.(name)

else:

print(“学生不存在!”)

=='3':

print(“学生列表:”)

, (,1):

print(f”{idx}.{name}”)

四、字典(dict)1. 定义与结构

键值对结构,键必须不可变(如字符串、数字、元组)。

user={“name”:”张三”,”age”:20,””: [“读书”,”编程”]}

2. 常用操作

增/改:直接赋值或()

user[“email”]=”zhang@.com”# 新增

user.({“age”:21,””:”男”}) # 修改并添加

删:pop(),(),del

age=user.pop(“age”) # 删除并返回age的值

查:.get()避免。

print(user.get(“”,”无地址信息”)) # 键不存在返回默认值

3. 遍历字典

获取键、值、键值对:

.keys():

print(key)

.():

print(value)

, .items():

print(f”{key}:{value}”)

五、元组(tuple)

不可变、有序,适用于固定数据。

t=(1,”apple”,3.14)

print(t[1]) # 输出”apple”

方法:.index(),.count()

元组解包:

a, b, c=(10,20,30)

六、集合(set)

无序、元素唯一,用于去重和集合运算。

s={1,2,3}

s.add(4) # 添加元素

s.(1) # 删除元素(不存在则报错)

s.(5) # 安全删除(不报错)

集合运算:

a={1,2,3}

b={3,4,5}

print(a|b) # 并集 → {1,2,3,4,5}

print(a&b) # 交集 → {3}

总结

数值:基本数学运算。

字符串:不可变,丰富的方法处理文本。

列表:灵活的可变序列,适合存储同类数据集合。

字典:高效键值对,快速查找。

元组:不可变,保护数据安全。

集合:去重与集合运算。

通过合理选择数据结构,可提升代码效率和可读性。建议在实际编码中结合场景选择最合适的数据类型。

python定义空数组_python定义空数组_python数组定义方法

挑战,1个月学一门编程语言——Python基础语法(01)

挑战,1个月学一门编程语言——Python程序的流程控制(02)

加入IP合伙人(站长加盟) | 全面包装你的品牌,搭建一个全自动交付的网赚资源独立站 | 晴天实测8个月运营已稳定月入3W+
限时特惠:本站每日持续更新海量内部创业教程,一年会员只需98元,全站资源免费无限制下载点击查看会员权益

站长微信: qtw123cn

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注