数字
一、数字相关类型
python中数字相关类型有三个:int、float、complex
1.1 int(整型)
- 所有的整数对应的类型
- 表示:数字直接写
- 转换:int(数据)
- 不是所有的数据都可以转换成整数,只有浮点、布尔、部分字符串
1.1.1 浮点数转换成整数
- 直接去掉小数部分,保留整数部分
1.1.2 布尔转整数(布尔的本质就是数字,继承int,把1表示为True,0表示为False)
- True -> 1
- False -> 0
1.1.3字符串转整数
去掉引号后本身就是整数的字符串,才能转为整型
print(int('12'))
1.2 float(浮点型)
- 所有的小数对应的类型
- 表示:直接表示,支持科学计算法
- 转换:float(数据)
- 整数、布尔、部分字符串可以转
print(float(True))
print(float('3e4'))
1.3 bool(布尔)
- 表示:直接写 - True、False
- 转换:bool(数据)
- 所有的数据都可以转为布尔;零值和空值和无类型转为False,其余转为
True
def f(a):
# return a # 返回有类型,再判断返回值的布尔值
# print(a) # 返回无类型,布尔值False
pass # 返回无类型,布尔值False
print(bool(f(1)))
1.4 *complex(复数)
- 由实部和虚部组成的数
- 虚数单位是:j
- 虚部的1不能省
- 直接支持复数的运算
num1 = 2 + 3j
num2 = 4 - 5j
print(num1 * num2)
列表
一、什么是列表(list)
a = [] # a是一个空列表
b = [1, 'abc', [1, 2, 3]]
- 列表是容器型数据类型,将[]作为容器的标志,里面多个元素用逗号隔开
- [元素1,元素2,元素3,…]
- 列表中的元素可以是任何类型的数据
- 列表的容器特点:
- 可变(元素个数、元素的值、元素的顺序)
- 有序(元素有索引值,有编号)
二、获取列表元素
2.1 获取单个元素(索引)
列表[下标] - 获取下标对应的元素
- 列表 - 任何结果是列表的表达式(具体的列表数据、保存列表数据的变量、…)
- [] - 固定写法
- 下标 - 又叫索引;是元素在容器中的位置标志(是顺序值)
正方向索引顺序:从0到n-1
负方向索引顺序:从-1到-n - 注意:下标不能越界(切片可以)
2.2 获取部分元素(列表切片)
同时获取列表中的多个元素
列表[开始下标 : 结束下标 : 步长]
- 若步长为正,表示从前往后取
- 若步长为负,表示从后往前取
a = [1, 2, 3, 4, 5, 6]
print(a[-4:2:8])
2.2.1 省略步长
列表[开始下标 : 结束下标]
省略步长就相当于步长为1:列表[开始下标 : 结束下标] == 列表[开始下标 : 结束下标 : 1]
2.2.2 省略开始下标
列表[: 结束下标 : 步长]
- 若步长为正,从第一个元素开始取
- 若步长为负,从最后一个元素开始取
列表[: 结束下标],步长一起省略
2.2.3 省略结束下标
列表[开始下标 :: 步长]
- 若步长为正,从开始下标对应的元素取到列表的最后一个
- 若步长为负,从开始下标对应的元素取到列表的第一个
列表[开始下标 :],步长一起省略
2.2.4 同时省略开始、结束下标
-
范围是整个列表
列表[:: 步长]
列表[:],步长一起省略
2.3 遍历
-
方法一:直接遍历出列表中的元素
for 变量 in 列表:
循环体
games = ['斗地主', '欢乐麻将', '开心消消乐', '三国杀', '王者荣耀']
for x in games:
print('x:', x)
-
方法二:通过遍历下标来遍历元素
for 变量 in range(列表长度):
列表[变量]
for i in range(len(games)): # - len(列表) 获取列表中元素的个数
print('元素:', games[i])
- 方法三:同时获取下标和元素
for index, item in enumerate(games):
print('下标:', index, '元素:', games[index])
# 练习:
from random import randint
# 一个班10个学生的成绩
scores = []
s = randint(0, 100)
for i in range(10):
scores.append(randint(0, 100))
print('班级分数:', scores)
# 总成绩
sum_scores = sum(scores)
print('总成绩:', sum_scores)
# 平均成绩
mean_scores = sum_scores / len(scores)
print('平均分:', mean_scores)
# 不及格人数
n = 0
for score in scores:
if score < 60:
n += 1
print('不及格人数:', n)
# 最高成绩的值
highest = scores[0]
for score in scores[1:]:
if score > highest:
highest = score
print('最高分:', highest)
三、元素的增删改
3.1 增
3.1.1 列表.append(元素)
- 在列表的最后添加指定元素
l = [1, 2, 3]
l.append(4)
print(l)
3.1.2 插入
列表.insert(下标,元素)
- 在指定下标对应的元素前插入指定元素
print(type(l.insert(0, 0)))
print(l)
3.2 删
3.2.1 del 列表[下标]
- 关键字 del
- 删除列表中指定下标对应的元素
l = [1, 2, 3]
print(l)
del l[1]
print(l)
3.2.2 列表.remove(元素)
- 删除列表中指定的元素
- 若元素不存在,会报错
- 若有多个同一元素,会删除第一个
l = [1, 2, 3]
print(l)
l.remove(2)
print(l)
3.2.3 列表.pop()
列表.pop() - 取出列表中最后一个元素,并返回该元素
列表.pop(下标) - 取出指定下标的元素,并返回该元素
l = [1, 2, 3]
print(l)
del_item = l.pop(1)
print(del_item)
print(l)
# 练习:
# 删除低于60分中的成绩
scores = [90, 45, 52, 10, 89, 67, 55, 32, 69, 100]
print(scores)
while True:
for score in scores:
if score < 60:
scores.remove(score)
break
else:
break
print(scores)
3.3 改
修改元素的值
- 列表[下标] = 新元素
# 练习:
# 改为不及格
scores = []
for i in range(10):
scores.append(randint(0, 100))
print(scores)
for i in range(len(scores)):
if scores[i] < 60:
scores[i] = '不及格'
print(scores)