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
更改为 return
。 return
将立即离开功能。
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
而不是 return
。 yield
记住函数中的最后位置并 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)
我是一名学习初学者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
更改为 return
。 return
将立即离开功能。
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
而不是 return
。 yield
记住函数中的最后位置并 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)