for x in a: for y in x: print(x,end='') # PS G:\python> python .\test6.py appleorangebananagrape123 ########### a = [['apple','orange','banana','grape'],[1,2,3]]
for x in a: for y in x: print(y) else: print('fruit is gone') #什么时候执行else语句,当元素遍历结束的时候执行。
PS G:\python> python .\test6.py apple orange banana grape 1 2 3 fruit is gone ########### #循环终止 a = [1,2,3]
for x in a: if x == 2: break print(x) #打印,当x = 2的时候,结束循环 PS G:\python> python .\test7.py 1 a = [1,2,3] ############# for x in a: if x == 2: break print(x) #打印,跳出本次循环,继续下次循环 PS G:\python> python .\test7.py 1 3 ############# a = [1,2,3]
for x in a: if x == 2: break print(x) else: print('EOF') #执行结果 PS G:\python> python .\test7.py 1 #为什么else语句没有执行呢?for和else结合使用正常情况下for语句结束是会执行else语句块的,但是如果for循环是异常终止的话,这种情况就不会执行。那么continue呢?会。 ######### a = [['apple','orange','banana','grape'],[1,2,3]]
for x in a: for y in x: if y == 'orange': break print(y) else: print('fruit is gone') #什么时候执行else语句,当元素遍历结束的时候执行。 #执行结果 PS G:\python> python .\test6.py apple 1 2 3 fruit is gone #为什么这里有break语句,但是还是打印了1 2 3,因为这里有两个循环,break跳出的是里面的循环,不是外面的循环。我们试试跳出外层循环。 ######### a = [['apple','orange','banana','grape'],[1,2,3]]
for x in a: if 'banana' in x: break for y in x: if y == 'orange': break print(y) else: print('fruit is gone') #什么时候执行else语句,当元素遍历结束的时候执行。 #执行结果 PS G:\python>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
for x in range(0,10): print(x) #执行结果 PS G:\python> python .\test7.py 0 1 2 3 4 5 6 7 8 9 相当于java中的 for (int x=0;x <=10;x++>){System.out.println(x)}
在Design and History FAQ网站中,有关于这个问题的回答。官方的回答是我们可以用if … elif … elif …… else 语句块来起到其他语言中switch语句同样的效果,或者当需要从很多数量的case中去选择,那就建议用字典(dict),官方原话是:”For cases where you need to choose from a very large number of possibilities,you can create a dictionary mapping case values to functions to call. For example:”。 小总结一下,也就是官方推荐这两种方式来代替switch语句,或者准确地说,用这两种方式起到switch语句在其它语言中起到的作用。