# 遍历整个列表

magicians = ['alice', 'david', 'carolina']

for magician in magicians:

    print(magician)

# 下面这种方式也可以遍历列表

for i in range(len(magicians)):

    print(magicians[i])

# 然后的话呢我看书里面对于循环没有很好的介绍,所以我在这里简单介绍一下

for i in range(5):

    print(i)

# 像上面这种形式呢,是简单的循环,因为range(5)就是说循环五次,并且i会从0开始,到4结束,每执行一次,i+1,当i=5的时候,循环结束。

# 像最上面的循环呢,就是for magician in magicians,由于magicians是一个列表,所以for magician in magicians,magician会依次取列表中的元素,然后执行下面的代码,当循环结束的时候,magician会等于列表中的最后一个元素。

# 然后在python中,由于没有括号的这一种说法,都是看缩进的,例如上面的for循环,那他会将下面的跟他相差一个tab的代码认为都是他的循环体

# 可能介绍的不是很好,读者有时间可以百度看一下详细的,因为这本书大致看了一下没有介绍循环这些,后面有介绍while循环,然后我们继续回到书里面的内容。

# 在for循环结束后执行一些操作

for i in range(len(magicians)):

    print(magicians[i])

print("Thank you, everyone. That was a great magic show!")

# 此时循环结束后,会打印Thank you, everyone. That was a great magic show!并且只打印一次

# 然后再提一嘴,for循环后面的冒号,是python的语法,表示后面的代码是循环体,并且缩进了,表示这个代码是循环体里面的代码,,前面是循环条件

# 创建数值列表

# 使用range()函数

for value in range(1,5):

    print(value)

# range()函数让python从指定多个第一个值开始数,并在到达指定的第二个值时停止,所以这里不会打印5

# 结束后会打印1,2,3,4,因为range(1,5)表示从1开始,到5结束,但是不包含5

for value in range(6):

    print(value)

# 当range()函数只有一个参数的时候,range()会返回一个包含从0开始的所有数字的列表

# 这里会打印0,1,2,3,4,5,因为range(6)表示从0开始,到6结束,但是不包含6

# 使用range()函数创建数值列表

# list()函数可以将range()函数生成的结果转换为列表,将range()函数作为list()函数的参数传递进去,输出则是一个数值列表

numbers = list(range(1,6))

print(numbers)

# 在使用range()函数时,还可以指定步长,第三个参数就是步长,不写明的话默认是1

for value in range(1,10,2):

    print(value)

# 这个循环会打印1,3,5,7,9,因为步长是2,所以每次value都会加2

# 下面这几个循环是我自己在验证这个是用的用法,发现输出好像并不是和我们上面所讲的切合。不过初学也没有必要去深究这些底层细节,咱们先把书上的内容学完再说吧,这里就留个心眼,如果各位读者有兴趣的话,可以自己去研究一下这些细节,或者在评论区一起讨论

for value in range(1,10,2):

    print(value)

    value += 3

print("----")

for value in range(1,10,2):

    value += 3

    print(value)

print("----")

for value in range(1,10):

    value += 3

    print(value)

# 对数值列表执行简单的统计计算

numbers = list(range(1,11))

# 求列表中的最小值

print(min(numbers))

# 求列表中的最大值

print(max(numbers))

# 求列表中所有数的和

print(sum(numbers))

# 列表推导式,这个感觉还挺有趣,软考好像出过类似的选择题

squares = [value**2 for value in range(1,11)]

print(squares)

# 针对上面这个列表推导式,讲解一下:使用列表推导式,首先指定一个描述性的列表名,如squares,然后就是一对方括号,方括号里面先写表达式,如上面的value**2,然后是for循环,用来给表达式提供值,如上面的for value in range(1,11),整个列表推导式的意思就是

# 创建一个包含1到10的平方的列表。可能刚开始看不习惯,但是写熟练之后会喜欢上这种写法的,毕竟刷力扣的时候看见别人题解python的一行代码流还是很羡慕的。

# 然后下面这种也可以实现上面的列表推导式的功能

squares2 = list(value**3 for value in range(1,11))

print(squares2)

# 使用列表的一部分

# 切片:要创建切片,可指定要使用的第一个元素和最后一个元素的索引。与range()函数类似,Python在到达指定的最后一个元素时停止,因此切片包含第一个索引处的元素,但不包含最后一个索引处的元素。

players = ['charles', 'martina', 'michael', 'florence', 'eli']

# 获取列表的前3个元素  

print(players[0:3])# 这里可以发现切片之后的数据也是列表

# 其实列表还是很强的,可以获取列表的任意子集

# 如果要让Python从列表开头开始切片,可省略第一个索引

print(players[:3])

# 如果要获取列表末尾的元素,可省略最后一个索引

print(players[2:])

# 在上一章说过,负数索引返回与列表末尾有相应距离的元素,因此可以输出列表末尾的任意切片

# 比如输出列表最后三个元素

print(players[-3:])

# 然后这个也可以指定步长,第三个参数就是步长

print(players[0:5:2])

# 遍历切片

# 遍历前三个元素

for player in players[:3]:

    print(player.title())

# 复制列表

my_foods = ['pizza', 'falafel', 'carrot cake']

# my_foods[:]形式表示切片从第一个元素到最后一个元素

friend_foods = my_foods[:]

my_foods.append('cannoli')

friend_foods.append('ice cream')

print("My favorite foods are:")

print(my_foods)

print("\nMy friend's favorite foods are:")

print(friend_foods)

# 然后一些朋友可能会想friend_foods = my_foods是否可以实现同样的效果呢,但是这个是不行的,这种写法是表明两个变量指向了同一个列表,这样修改friend_foods,my_foods也会被修改,不信的话,各位可以试试分别用两种方式,然后分别添加和删除元素,看看两个列表是否还一样

# 元组:元组看起来很像列表,但是元组用小括号括起来,元组中的元素用逗号隔开,元组中的元素不能被修改,元组一旦被创建,就不能被修改。

dimensions = (200, 50)

# 访问元素,和列表的语法相同

print(dimensions[0])

print(dimensions[1])

# 然后呢元组是以逗号来标识的,因此当元组中只有一个元素时,为了让Python将其识别为元组,必须在元素后面添加一个逗号

tzh=(5)

print(type(tzh))

zxy=(5,)

print(type(zxy))

# 这里我们不加括号,看看是否能识别为元组

dimensions = 200, 50

print(dimensions)

print(type(dimensions))# 想必通过上面几行代码的输出,各位现在知道为什么了吧

# 遍历元组中的所有值

# 和列表一样,可以使用for循环来遍历元组中的所有值

for dimension in dimensions:

    print(dimension)

# 修改元组变量:虽然不能修改元组的元素,但可以给表示元组的变量赋值,虽然感觉这个跟没说一样,列表一样可以,也许是元组只能这么修改吧,所以书上将这里提出来.

dimensions1 = (400, 100)

print(dimensions1)

dimensions1 = (800, 200)

print(dimensions)

# 然后这章后面差不多就没了,后面就是代码格式规约,但是我感觉对于初学来说并不是特别重要,但是上班的话肯定是特别重要的。这一部分留给大家闲来无事的可以上网搜搜看看

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐