首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >陷入“while True”循环python

陷入“while True”循环python
EN

Stack Overflow用户
提问于 2018-09-10 08:46:36
回答 2查看 257关注 0票数 1

我刚刚学习了Python语言中的breakreturn

在我为熟悉这两个语句而编写的玩具代码中,我陷入了一个循环,但我不知道为什么。下面是我的代码:

代码语言:javascript
复制
def break_return():
    while True:
        for i in range(5):
            if i < 2:
                print(i)
            if i == 3:
                break
        else:
            print('i = ', i)
            return 343
break_return()

我是编程新手,任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-10 08:50:15

对于for-else结构,只有在else循环没有break的情况下才会进入for块,而for循环总是这样做的,因为i不可避免地会随着range生成器变成3。因此,您的无限while循环永远不能到达return语句,该语句只在上述else块中。

票数 4
EN

Stack Overflow用户

发布于 2018-09-10 09:15:13

nvm我在这超级错了

首先,当您在Python中定义函数时,属于该函数的任何代码都应该在同一缩进块中。考虑到这一点,您的代码将如下所示:

代码语言:javascript
复制
def break_return():
    while True: 
        for i in range(5):
            if i < 2:
                print(i)
            if i == 3:
                break
        else:
            print('i = ', i)
            return 343
break_return()

我看到的下一个问题是您的else语句没有用if语句正确格式化。如果你想让它出现在第二个if语句中,你的代码应该是这样的:

代码语言:javascript
复制
def break_return():
    while True: 
        for i in range(5):
            if i < 2:
                print(i)
            if i == 3:
                break
            else:
                print('i = ', i)
                return 343
break_return()

这只是格式化。但在本例中,代码将只运行一次,因为它会立即返回并退出函数。

我认为这可能是同时使用breakreturn的一个更好的例子

代码语言:javascript
复制
def break_return(value):
    for i in range(5):
        print(i)
        if i == 3:
            break #This exits the for loop
        if i == 4:
            print("This won't print!")
            #Won't print because the loop "breaks" before i ever becomes 4
    return value * 2 #Returns the input value x 2

print(break_return(30)) #Display the return value of break_return()

这演示了break如何退出for循环,以及return如何从函数返回值。

上面代码的输出是:

代码语言:javascript
复制
0  #Value of i
1  #Value of i
2  #Value of i
3  #Value of i
60 #The value returned by the function

很高兴听到你在学习Python!它非常有趣,而且非常有用。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52249762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档