【Day1】3.数据类型
视频地址(全部)
https://edu.csdn.net/course/detail/26057
课件地址(全部)
https://download.csdn.net/download/gentle__man/11858127
课程目标
• Python3语言中内置的基本数据类型

数据类型
• C语言的变量类型

• C和Python语言变量类型对比

Number数值类型
• Python3中,只有一种整型类型int
• 内置的type()函数可以查询变量所指的对象类型
• 也可以使用内置的isinstance()函数来判断
• 内置的len()函数可以查询变量的元素个数
• Python3中 True的值是1 ,False的值是0
• 浮点只有单精度float,没有double双精度
练习
与或非 and or not
常量 大写
10/3 3.33333333335 取余 10%3 1
9/3 3.0 取整 9//3 3
平方 2**2 4 立方 2**3 8
String(字符串)
• Python中字符串三种标示
使用单引号(') str='this is string'
使用双引号(") str="this is string"
使用三引号(''') str='''this is string'''
• 字符串切片截取语法如下:
变量[起始下标:结束下标:步进]
• 反斜杠可以转义特殊字符
• 常用字符串操作函数 len(),replace(),index(),find(),split()等
练习
#赋值 item1 = 1 item2 = item1 item1 = 3 # print(item2) # 1 # 转义引号用\ a = 'hello i\'m python' # 如果想把反斜杠输出出来,整个字符串前面加r b = r'hello i\'m python' # 字符串的拼接 # + str = '你好'+'北京' # list list = ['你好', '北京'] list_str = ' '.join(list) # format str1 = '我喜欢{},因为我喜欢{}'.format('python', '钱') str2 = 'abc' # 切片 不包括冒号后面的 # print(str2[0:2]) # ab 从0到下标1 # print(str2[0:]) # abc 从0到最后 全部 # print(str2[:2]) # ab 从0到下标1 # print(str2[:-1]) # ab 从0到倒数第二个 # print(str2[::2]) # ac 从0到最后步进值为2 隔一个取一个 # 取反 str3 = 'abcdef' # print(str3[::-1]) # fedcba #替换 # print(str3.replace('cd', '你好')) # ab你好ef # 查找字符位置 str4 = str3.replace('cd', '你好') # find 返回下标,找不到返回-1 # print(str4.find('你')) # 2 # index 返回下标, 找不到抛出异常 # print(str4.index('你')) # 2 # 字符在字符串出现的次数 str5 = 'abbccc' # print(str5.count('c')) # 3 # 字符串转列表 字符串.split(分隔符) str6 = '小红, 小白, 小蓝' # print(str6.split(', '))
List(列表)
• List(列表)是一种有序集合,可以随时添加和删除其中元素
• 列表的元素可以不同
• 列表同样支持切片截取语法如下:
变量[起始下标:结束下标:步进]
• 列表格式[“yh”,“micheal”,“jack”],[]之间,元素逗号隔开
• 索引值从0开始,-1代表末尾
• 使用(+)可以连接两个列表,(*)是重复操作
练习
# list 有序集合 list11 = ['a', 'b', 'c'] # print(type(list11)) # <class 'list'> 查看变量类型 # print(len(list11)) # 3 查看元素个数 # print(list11[0]) # a 用下标访问列表的元素 # print(list11[-1]) # c 用下标访问列表的元素 list11.append('d') # print(list11) # ['a', 'b', 'c', 'd'] 向列表追加元素(改变原有列表) list11.insert(1, 'new item') # print(list11) # ['a', 'new item', 'b', 'c', 'd'] # 向列表的指定位置添加元素,指定位置及其后面位置的原来元素向后移位 list11.pop(1) # print(list11) # ['a', 'b', 'c', 'd'] 删除列表的指定位置元素 list11[3] = 'replace item' # print(list11) # ['a', 'b', 'c', 'replace item'] 覆盖列表的指定元素 # 嵌套列表 list13 = ['a', 'b', ['c', 'd'], 'e'] # print(len(list13)) # 4 列表中的单个列表是一个元素
Tuple(元组)
• Tuple(元组)与列表类似,不同之处在于元组的元素不能修改
• 元组写在小括号()里,元素之 间用逗号隔开
• 元组中元素类型也可以不同
• 列表同样支持切片
• 索引值从0开始,-1代表末尾
• 如果元组中的元素只有一个,那么写成(1,),不要写成(1)
练习
# 元组 t1 = ('a', 'b', 'c') # t1[1] = 1 # print(t1) # TypeError: 'tuple' object does not support item assignment # 元组定义后不能修改 t2 = (1) # print(type(t2)) # <class 'int'> t3 = (1,) # print(type(t3)) # <class 'tuple'> # 元组只有一个元素时元素后面加英文逗号 list1 = ['A', 'B'] t = ('a', 'b', list1) t[2][0] = 'C' # print(t) # ('a', 'b', ['C', 'B']) # 元组中引用的元素可以被修改 # t[2] = 'C' # print(t) # TypeError: 'tuple' object does not support item assignment # 元组中引用不可以被修改

Set(集合)
• Set(集合),是一个无序不重复元素的序列
• 可以使用大括号 { } 或者set()函数创建集合
注意:创建一个空集合必须用set()而不是 { },因为
{ } 是用来创建一个空字典
• 创建格式:
{value1, value2, value3, value4,….}
或者
set(value)
• 集合之间可以进行:-差集 &交集 |并集 ^反交集
练习
# 集合 s = set([1, 2, 3]) # print(s) # {1, 2, 3} 定义集合 s1 = set([1, 2, 2, 3, 3, 3]) # print(s1) # {1, 2, 3} 自动去除重复元素 s.add(4) # print(s) # {1, 2, 3, 4} # s.add(3) # print(s) # {1, 2, 3, 4} # 添加的元素与原集合的元素不重复则添加,重复则集合去重后还是原集合 s.remove(4) # print(s) # {1, 2, 3} 删除集合指定元素,若指定元素不存在则抛出异常 SyntaxError: invalid syntax s2 = set([1, 2, 3]) s3 = set([3, 4, 5]) # print(s2 & s3) # {3} s2 s3 的交集 共有的元素 # print(s2 | s3) # {1, 2, 3, 4, 5} s2 s3 的并集 全部且去重的元素
Dictionary(字典)
• 字典(dictionary)是无序集合对象,元素是通过key-value键值对来存取的
• 字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)
对集合
• 键(key)必须使用不可变类型、在同一个字典中,键(key)必须是唯一的
• 另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
• 字典方便我们使用查找和搜索功能
注意:
创建空字典使用 { }
练习
# 字典 # 无序 查找速度不随键值对的增减而增加 但是占用内存会增加 d = {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99} # print(d['xiaobai']) # 89 d['xiaohei'] = 69 # print(d) # {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99, 'xiaohei': 69} # 字典如果没有该键值则添加元素 d['xiaohei'] = 59 # print(d) # {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99, 'xiaohei': 59} # 字典如果有该键值则覆盖元素 # print('xiaohei' in d) # True # print('xiaohei1' in d) # False # 判断字典中是否有某个键值 有返回True 没有返回False # print(d.get('xiaohei1', -1)) # 判断字典中是否有某个键值 有返回键值对应的value值 没有返回第二个参数中的值,此处为-1 # -1 # print(d.pop('xiaohei')) # print(d) # 删除字典中指定的键值对,如果没有该键值则报错 # KeyError: 'xiaohei1' # 如果有该键值返回该键值对应的value值 # 59 # {'xiaohong': 79, 'xiaobai': 89, 'xiaolan': 99} list2 = ['xiaohei'] # d[list2] = 26 # print(d) # TypeError: unhashable type: 'list' # 不能用列表作为字典的键值,列表是可变对象,要用数字,字符串这种非可变对象
小结
• Number(数字)
• String(字符串)
• List(列表)
• Tuple(元组)
• Sets(集合)
• Dictionary(字典)

浙公网安备 33010602011771号