python 3.x 流程控制语句
条件控制语句
-
if expression:pass
-
if condition:passelse:pass
-
if expression:passelif expression:passelif expression:passelse:pass
由于python中没有switch和case语句,官方建议使用if..elif...elif...elif...else...语句来完成
对于需要从大量可能性中进行选择的情况,您可以创建一个字典映射案例值给要调用的函数(官方)。例如:
1 def function_1(...):
2 ...
3
4 def function_2(...):
5 ...
6
7
8 functions = {'a': function_1,
9 'b': function_2,
10 'c': self.method_1, ...}
11
12 func = functions[value]
13
14 func()
if...else...语句有时可以使用逻辑运算符or来取代.
1 # 需求: 使用快速的方法来判断a,b的bool类型.a,b一真一假
2 a = 1
3 b = 0
4 # 输出结果: 1
5 # 通过输出的结果来判断a,b的bool类型.因为逻辑运算符or的原理是一真则真.当第一个表达式为真时,就不会在判断第二个表达式.提高效率的判断
6 print(a or b)
循环控制语句
- while
-
while expression:passwhile expression:passelse:pass
1 a = 10 2 i = 1 3 j = 1 4 5 if i==0: 6 print("i是1,停止操作") 7 exit(0) # 无错误退出程序,后面的代码不执行 8 9 while i <= 10: 10 print("jayden",i) 11 i += 1 12 13 14 while j <= 3: 15 print("june",j) 16 j += 1 17 else: 18 print("j大于4") 19 20 打印结果: 21 jayden 1 22 jayden 2 23 jayden 3 24 jayden 4 25 jayden 5 26 jayden 6 27 jayden 7 28 jayden 8 29 jayden 9 30 jayden 10 31 june 1 32 june 2 33 june 3 34 j大于4
-
- for
- 主要用来遍历/循环.序列或者集合.字典
-
-
for target_list in expression_list:pass
for target_list in expression_list:passelse:pass
-
1 list_a = [["python","java","php","jayden","june"],(1,2,3)]
2 list_b = ["python","java","php","jayden","june"]
3
4 for item_b in list_b:
5 print(item_b,end = " ")
6
7 print()
8
9 for item_a in list_a:
10 for item_c in item_a:
11 print(item_c)
12 else:
13 print("循环结束")
14
15 输出结果:
16 python java php jayden june
17 python
18 java
19 php
20 jayden
21 june
22 1
23 2
24 3
25 循环结束
2. 当for循环碰见break时,跳出循环,并终止循环语句,else语句也不会执行
1 list_b = ["python","java","php","jayden","june"] 2 3 for item_b in list_b: 4 if item_b == "jayden": 5 break 6 print(item_b) 7 else: 8 print("end !") 9 10 输出结果: 11 python 12 java 13 php
3.当for循环碰见continue时,跳出当前循环,立即执行下一循环,else语句正常执行
1 list_b = ["python","java","php","jayden","june"] 2 3 for item_b in list_b: 4 if item_b == "jayden": 5 continue 6 print(item_b) 7 else: 8 print("end !") 9 10 输出结果: 11 python 12 java 13 php 14 june 15 end !
4.当for循环嵌套for循环时,在子for循环内有一个if判断语句执行break时,当前子for循环立即终止.执行下一个父for循环.如果有else语句,并执行.
1 for item_a in list_a: 2 for item_c in item_a: 3 if item_c == "jayden": 4 break 5 print(item_c) 6 else: 7 print("循环结束") 8 9 输出结果: 10 python 11 java 12 php 13 1 14 2 15 3 16 循环结束
python中for循环没有类似于java中for( i = 0 ; i < 10 ; i++ ){ }的形式 ,如果您确实需要对数字序列进行迭代,那么内置的函数range()将派上用场。它生成等差数列.
- range( stop_value ) : 默认起始值是0 , 结束值为stop_value(不包含) , 默认步长(step)是1
- range( start_value , stop_value ) : 起始值(start_value)可以自定义,结束值为stop_value(不包含),默认步长(step)是1.
- range( start_value , stop_value , step ) : 起始值(start_value)可以自定义,结束值为stop_value(不包含),自定义步长(step)
1 for int_x in range(10): 2 print(int_x,end = " ") 3 4 print() 5 6 for int_x in range(2 , 10): 7 print(int_x,end = " ") 8 9 print() 10 11 for int_x in range(3 , 15 , 3): 12 print(int_x,end = " ") 13 14 print() 15 16 输出结果: 17 18 0 1 2 3 4 5 6 7 8 9 19 20 2 3 4 5 6 7 8 9 21 22 3 6 9 12
- range()递减
1 for int_x in range(10 , 0 , -1): 2 print(int_x,end = " ") 3 4 print() 5 6 for int_x in range(10 , 0 , -2): 7 print(int_x,end = " ") 8 9 print() 10 11 for int_x in range(-10 , 1 , 2): 12 print(int_x,end = " ") 13 14 print() 15 16 输出结果: 17 10 9 8 7 6 5 4 3 2 1 18 19 10 8 6 4 2 20 21 -10 -8 -6 -4 -2 0
要遍历序列的指数,你可以结合range()和 len()如下:(但是,在大多数情况下,使用该enumerate() 功能很方便)
1 list_a = ["jayden","june","java","python","eleven"] 2 3 for index in range(len(list_a)): 4 print(index,list_a[index]) 5 6 输出结果: 7 0 jayden 8 1 june 9 2 java 10 3 python 11 4 eleven
但是,在大多数情况下,使用该enumerate() 功能很方便
- enumerate(iterable , start = 0)
- 返回一个枚举对象。iterable必须是一个序列,一个 迭代器或其他支持迭代的对象。
__next__()通过enumerate()返回的迭代器的方法 返回一个包含count的元组(从start开始,默认值为0)以及从iterable迭代获得的值。
1 # enumerate(iterable,start = 0) 2 print(list(enumerate(list_a))) 3 4 print(list(enumerate(list_a,start = 1))) 5 6 输出结果: 7 [(0, 'jayden'), (1, 'june'), (2, 'java'), (3, 'python'), (4, 'eleven')] 8 9 [(1, 'jayden'), (2, 'june'), (3, 'java'), (4, 'python'), (5, 'eleven')]
1 list_a = [1,2,3,4,5,6,7] 2 3 for x in range(0,len(list_a),2): 4 print(list_a[x]) 5 6 print(list_a[0::2]) 7 8 输出结果: 9 1 10 3 11 5 12 7
13 [1, 3, 5, 7]
posted on 2018-06-16 10:14 jaydenjune 阅读(60) 评论(0) 收藏 举报
浙公网安备 33010602011771号