python 流程控制
一、if条件
.
二、循环结构
1. while循环
2. for-in循环
(1)使用for循环遍历字典
代码如下:
scr_list = [12, 45, 3.4, 12, 'fkit', 45, 3.4, 'fkit', 45, 3.4]
statistics = {}
count = 0
for ele in scr_list:
# 如果字典中包含ele代表的key
if ele in statistics:
# 将ele元素代表的出现次数加1
statistics[ele] += 1
# 如果字典中不包含ele代表的key,说明该元素还未出现过
else:
# 将ele元素代表的出现次数设为1
statistics[ele] = 1
# 遍历dict,打印各元素出现的次数
for ele, count in statistics.items():
print("%s 出现的次数为:%d" % (ele, count))
3, 嵌套循环
4. for表达式
语法格式如下:
[表达式, for 循环计数器 in 可迭代对象]
代码如下:
使用for表达式创建生成器
c_generator = (x * x for x in a_range if x % 2 == 0)
# 使用for循环迭代生成器
for in c-generator:
print(i, end='\t'
print()
嵌套循环
代码如下:
d_list = [(x, y) for x in range(5) for y in range(4)]
# d_list列表包含20个元素
print(d_list)
dd_list = []
for x in range(5):
for y in range(4):
dd_list.append((x, y))
print(d_list)
>> [(0, 0), (0, 1), (0, 2), (0, 3),
>> (1, 0), (1, 1), (1, 2), (1, 3),
>> (2, 0), (2, 1), (2, 2), (2, 3),
>> (3, 0), (3, 1), (3, 2), (3, 3),
>> (4, 0), (4, 1), (4, 2), (4, 3)]
e_list = [(x, y, z) for x in range(5) for y in range(4) for z in range(6)]
# 列表包含120个元素
print(e_list)
5. 常用工具函数
(1)zip()函数
可以把两个或多个列表“压缩”成一个zip对象(可迭代对象),这样就可以使用一个循环并行遍历两个或多个列表。
代码如下:
a = [ 'a', 'b', 'c']
b = [1, 2, 3]
c = [x for x in zip(a,b)]
print(c)
>> [('a', 1), (b', 2), (c', 3)]
(2)reversed()函数
该函数可接收各种序列(元组、列表、区间等)参数,然后返回一个“反序排列”的迭代器,该函数对参数本身不会产生任何影响。
代码如下:
a = range (10)
b = [x for x in reversed (a)]
print(b)
>> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
(3)sorted()函数
该函数接收一个可迭代对象作为参数,返回一个对元素排序的列表。
代码如下:
a = [20, 30, -1.2, 3.5, 90, 3.6]
print(sorted(a))
>> [-1.2, 3.5, 3.6, 20, 30, 90]
print(a)
>> [20, 30, -1.2, 3.5, 90, 3.6]
在使用sorted()函数时,还可传入一个reverse参数,如果将该参数设置为True,则表示反向排序。
代码如下:
a = [20, 30, -1.2, 3.5, 90, 3.6]
print(sorted(a, reverse=True))
>> [90, 30, 20, 3.6, 3.5, -1.2]
在调用sorted。函数时,还可传入一个key参数,该参数可指定一个函数来生成排序的关键值。
代码如下:
b = ['fkit', 'crazyit', 'Charlie', 'fox', 'Emily']
print(sorted(b, key=len))
>> ['fox', 'fkit', 'Emily', 'crazyit', 'Charlie']
三、控制循环结构
1. 使用break结束循环
break用于完全结束一个循环,跳出循环体。
2. 使用continue忽略本次循环的剩下语句
continue只是忽略当次循环的剰下语句,接着开始下一次循环,并不会中止循环。
3. 使用return结束方法
代码如下:
def test():
# 外层循环
for i in range(10):
for j in range(10):
print("i的值是:%d, j的值是:%d" % (i , j))
if j == 1:
return
print ("return后的输出语句")
test()