python入门基础知识五(for循环、公共操作与推导式)

for循环

break终止循环

a = 'abcd'
for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         break
...     print(i)
...     
a
b
'c' stands for 'cease'

continue退出本次循环,继续执行下一个循环

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         continue
...     print(i)
...     
a
b
'c' stands for 'cease'
d

for...else

for i in array:

  codes for loop

else:

  if exit loop normally then run these codes...

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         break
...     print(i)
... else:    
...     print('This loop has ended normally.')
...     
a
b
'c' stands for 'cease'    # 循环没有正常结束,没有返回预先写好的提示

for i in a:
...     if i == 'c':
...         print("'c' stands for 'cease'")
...         continue
...     print(i)
... else:    
...     print('This loop has ended normally.')
...     
a
b
'c' stands for 'cease'
d
This loop has ended normally.    # 循环正常结束,返回提示

 

公共操作

运算符

 公共方法:支持字符串、列表、元组、集合、字典

enumerate

作用是将要给可遍历的数据对象(如,列表、元组或字符串)组合为一个索引序列,同时列出数据及其下标,一般与for循环联用。

enumerate(可遍历对象,start = 0)  # 下标起始默认值为0,可不写

a = ['sun','moon','star']
for i in enumerate(a):
...     print(i)
...     
(0, 'sun')
(1, 'moon')
(2, 'star')
for i in enumerate(a,start = 1): ... print(i) ... (1, 'sun') (2, 'moon') (3, 'star')
for i,j in enumerate(a): ... print(f'The index is {i}, corresponding data is {j}') ... The index is 0, corresponding data is sun The index is 1, corresponding data is moon The index is 2, corresponding data is star

 

推导式

主要作用是简化代码

列表的推导式

创建一个由0-10组成的列表,如果不用推导式,就必须令 a = [1,2,3,4...10]。如果创建一个从0-100的列表呢?

range(起,终,步长)  # 步长如果是1可以省略不写,注意,终和下标是一样的,如果要创建0-10的数组,必须要把终的位置写在11!

a = []
for i in range(0,11):
...     a.append(i)
...     print(a)    # print的对齐位置很重要
...     
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a = []
for i in range(0,11):
...     a.append(i)
... print(a)    # print的对齐位置很重要
...     
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

带条件语句的列表推导式

创建一个0-10以内偶数组成的列表

a = [i for i in range(0,11,2)]
print(a)
[0, 2, 4, 6, 8, 10]

a = [i for i in range(0,11) if i%2 == 0]    # 除以2,余数为0的i
print(a)
[0, 2, 4, 6, 8, 10]

字典推导式

用于将两个列表合并为字典,或提取字典中的目标数据

list1 = ['beef','mutton','pork']
list2 = [55,45,22]
a = {list1[i]:list2[i] for i in range(len(list2))}
print(a)
{'beef': 55, 'mutton': 45, 'pork': 22}

list1.append('fish')
list1
['beef', 'mutton', 'pork', 'fish']

a = {list1[i]:list2[i] for i in range(len(list2))}
print(a)
{'beef': 55, 'mutton': 45, 'pork': 22}

a = {list1[i]:list2[i] for i in range(len(list1))}  # 注意,len要用最短的那个列表,否则会报错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 1, in <dictcomp>
IndexError: list index out of range
b = {i:j for i,j in a.items() if j > 40}  # i代表的是key,j代表的是value
print(b)
{'beef': 55, 'mutton': 45}

集合推导式

不常用,主要是数字的运算

c = {2,2,3}
d = {i ** 3 for i in c}
print(d)
{8, 27}    # 集合自动去重,进行了3次方的运算

 

posted @ 2022-07-26 15:17  randy198  阅读(110)  评论(0)    收藏  举报