Python中for循环搭配else的陷阱

假设有如下代码:

for i in range(10):
    if i == 5:
        print ‘found it! i = %s‘ % i
else:
    print ‘not found it ...‘

你期望的结果是,当找到5时打印出

found it! i = 5

实际上打印出来的结果为:

found it! i = 5
not found it ...

当迭代的对象迭代完并为空时,位于else的子句将执行,而如果在for循环中含有break时则直接终止循环,并不会执行else子句。

所以正确的写法应该为:

for i in range(10):
    if i == 5:
        print ‘found it! i = %s‘ % i
        break
else:
    print ‘not found it ...‘

原文地址:https://www.cnblogs.com/nyist-xsk/p/9348140.html

时间: 2024-08-30 13:53:39

Python中for循环搭配else的陷阱的相关文章

Python中的循环技术

简单谈谈 Python 中容器的遍历和一下小技巧. 1.遍历单个容器 下面代码遍历一个 List 结构,同样适用于 Tuple.Set 结构类型 >>> x = [1, 2, 3, 'p' , 'y'] >>> for v in x: ... print(x) ... 1 2 3 p y 遍历字典 Dict 结构也是一样的方法,注意区分 Key-Value >>> y = {'a':11, 'b':22} >>> y {'b': 22

python中from module import * 的一个陷阱

from module import *把module中的成员全部导到了当前的global namespace,访问起来就比较方便了.当然,python style一般不建议这么做,因为可能引起name conflict. 但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import *后的那个并没有被更新,非常危险,因为程序有可能还可以正常运行, 只不过结果错了,到了production才被发现就比较惨了. 举个例子: 你定义了一些变量在base模块中: # r

Java和Python中for循环的比较

Java是强类型的语言,而python是弱类型的语言.先看Java中的for循环使用,如下图: package test06; /* * for 循环的条件 * for (循环初始表达式:循环条件表达式:循环后的表达式) */ public class Fortest { public static void main(String[] args){ /*打印九九乘法表*/ for(int x=1;x<10;x+=1){ for (int y=1;y<=x;y+=1){ if(y<x){

Python中的循环语句

Python中有while循环和for循环 下面以一个小例子来说明一下用法,用户输入一些数字,输出这些数字中的最大值和最小值 1 array = [5,4,3,1] 2 3 for i in array: 4 print(i) 5 6 largest = None 7 smallest = None 8 while True: 9 num = input("Enter a number: ") 10 if num == "done" : break if len(n

Python中的循环结构

Python中的比较运算符: Python中的关系运算符: 循环是为了解决重复出现的问题而设计. 1. for 实现 1+..+100求和 1 sum=0 2 for i in range(1,101): #range(start,stop,step) 3 sum+=i 2. while 1 i=1 2 sum=0 3 while i<101: 4 sum+=i 5 i+=1 注意: 在Python没有++ 和 -- 运算符 循环语句与判断条件语句结合使用时,注意break跳出所在最小循环,而c

python 中 for 循环 if循环 break

python中最基本的语法格式大概就是缩进了.python中常用的循环:for循环,if循环.一个小游戏说明for,if ,break的用法. 猜数字游戏: 1.系统生成一个20以内的随机数 2.玩家有6次机会进行猜猜看,每次猜测都会有反馈结果,猜大了,猜小了或是猜对了--结束 3.6次机会中,猜对了,玩家赢 4,6次机会中,没猜对,系统赢. 代码如下: [[email protected] python-scripts]# cat 12.py #!/usr/bin/python#coding=

22:python中的循环控制语句

循环控制语句可以更改语句执行的顺序.Python支持以下循环控制语句: 控制语句 描述 break 语句 在语句块执行过程中终止循环,并且跳出整个循环 continue 语句 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环. pass 语句 pass是空语句,是为了保持程序结构的完整性. 22.1 break语句 Pythonbreak语句,就像在C语言中,打破了最小封闭for或while循环. break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,

Python中list作为默认参数的陷阱

在Python中,作为默认参数的一定要是不可变对象,如果是可变对象,就会出现问题,稍不注意,就会调入陷阱,尤其是初学者,比如我(┬_┬). 我们来看一个例子. 1 def add(L=[]): 2 L.append(1) 3 return L 4 5 L = [1, 2, 3] 6 newL = add(L) 7 print(newL) 8 newL = add(newL) 9 print(newL) 10 11 testL = add() 12 print(testL) 13 testL =

python中的循环和编码

1.while循环 现在让我们来看看python中的while循环  格式为 while 条件 循环体 (break) (continue) 中断循环的关键字有break和continue, break: 直接中断跳出循环. continue:终止当前本次循环,继续执行下一次循环,不会彻底中断循环 2.格式化输出 占位符有%s,%d name = input("请输入你的名字") sex = input("请输入你的性别") age = input("请输