操作列表
遍历列表
方法:for循环,
magicians = ['david','hart','jerry','kurt']
for magician in magicians: # 在列表magicians按顺序读取元素赋值给变量magician
print(magician)
print(magician.title() + ',that is a great trick\n')
david
David,that is a great trick
hart
Hart,that is a great trick
jerry
Jerry,that is a great trick
kurt
Kurt,that is a great trick
代码缩进
-
忘记缩进
magicians = ['david','hart','jerry','kurt'] for magician in magicians: print(magician) # for语句中执行语句没有缩进,系统报错
-
没有缩进所有的执行语句
magicians = ['david','hart','jerry','kurt'] for magician in magicians: print(magician) print(magician.title() + ',that is a great trick\n') # 逻辑错误,只会在最后一行打印该语句
-
不必要的缩进
magicians = ['david','hart','jerry','kurt'] for magician in magicians: print(magician) print('thanks all the magicians') #此句应该在最后单独打印,但多余缩进每次都会打印该句
-
丢失冒号
magicians = ['david','hart','jerry','kurt'] for magician in magicians # 丢失冒号,系统报错 print(magician)
-
总结:单独执行的语句不需要缩进,在语句块内需要执行的语句要缩进,语句块内结构缺一不可,如for循环内不可缺失冒号
课后习题
4-1披萨
pizzas = ['beef','tomato','cheese']
for pizza in pizzas:
print(pizza)
pizzas = ['beef','tomato','cheese']
for pizza in pizzas:py
print('I like ' + pizza + ' pizza')
pizzas = ['beef','tomato','cheese']
for pizza in pizzas:
print('I like ' + pizza + ' pizza')
print('\n' + pizzas[0] + ' pizza is my favorite pizza')
print(pizzas[1] + ' pizza is sour')
print(pizzas[2] + ' pizza is sweet')
print('I really like pizza')
4-2动物
animals = ['dog','cat','rabbit']
for animal in animals:
print(animal)
animals = ['dog','cat','rabbit']
features = ['kind','cute','furry']
i = 0
for animal in animals:
print('A ' + animal + ' would make a ' + features[i] + ' pet.')
i = i + 1 # 循环一次,feature索引加一
animals = ['dog','cat','rabbit']
features = ['kind','cute','furry']
i = 0
for animal in animals:
print('A ' + animal + ' would make a ' + features[i] + ' pet.')
i = i + 1
print('Any of these animals would make a great pet!')
创建数值列表
range函数
形式:range(m,n,s),m,n分别表示起点和终点,s表示步长,默认为1
作用:生成一系列数字
for i in range(1,5):
print(i)
#
1
2
3
4 # 从第一个数开始打印,到达最后一个值时停止,因此只能打印到4
利用range函数创建列表,并对列表进行操作
square = [] # 创建空列表
for i in range(1,11,2): # 取其中的1,3,5,7,9
square.append(i**2) #每个数平方后添加到列表中
print(square)
# [1,9,25,49,81] #
简单统计计算
num = [2,3,4,5,56,7,8]
print(min(num)) # 最小值:2 #
print(max(num)) # 最大值:56 #
print(sum(num)) # 和:85 #
列表解析(简化代码)
含义:将for循环和创建新元素的操作合并在一行代码
square = [value**2 for value in range(1,11,2)]
print(square) # 直接生成[1.9,25,49,81]
课后习题
4-3数到20
for i in range(1,21):
print(i) # 打印1-20数字
4-4一百万
num = list(range(1,1000001))
for i in num:
print(i)
4-5计算1-1000000的总和
num = list(range(1,1000001))
print(max(num))
print(min(num))
print(sum(num))
4-6奇数
num = list(range(1,21,2))
for i in num:
print(i)
4-7三的倍数
num = list(range(3,31,3))
for i in num:
print(i)
4-8立方
square = [] # 建立空列表
for i in range(1,11):
square.append(i**3)
for s in square:
print(s)
4-9立方解析
square = [value**3 for value in range(1,11)]
print(square)
使用列表的一部分
切片操作(参照索引标号规则)
num = ['a','b','c','d','e']
print(num[0,3]) # ['a','b','c'] 如同索引一般,只能够到达终点前一个值 #
print(num[:4]) # ['a','b','c','d'] 从列表头开始,到终点的前一个值 #
print(num[1:]) # ['b','c','d','e'] 从起点开始,到列表最后一个值 #
print(num[-3:]) # ['c','d','e'] 从倒数第三个到最后一个值 #
复制列表
num = ['a','b','c','d','e']
new_num = num[:] # 创建列表的副本关联到变量new_num中
num.append('r')
print(num) # ['a','b','c','d','e','r'] #
new_num.append('s')
print(new_num) # ['a,'b','c','d','e','s'] 两个列表不是一个列表#
new_num1 = num # 这种赋值是将两个变量名同时关联到一个列表,还是一个列表
num.append('r')
print(num) # ['a','b','c','d','e','r'] #
print(new_num) # ['a','b','c','d','e','r'] #
总结:复制列表时应该用且切片创建一个副本,也就是一个新的列表,而不是创建一个新的变量与原来的变量关联到同一个列表
课后习题
4-10切片
num = ['a','b','c','d','e']
print(num[:3]) # 打印前三个元素 #
print(num[1:3]) #打印中间三个数字 #
print(num[-3:]) #打印末尾三个元素 #
4-11你的披萨和我的披萨
pizzas = ['beef','tomato','cheese']
friend_pizzas = pizzas[:] # 创建副本
pizzas.append('beacon') #原列表加入新元素
friend_pizzas.append('chicken') # 副本列表加入新元素
print('my favorite pizzas are:')
for pizza in pizzas:
print(pizza)
print('my friend favorite pizzas are:')
for friend_pizza in friend_pizzas:
print(friend_pizza)
4-12使用多个循环
my_foods = ['pizza','falafel','carrot cake']
friends_foods = my_foods[:]
for my_food in my_foods:
print(my_food)
for friend_food in friend_foods:
print(friend_food)
元组
定义
-
不可变的列表称之为元组(tuple),用圆括号非方括号包括元素,如(1,2,3,4)
-
元素的访问方法与列表一致,列表名称[index]
-
元素的遍历和列表一致
-
不可修改元组中元素的值,但可以修改元组变量,相当于给变量重新赋值
dims = (1,2) for dim in dims: print(dim) dims = (3,4) # 给原元组变量赋值 for dim in dims: print(dim)
课后习题
4-13自助餐
foods = ('apple','grapes','banana','tomato','rice')
for food in foods:
print(food)
foods[2] = 'cheese' # 尝试改变元组中的值
foods = ('apple','grapes','banana','chicken','beacon') # 改变两种食品,重新赋值
for food in foods:
print(food)
小白入门python,如有错误,欢迎指出与探讨