Python 函数在 for 循环中不要求用户输入 ()

Python function is not asking for user input () in the for loop

我是一名学习初学者python。我 运行 在我的课程中 运行 在我的 python 终端(使用 Python 3.7.4)中不是 运行 的代码。 我正在研究无限循环和中断。

我已经复习了上一课的代码并导入了 python 调试器来单步执行代码。这是我发现的:

# Breaking out of an infinite loop practice
import pdb; pdb.set_trace()

def find_512():
    for x in range(100):
        for y in range(100):
            if x * y == 512:
                break # it does not do what we want!
    return f"{x} * {y} == 512"
find_512() 

调试输出

PS C:\Users> & C:/Users/~/AppData/Local/Programs/Python/Python37-32/python.exe "q:~/find_512.py"
> q:~\find_512.py(4)<module>()
-> def find_512():
(Pdb) n
--Return--
> q:~\find_512.py(4)<module>()->None
-> def find_512():
(Pdb) n
PS C:\Users>

根据课程的预期输出应该是:

'99 * 99 == 512'

break 更改为 returnreturn 将立即离开功能。

def find_512():
    for x in range(100):
        for y in range(100):
            if x * y == 512:
                return f"{x} * {y} == 512"

find_512()

如果您想查看所有解决方案,您可以使用 yield 而不是 returnyield 记住函数中的最后位置并 returns 在下一次调用中。

def find_512_generator():
    for x in range(100):
        for y in range(100):
            if x * y == 512:
                yield f"{x} * {y} == 512"

for result in find_512_generator():
    print(result)