关于Python遍历的问题!

我想写一个:如果输入中存在数字,那么就继续输入,没有数字就输出长度
答案是这样的

img


我想问比如我输入123,不应该是执行print吗,为什么break之后还可以不执行非循环语句的代码

那是因为这是一个二重循环
这里涉及到2个知识点
1.break只能跳出一层循环,不能直接跳出到最外层
2.在python中,for和while也可以跟else,如果正常循环完毕没有break则会执行else

你的这个是二层循环,一个最内层的break是不会直接跳出外循环的

while True:
    s = input()
    flag = False
    for i in s:
        if i < '9':
            flag = True
    if flag:
        break