一 python中数字相关的类型有4种:int(整形)、flaot(浮点型)、complex(复数)、bool(布尔)。
1.1 int(整形) - 所有的整数对应的类型
num = 23
num1 = 0b100101 # 在数字前加0b表示二进制数(二进制数中只能有0和1两个基数)
num8 = 0o76 # 在数字前加0o表示八进制数(八进制数中只能由0~7组成
num16 = 0x4f # 十六进制数的基数:0~9、A~F / a~f)
进制的转换
print(num8) # print(其他进制数)- 查看对应的十进制数
print(bin(89)) # 查看十进制数对应的2进制数
print(oct(89)) # 查看十进制数对应的8进制数
print(hex(89)) # 查看十进制数对应的16进制数
1.1.1 int的类型转换:int(数据)
浮点数转换成整型的时候只是单纯的保留整数部分.
print(int(2.31)) # 2
print(int(1.999)) # 1
print(int(-2.4)) # - 2
注意: 复数不能转换成int类型
1.1.2 bool转换成int类型
print(int(True)) # 1
print(int(False)) # 0
1.1.3 字符串转换成int类型
print(int('12')) # 字符串的引号中的内容是整数
print(int('-120'))
print(int('0b11', base=2)) # base控制的是进制,默认是10
1.2 float(浮点型) - 所有小数对应的类型
f1 = 12.3
f2 = 3e4
1.2.1 类型转换
print(float(19)) # 19.0
print(float(True)) # 1.0
print(float('12.8')) # 12.8
print(float('2e8')) # 200000000.0
1.3 complex(复数) - 由实部和虚部组成的数字就是复数(虚数单位是j)
print(type(10 - 2j))
# 如果实部是0,0可以省略
# 虚部系数为1时,1不能省略
- python中的复数直接支持复数的数学运算
c1 = 2 + 3j
c2 = -2 - 2j
print(c1 + c2)
print(c1 * c2)
1.4 bool (布尔) - 只有True和False两个值
解释:True本质就是1,False就是0
1.4.1 类型转换 (所有类型的数据都能转换成布尔)
所有的0值和空值都能转换成 False,其他都是True.
num = 10
if num == 0:
print('num为0')
if not num:
print('num为0')
if num != 0:
print('num不为0')
if num:
print('num不为0')
二 列表
2.1 什么是列表
列表是容器型数据类型,以[]作为容器的标志,里面多个元素用逗号隔开。
1.1 列表的特性:
1)列表是可变的(指的是元素的个数、值、顺序可变)、
2)列表是有序的
3)列表中元素的类型可以是任何类型;同一个列表可以有多个类型不同的元素
例如:
list1 = [34, '23', True, 'sw']
print(list1)
girl_friends = ['杨幂', '任旧康', '蔡徐坤', '']
print(girl_friends)
# 空列表
empty = []
2.2 获取列表元素
- 获取单个元素
a.语法:
列表[下标] - 获取列表中指定下标对应的元素(下标不能越界)
b. 说明
- 列表 - 任何结果是列表的表达式(比如:具体的列表值、保存列表的变量、运算结果是列表的运算表达式、返回值是列表的函数调表达式)
- [] - 固定写法
- 下标 - 下标又叫索引;表示的是元素在有序序列中的位置信息。
python中下标值有两种:
1)0 ~ 长度-1,其中 0 表示第一个元素的位置、1 表示第二个元素的位置…以此类推。
2)-1 ~ -长度,其中 -1 表示最后一个元素的位置、-2 表示倒数第二个元素的位置…以此类推。
scores = [21, 12, 22, 3, 90]
print(scores[-1])
print(scores[4])
2.3 遍历列表 - 将列表中的元素一个一个的取出来
方式一:直接取每个元素的值
for 变量 in 序列:
循环体
例如:
scores = [21, 12, 22, 3, 90]
for s in scores:
print(s)
方式二:同时获取每个元素的下标和值
for 下标, 元素 in enumerate(列表):
循环体
例如:
scores = [21, 12, 22, 3, 90]
for i in range(len(scores)):
print(scores[i])
for x, y in enumerate(scores):
print(x, y)
练习1:求一个班所有学生的总成绩
scores = [90, 78, 59, 84, 30, 99, 45]
sum1 = 0
for i in scores:
sum1 += i
print('总成绩为:', sum1)
练习2:统计班上不及格学生的人数
sum2 = 0
for x, y in enumerate(scores):
if y < 60:
sum2 += 1
print('不及格的有:', x, '成绩为:', y)
print('不及格的总人数为:', sum2)
2.4获取部分元素(切片)
注意:切片的结果还是列表
语法:
列表[开始下标:结束下标:步长] - 从开始下标开始取,每次下标值增加步长去取下一个值,到结束下标前为止。
分为两种情况:
- 如果步长为正:表示开始下标到结束下标是从前往后取,开始下标对应位置要在结束下标的位置的前面才能取到值。
- 如果步长为负:表示开始下标到结束下标是从后往前取,开始下标对应位置要在结束下标的位置的后面才能取到值。
例如:
names = ['赵云', '诸葛亮', '刘备', '甄姬']
print(names[1:4:1])
2.4.1 省略步长
列表[开始下标:结束下标] - 相当于步长是1
例如:
movies = ['武庚纪', '速度与激情1', '致命弯道', '死神来了', '生化危机', '林中小屋']
print(movies[1:-1])
print(movies[5:2])
2.4.2 省略开始下标
列表[:结束下标:步长] - 如果步长为正,表示从第一个元素开始往后取;如果步长为负,表示从最后一个往前取。
列表[:结束下标]
例如:
print(movies[:5:2])
print(movies[:-2])
2.4.3 省略结束下标
列表[开始下标::步长] - 如果步长为正,从前往后取到最后一个元素为止;如果步长为负,从后往前取到第一个元素为止
列表[开始下标:]
例如:
tv_list = ['甄嬛传', '柯南', '名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸']
print(tv_list[2:])
print(tv_list[2::2])
2.4.4 开始下标和结束下标都省
列表[::步长] - 如果步长为正,从前往后从第一个元素取到最后一个元素为止;如果步长为负,从后往前从最后一个元素取到第一个元素为止。
列表[:]