第一节续 数据类型的补充

发布于:2025-04-15 ⋅ 阅读:(25) ⋅ 点赞:(0)

目录

1.字典类型

2.用户交互(input和print)

3.元组类型 tuple

4.集合类型 set 

5.总结区域

6.序列类型通用


1.字典类型

字典用于存储相关联的键值对数据,比如商品信息,学员信息,车辆信息....,字典是一个没有先后顺序

的结构,都是以 "键值对" key(属性名):value(属性值) 的格式出现

  1. key 必须是字符串' '
  2. 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]

以上就是关于数据类型的所有内容,感谢大家的观看!


网站公告

今日签到

点亮在社区的每一天
去签到