数字和列表
1. python中的数字类型:整型(int),浮点型(float),布尔型(bool),复数(complex)
整型:所有整数对应的类型(python2.x中有long()长整型)
浮点型:所有小数对应的类型,支持科学计数法的
print(3e4,4e-2)
布尔:本质是整型,只有True和False两个值
print(int(True))
print(int(False))
复数:包含实部和虚部的数就是复数,对应的数据类型是complex
python中表示复数的时候,虚部的单位是j,j前如果是1,那1不能省。
num = 10 + 2j
num1 = 12 + 3j
print(num)
print(type(num))
# python支持复数运算
print(num + num1)
2. 数据类型的转换
python中所有数据类型转换方式:类型名(数据)
1) 整型:int(数据)
所有数字类型对应的数据都可以转换成整型(复数不行),部分字符串也可以转换成整型,对于字符串
来说,去掉引号以后本身是合法的指定进制的整数对应的字符串,才能转换成对应的整型
print(int(12.5))
print(float('123.23'))
print(int('0b1101',2))
2) 浮点型:
整型和布尔值都可以转换成浮点型,部分字符串也可以转换成浮点型。(去掉引号后本身是一个合法
的浮点型或者整型数据)
print(float(10))
3) 布尔值:
所有类型的所有数据都可以转换成布尔。
所有零值或空值会转换成False,其他的都是True。
3. 列表
什么是列表:列表是容器型数据类型。将[]作为容器的标志,里面的多个数据(元素)用逗号隔
开,比如[12,31,123]
列表是可变的(列表中的元素的个数和值可变);列表是有序的。
列表中的元素:
任何数据都可以进来,可以是python中热行和类型的数据,不同元素的类型可以不一样。
scores = [100,120,130,128,124]
list = [1,2,3,4,5]
3.获取列表元素
获取单个元素:
语法:
列表[下标]
说明:
列表 - 任何结果是列表的表达式:独立的列表数据,保存列表的变量,返回值是列表的函数调用表
达式,结果是列表的运算表达式
[] - 固定写法
下标 -
什么是下标:下标又叫索引,用来表示有序序列中元素的位置(顺序)。
列表中的每个元素都有一个唯一且固定的下标用来表示这个元素在列表中的位置,下标值的范围是
从0开始依次增加,其中0表示第一个元素
列表中的每个元素都有两种下标值,一种式正的下标值,(从0开始),另一种式负的下标值(从-1
开始,依次减少,-1表示最后一个元素)
在获取单个元素的时候,下标不能越界
names = [1,2,3,4,5]
print(names[10]) #IndexError: list index out of range
4. 获取部分元素 - 切片
语法:
列表[开始下标:结束下标:步长] - 从开始下标开始,每次下标值增加步长,取到结束下标前为止
说明:
列表 - 任何结果是列表的表达式:独立的列表数据,保存列表的变量,返回值是列表的函数调用表达式,结果是列表的运算表达式
[] - 固定写法
开始下标、结束下标 - 下标值,整数
步长 - 整数
如果步长是正值,表示是从前往后取,保证开始下标要在结束下标对应的元素之前,否则取到的结果是空。
反之则是从右往左取,保证开始下标对应的元素在结束下标对应的元素之后
切片的时候,下标可以越界
nums = [1,2,3,4,5]
print(nums[0:5:2])
print(nums[-1:0:-1])
切片语法的省略写法
-
省略步长
列表[开始下标:结束下标] —》列表[开始下标:结束下标:1]
print(nums[1:4]) -
省略开始下标
列表[:结束下标:步长]/列表[:结束下标]
步长为正,从第一个元素开始往后取
步长为负,从最后一个元素往前取
-
省略结束下标
列表[开始下标::步长]/列表[开始下标:]
步长为正,从前往后取到最后一个元素为止
步长为负,从后往前取到第一个元素为止 -
同时省略开始下标和结束下标
列表[::步长] / 列表[:]
步长为正,从第一个元素取到最后一个元素
步长为负,从最后一个元素取到第一个元素
print(nums[::-1]) #5,4,3,2,1
print(nums[:]) #1,2,3,4,5
遍历列表 - 将列表中的元素一个一个的取出来
方法一:直接法
for 变量 in 列表
for i in nums:
print(i) #1,2,3,4,5
方法二:通过下标间接获取
for 下标 in 下标对应的数字序列
列表[下标]
循环体
for index in range(len(nums)):
print(nums[index])
len(列表) - 返回列表中元素的个数
练习一:用一个列表保存一个班所有学生的分数,统计不及格学生的人数
score = ['a',65,'b',78,'c',59]
people = 0
for i in score[1::2]:
if i < 60 :
people += 1
print(people)
练习二:用一个列表保存一个班所有学生的分数,计算班级学生的平均分
score = ['a',65,'b',78,'c',59]
people = 0
grade = 0
for i in score[1::2]:
people += i
grade = people / 3
print(grade)
4. 列表元素的增删改
增 - 添加元素
方法:
append - 追加
列表.append(元素) - 在列表最后添加指定的元素
list = [1,2,3]
print(list)
list.append(100)
print(list)
insert - 插入
列表.insert(下标,元素) - 在指定下标对应元素前插入指定的元素
list = [1,2,3,4,5,6]
list.insert(1,100)
print(list)
练习一:不断输入学生的成绩,并且把所有输入的成绩保存在一个列表中。输入-1表示结
list = []
while True:
num = int(input('请输入成绩:'))
if num > 0:
list.insert(0,num)
elif num == -1:
break
print(list)
删 - 删除元素
del语句
del 列表[下标] - 删除列表中指定下标对应的元素,小标不能越界
remove
列表.remove(元素) - 删除列表中指定的元素。(如果指定元素不存在,那会报错,如果指定
元素有多个,只删最前面的那一个)
pop
列表.pop() - 取出列表中的最后一个元素,并且返回被取出的元素.
列表.pop(下标) - 取出列表中指定下标对应的元素
t = list.pop(1)
print(list)
改 - 修改元素的值
列表[下标] = 新元素 - 将列表中指定下标对应的元素修改成新的元素,下标不能越界
list2 = [1,2,3,4,5,6,7,8,9]
list2[0] = 5
print(list2)
练习三:将列表中所有负数改成零
list3 = [89, 45, -55, 30, -78, 90, -34, 87, 10, 59, 100, -19]
for index in range(len(list3)):
if list3[index] < 0:
list3[index] = 0
print(list3)
列表1[开始下标:结束下标] = 列表2 - 将列表1中开始下标到结束下标选中的所有元素替换成列表2中
的元素
nums = [10,20,30,40,50]
nums[1:3] = [100,200,300]
print(nums)
in和not in
元素 in 列表 - 判断指定元素是否在指定列表中
元素 not in 列表 - 判断指定元素是否不在指定列表中