#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 = [1, 2, 3]
print(type(list1))
print(type(li))
print(type(123))
print(type('li'))
print(type(2.5))
"""
2.列表的基本操作
-索引取值
-切片操作
-通过索引去修改值
"""
# 索引取值
li2 = [1, 2, 31, 22, 33, 24, 35]
print(li2[4])
# 切片操作
print(li2[-1])
print(li2[2:6:2])
# 通过索引修改列表内的数值
li2[2] = 666
print(li2)
"""
3.列表操作的操作方法
-添加数据
-删除数据
-修改数据
-查找数据
"""
#1.添加数据
# 方式一:append方法,往列表尾部添加数据
li3 = [1, 2, 3]
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', 666, 22, 33, 24, 35, 'a', 'b', 'c']
# 方法一:remove方法:指定元素进行删除
li4.remove('a')
print(li4)
# 方法二:pop方法:指定元素的索引进行删除操作
res2 = li4.pop(4)
print(res2)
# 方法三:del关键字:指定元素的索引进行删除操作
del li4[0]
print(li4)
3.修改数据
# 通过索引赋值修改数据
li21 = [1, 2, 31, 22, 33, 24, 35]
li21[2] = 133
print(li21)
"""
4.查找数据
"""
li5 = [1, 2, 3, 2, 3, 2, 3, 2, 3]
# 修改
li5[2] = 333
print(li5)
# 查找
# 方法一:index方法:操作某个值的索引(如果值不存在,则报错)
res3 = li5.index(2)
print(res3)
# 方法二:count:统计列表中某个值的个数
res4 = li5.count(2)
print(res4)
"""
5.其他的操作
"""
# 排序
li6 = [100, 1, 500, 31, 220, 33, 24, 35]
# 正序: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方法:获取字典所有的key和vlue
# 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 = {1, 2, 3, 4, 5}
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}
总结
数值:基本数学运算。
字符串:不可变,丰富的方法处理文本。
列表:灵活的可变序列,适合存储同类数据集合。
字典:高效键值对,快速查找。
元组:不可变,保护数据安全。
集合:去重与集合运算。
通过合理选择数据结构,可提升代码效率和可读性。建议在实际编码中结合场景选择最合适的数据类型。
挑战,1个月学一门编程语言——Python基础语法(01)
挑战,1个月学一门编程语言——Python程序的流程控制(02)
加入IP合伙人(站长加盟) | 全面包装你的品牌,搭建一个全自动交付的网赚资源独立站 | 晴天实测8个月运营已稳定月入3W+
限时特惠:本站每日持续更新海量内部创业教程,一年会员只需98元,全站资源免费无限制下载点击查看会员权益
站长微信: qtw123cn
