无法在 python 中跳出 while 循环
Cannot break out of while loop in python
无法跳出 python 中的 while 循环:
我尝试将所有代码合并在一起,没有 main 和 getheight 函数,它仍然给我一个无限循环。
def main():
x = 0
while x not in range (1,23):
getheight()
if x in range (1,23):
break
for i in range (x):
for j in range (x - j):
print (" ", end="")
for j in range (x):
print ("#", end="")
print (" ", end="")
for j in range (x):
print ("#", end="")
"\n"
def getheight():
x = input("Give me a positive integer no more than 23 \n")
return x
if __name__ == "__main__":
main()
main()
中的x
是一个局部变量,它独立于getheight()
中的x
变量。您正在 return 从后者获取新值,但忽略 returned 值。从函数调用结果中设置x
in main
:
while x not in range (1,23):
x = getheight()
if x in range (1,23):
break
您还需要将 getheight()
函数修复为 return 一个 整数 ,而不是字符串:
def getheight():
x = input("Give me a positive integer no more than 23 \n")
return int(x)
Return 并不意味着它将自动更新 main 中与 return 变量匹配的任何变量名称。如果您不存储此 return 值,则 return 值将消失。因此你必须做
x=getheight()
更新变量 x
无法跳出 python 中的 while 循环: 我尝试将所有代码合并在一起,没有 main 和 getheight 函数,它仍然给我一个无限循环。
def main():
x = 0
while x not in range (1,23):
getheight()
if x in range (1,23):
break
for i in range (x):
for j in range (x - j):
print (" ", end="")
for j in range (x):
print ("#", end="")
print (" ", end="")
for j in range (x):
print ("#", end="")
"\n"
def getheight():
x = input("Give me a positive integer no more than 23 \n")
return x
if __name__ == "__main__":
main()
main()
中的x
是一个局部变量,它独立于getheight()
中的x
变量。您正在 return 从后者获取新值,但忽略 returned 值。从函数调用结果中设置x
in main
:
while x not in range (1,23):
x = getheight()
if x in range (1,23):
break
您还需要将 getheight()
函数修复为 return 一个 整数 ,而不是字符串:
def getheight():
x = input("Give me a positive integer no more than 23 \n")
return int(x)
Return 并不意味着它将自动更新 main 中与 return 变量匹配的任何变量名称。如果您不存储此 return 值,则 return 值将消失。因此你必须做
x=getheight()
更新变量 x