遍历整个列表
使用for循环进行列表的遍历。使用单复数进行命名,有助于理解。可以在for循环中进行多种操作,最后一般会有总结性的打印。
#遍历整个列表
magicians=['allic','david','carolina']
for magician in magicians:
print(magician)
#4.1.1深入研究循环
#for magician in magicians 让magician挨个获取magicians中的值
#print(magician)正常打印获取的到的值
#使用单数和复数名称,有助于理解
#4.1.2在for循环中执行更多操作
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
#在for循环中,想包含多少条代码都可以。 在for循环里,每个缩进的代码,都是循环的一部分。
print(f"{magician.title()},that was a great trick!")
print(f"I can`t wait to see your next trick,{magician.title()},\n") #\n换行符
#4.1.3 在for循环结束后执行一些操作
#通常在for结束后,会做总结性的输出或其他打印
#在for循环后面,没有缩进的代码都只执行一次,不会重复。
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
print(f"I can`t want to see your next trick,{magician.title()}\n")
print("Thank you,everyone.That was a great magic show!")
避免缩进错误
python没有像java那样的使用“{}”来限定代码的作用域,而是使用缩进进行判定,一方面能够体现出python代码的简洁之风,另一方看起来也较为优雅,因此,要特别注意python代码的缩进,错误不易发现。
#避免缩进错误
#python会根据缩进来判断与前一行代码的关系。
#4.2.1忘记缩进
magicians=['alice','david','carolina']
for magician in magicians:
print(magician)
#4.2.2忘记缩进额外的代码行
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
print(f"I can`t wait to see your next trick,{magician.title()}.\n")
#4.2.3不必要的缩进
#4.2.4循环后不必要的缩进
#缩进了循环后的执行代码,代码将针对列表元素重复执行,但大多是将造成逻辑错误
magicians=['alice','david','carolina']
for magician in magicians:
print(f"{magician.title()},that was a great trick!")
print(f"I can`t wait to see your next trick,{magician.title()}\n")
print("Thank you everyone,that was a great magic show! ")
#4.2.5 遗漏了冒号
magicians=['alice','david','carolina']
for magician in magicians: #冒号":"表示下一行是循环的第一行
print(magician)
#test
pisai=["dekeshi","bishengke",'kengdeji']
for ps in pisai:
print(f"{ps}"," is my favorite eat!")
print("I really love pizza")
创建数值列表
使用‘()’标示列表,在处理数字列表时,range函数可以起到很好的使用,(起始,结束,步长)三个参数基本能满足绝大部分的需求。
#创建数值列表
#4.3.1使用函数range()
#range()能够轻松生成一系列数
for value in range(1,5):
print(value)
#4.3.2使用range创建数字列表
numbers=list(range(1,6))
print(numbers)
#range函数指定步长 第三个参数
even_numbers=list(range(2,11,2))
print(even_numbers)
#创建前十个数的平方的列表
squares=[]
for value in range(1,11):
square=value**2
squares.append(square)
print(squares)
#改进版
squares=[]
for value in range(1,11):
squares.append(value**2)
print(squares)
#4.3.3 对数字列表执行简单的统计计算
digits=[1,2,3,4,5,6,7,8,9,10]
print(min(digits),"输出最小元素")
print(max(digits),"输出最大元素")
print(sum(digits),"输出列表元素的和")
#4.3.4 列表解析
squares=[value**2 for value in range(1,11)]
print(squares)
#Test
for num in range(1,21):
print(num)
bailin=list(range(1,10000000))
# for num in bailin:
# print(num)
print(min(bailin))
print(max(bailin))
print(sum(bailin))
#奇数
odd_number=list(range(1,20,2))
for num in odd_number:
print(num)
t_number=list(range(3,30,3))
for num in t_number:
print(num)
nums=[value**3 for value in range(1,11)]
for num in nums:
print(num)
使用列表的一部分
列表切片,满足了只使用列表的一部分的需求,(起始位置,终止位置),还可以使用负数进行倒序切片。
#4.4使用列表的一部分
#4.4.1切片
players=['charles',"martina",'michael','florence','eli']
print(players[0:3]) #只打印0到3的内容;
print(players[1:4])
#如果没有指定开头,python将自动从开头开始
print(players[:3],"自动从头开始")
#如果没有指定结尾,python将遍历到尾结束
print(players[3:],"到尾巴结束")
#也可以通过倒数来输出 例如倒数三个=-3
print(players[-3:],"从倒数开始")
#4.4.2遍历切片
#如果要遍历列表的部分元素,可以在for循环中使用切片
print("here are the first three players on team:")
for player in players[:3]: #其实切片也是一个列表 这里直接使用的是列表本身 而不是列表名字
print(player.title(),"遍历切片")
#4.4.3复制列表
#复制列表 可以创建一个包含整个列表的切片,方法是同时省略起始和终止索引。
my_foods=['pizza','falafel','carrot cake']
friend_foots=my_foods[:]
print("my favorite foods are:")
print(my_foods)
print("my friend`s favorite foods are:")
print(friend_foots)
print()
my_foods.append('ice cream')
print(my_foods,'my')
print(friend_foots,"friend")
print()
friend_foots=my_foods[:]
print(my_foods,"my")
print(friend_foots,"friend")
print()
#test
print(players)
print()
print("the first three items in the liet are:")
print(players[:3],"前三个元素")
index=round((len(players))/2)
print(index)
print(players[index-1:index+2],"中间三个元素")
print(players[-3:],"倒数三个元素")
you_pizza=['dekeshi','bishengke','kengdeji','huaiashi']
my_pizza=you_pizza[:]
you_pizza.append("madanglao")
my_pizza.append("hanbangwang")
print("my pizza are: ",my_pizza)
for pizza in you_pizza:
print(pizza) #缺一个不换行打印
元组
元组可以理解为不可修改的列表,使用'[]'来定义,元素间使用','号进行分隔,需要注意的是,单元素的元组的定义,元素后面要跟一个',',因为严格来说,python是通过','来识别元素的。
#元祖 不可修改的列表
#4.5.1 定义元素
#元祖看起来很像列表,但是 是使用圆括号而非中括号来标示
dimensions=(200,50)
print(dimensions[0])
print(dimensions[1])
#dimensions[0]=250 #语句将会报错
#定义只有一个元素的元组 必须在元素后面加一个逗号","
my_t=(3,)
print(my_t)
#4.5.2 遍历元组中的所有值
for dimension in dimensions:
print(dimension)
#4.5.3 修改元组变量
dimensions=(200,50)
print("Original dimensions:")
for dimension in dimensions:
print(dimension)
dimensions=(400,100)
print("\n Modified dimensions:")
for dimension in dimensions:
print(dimension)
#test
foods=("西红柿","鸡蛋","面条","米饭","🥟")
for food in foods:
print(food)
#foods[4]="qiezi" #元组不允许修改 会报错
foods=("🍅","🥚","🍜","🍚","🥟")
for food in foods:
print(food)