目录
1.字典类型
字典用于存储相关联的键值对数据,比如商品信息,学员信息,车辆信息....,字典是一个没有先后顺序
的结构,都是以 "键值对" key(属性名):value(属性值) 的格式出现
- key 必须是字符串' '
- value 可以是任意数据类型
1.1创建方式
person_info = {
'name' : 'luyao',
'age' : 18,
'height' : 150.8,
'fd' : ['luyao','zhuque','xuxing','afei'],
'address' :
{
'street' : '长远中路'
}
}
1.2使用
如:获取字典的朋友信息:
person_info = {
'name' : 'luyao',
'age' : 18,
'height' : 150.8,
'fd' : ['luyao','zhuque','xuxing','afei'],
'address' :
{
'street' : '长远中路'
}
}
print(person_info['fd']) # ['luyao', 'zhuque', 'xuxing', 'afei']
xxx = 'height'
print(person_info[xxx]) # 150.8
print(person_info['fd'][0]) # luyao
1.3重新赋值
# 修改用户的身高
person_info['height'] = 180.2
print(person_info[xxx]) # 180.2
# 新增值
person_info['sex'] = '男'
print(person_info['xixiy']) # 访问不存在的值会报错
2.用户交互
2.1 input
用于收集用户的信息
# 输入语句 input
# 创建一个输入对话 , 一般用于收集用户信息
# 使用input的时候代码会阻断执行,必须要用户输入内容以后才能执行下一行代码
# input('输入的提示语')
# 获取用户输入的内容
lashi = input('你是来拉屎的吗?')
print('代码执行完毕',lashi)
input('你是来拉屎的吗?')
2.2 print
# 1. 打印多个值
print(1,2,3,4,5) # 1 2 3 4 5
# 2 多个值打印的时候设置分隔符
print(1,2,3,4,5,sep='?') # 1?2?3?4?5
# 3. 更改输出结束语句 , 输出结束时候默认是换行, 可以手动指定输出结束以后得换行方式
print('666',end='\n')
print('666',end='下一个内容是:') # 666下一个内容是:777
print('777')
2.3 字符串格式化输出
2.3.1 占位符
# 格式化输出
# name = input('你的姓名')
# age = input('你的年龄')
name = '老八'
age = '18'
# 基础用法
print('大家好我是'+name,'我今年'+age+'岁')
# 占位符
# 占位符 作用是在字符串输入的时候占据一个位置,后期再去补充
# %s 用 str 进行占为,后续用字符串去填充
# %d 用 int 进行占为,后续用 整数 去填充
# %f 用 float 进行占为,后续用 小数 去填充
print('"大家好我是%s,我今年%s岁"'%(name,age))
2.3.2 str,format
# str.format 格式化
print('大家好我是{},我今年{}岁'.format(name,'20'))
2.3.3 f-Strings
# f-Strings 格式化
print(f'大家好我是{name},我今年{age}岁')
3.元组类型 tuple
类似于列表,但是元素中的数据是不可以修改的
元组 tuple 用()来表示
tuple_data = (1,2,3,4)
print(tuple_data) # (1, 2, 3, 4)
print(tuple_data[0]) # 1
存储的值不可修改
tuple_data[0] = 6 # 报错元组对象不支持修改
4.集合类型 set
类似于数学中的集合,也用 {} 来表示
my_set = {1,2,3,}
my_set = {'1','2','3'}
存储不可变的数据类型,包括整型,浮点型,字符串,元祖,布尔值,
无法存储 列表,字典,集合
这些可
变的数据
4.1可变类型和不可变类型
可变类型指的就是值可以发生改变但是内存地址不变
不可变类型就是值不能发生改变,发生改变以后内存地址也会发生变化
name = 'luyao'
copy_name = 'luyao'
print(name = copy_name) # True
# 每次创建字典都会在内存空间中生成一个新的内存地址
info = {
'name' : 'luyao'
}
info_copy = {
'name' : 'luyao'
}
例子
info = {
'name' : 'luyao'
}
info_copy = info
info_copy['name'] = 'xuxing'
print(info['name'],info_copy['name']) # xuxing xuxing
print(id(info_copy) , id(info)) # 1134457851776 1134457851776
5.总结区域
- 字符串 : 有序 可以下标取值
- 字典 : 无序 可以通过属性名取值
- 列表 : 有序
- 元组 有序
- 集合 无序
6.序列类型通用
6.1序列类型统统概念 - 下标
name = '大家好我是老八'
print(name[0]) #大
6.2都可以使用 切片
6.2.1切片
序列类型可以通过下标快速提取对应的多个数据就叫 切片
完整语法: 变量名[起点下标,终点下标,步长] [包含起点,不包含终点) 截取起点到终点区域的内容
message = '我是编程时长两年半的个人编程生路徐坤'
# 0 1 2 3 4 5 67 8 9 10
# 单独获取编程时长
print(message[2:6]) # 编程时长
print(message[6:9]) # 两年半
list = [0,1,2,3,4,5,6,7,8]
print(list[2:6]) # [2, 3, 4, 5]
# 不写开始只写结束 不写开始默认就是从0开始
print(list[:5]) # [0, 1, 2, 3, 4]
# 只写开始 不写结束默认就是截取到末尾
print(list[6:]) # [6, 7, 8]
# 不写开始也不写结束 拷贝数据
print(list[:]) # [0, 1, 2, 3, 4, 5, 6, 7, 8]
# 超出范围不会报错
print(list[:200]) # [0, 1, 2, 3, 4, 5, 6, 7, 8]
6.3步长
步长指的就是每一次切片之间间隔的数据
list = [0,1,2,3,4,5,6,7,8]
#下标 0 1 2 3 4 5 6 7 8
#下标 -9 -8 -7 -6 -5 -4 -3 -2 -1
# 基础用法 每隔两个值获取一次
print(list[::2]) # [0, 2, 4, 6, 8]
# 限制区间的方式使用步长
print(list[2:7:2]) # [2, 4, 6]
# 负数切片(小的负数 : 大的负数)
print(list[-7:-3]) # [2, 3, 4, 5]
# 反向步长 序列逆序切片 步长为负数值就从后往前进行切
print(list[::-1]) # [8, 7, 6, 5, 4, 3, 2, 1, 0]
print(list[2:6:-1]) # []
# 因为切割的起点小于终点,切步长为负,负数表示反向切片所以起点一定要大于终点
# 正确做法
print(list[5:1:-1]) # [5, 4, 3, 2]
print(list[-4:-8:-1]) # [5, 4, 3, 2]
以上就是关于数据类型的所有内容,感谢大家的观看!