数字和列表
数字类型
python中的数字类型:int(整型)、float(浮点型)、bool(布尔)、complex(复数)
-
int(整型)
-
float(浮点型)
所有小数对应的类型,支持科学计算法 -
bool(布尔)
只有True和False两个值,True本质是数字1,False本质是数字0
print(True,True + 1)
- complex(复数)
包含实部和虚部的数,对应数据类型 complex
python 中表示复数的单位:j,
num1 = 2 - 1j # j前面1不能省略
num2 = 10 + 2j
python支持复数运算
print(num1 + num2)
print(num1 * num2)
- 数据类型转换
python中数据类型转换方式:类型名(数据)
数字类型可以转换成整型(复数除外),部分字符串可以转换成整型
print(int(-12.9),int(True),float(False))
print(float('123.25'))
print(int('0b1101', 2),int('1101', 2))
print(int('0xaf10', 16))
print(complex('123+3j'))
布尔:bool(数据)
所有类型的所有数据都可以转换成布尔
所有零值或空值转换成False,其他为True
列表基础
1. 容器型数据类型:可以同时保存多个数据的类型,常见数据类型有:列表、元组、字典、集合、字符串、迭代器、生成器
容器中每个独立数据叫元素
2. 列表
将[]作为容器的标志,数据间用逗号隔开,例如:[12, 30, 40]
列表可变性、有序性,元素可以是任何类型,元素类型可以不同
3. 获取列表元素
1.获取单个元素
语法:
列表[下标]
说明:
列表 - 任何结果是列表的表达式:独立的列表数据、保存列表的变量、返回值是列表的函数调用表达式,结果是列表的运算表达式
[ ] - 固定写法
下标 - 获取元素对应的下标值
补充:下标又叫索引,用来表示有序序列中元素的位置或顺序
列表中的每个元素都有一个唯一并且固定的下标来表示元素在列表中的位置,下标从0开始一次增加,0表示第一个元素
列表中每个元素有两种下标值,一种是正下标值(从0开始),另一种是负的下标值(从-1开始,依次减少,-1表示最后一个元素)
注意:下标不能越界
2.获取部分元素 - 切片
语法:
列表[开始下标:结束下标:步长] - 从开始下标开始,下标值每次增加步长,取到结束下标前为止(不含结束下标)
说明:
开始下标、结束下标 - 下标值,整数
步长 - 整数
如果步长为正,元素从左往右取,如果步长为负,元素从后往前取
注意:切片的时候下标可以越界
nums = [1, 2, 3, 4, 5, 6, 7, 8]
print(nums[4:-8:-1])
切片语法的省略写法
1)省略步长
列表[开始下标:结束下标] ---- 列表[开始下标:结束下标:1]
2)省略开始下标
列表[:结束下标:步长]
步长为正,第一个元素开始从前往后取,步长为负,从最后元素开始往前取
3)省略结束下标
列表[开始下标::步长] / 列表[开始下标:]
步长为正,从前往后取到最后元素,步长为负,从后往前取到第一个元素
4)同时省略开始下标和结束下标
列表[::步长] / 列表[:]
3.遍历列表
方法一:
for 变量 in 列表:
循环体
方法二:
for 下标 in 下标序列:
列表[下标]
循环体
for m in nums:
print(m)
for index in range(len(nums)):
print(nums[index])
练习:列表保存分数,统计不及格人数,计算平均分
count = 0
num = 0
scores = [56,78,90,45,78,69,23,34,99,68,88]
for score in scores:
num += score
if score < 60:
count += 1
print(count)
print(num / len(scores))
列表元素的增删改
1.增 - 添加元素
1)append - 追加
列表.append(元素) - 列表最后添加指定元素
list1 = [10, -1, 20, -34, 30]
list1.append(100)
print(list1)
2)insert - 插入
列表.insert(下标, 元素) - 在列表指定下标前插入元素
list1.insert(1, 100)
print(list1)
练习:不断输入成绩,并保存列表中,输入-1表示结束
scores = []
while True:
score = int(input('请输入成绩:'))
if score == -1:
break
else:
scores.append(score)
print(scores)
2.删除元素
1)del - 删除元素
del 列表[下标] - 根据下标删除列表中指定元素(下标不能越界)
2)remove
列表.remove(元素) - 删除列表中指定元素,如果元素不存在,程序报错,如果元素存在多个,只删除最前面一个
3)pop
列表.pop() - 取出列表中的最后一个元素
列表.pop(下标) - 根据下标取出列表中指定元素
3.修改元素
1)改 - 修改元素的值
a. 列表[下标] = 新元素 - 根据下标将列表中指定元素改成新元素(下标不能越界)
b. 列表1[开始下标:结束下标] = 列表2
for index in range(len(list1)):
if list1[index] < 0:
list1[index] = 0
print(list1)
4. in 和 not in
元素 in 列表 - 判断元素是否在列表中
元素 not in 列表 - 判断元素是否不在列表中