gpt4 book ai didi

python - 作用域如何与 Python 中的 try 和 except block 一起使用?

转载 作者:行者123 更新时间:2023-12-04 13:47:18 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Short description of the scoping rules?

(9 个回答)


4年前关闭。




所以我对 try 和 except 块的变量范围有点困惑。为什么我的代码允许我使用 try 块之外的变量,甚至是 while 循环,即使我没有全局分配它们。

while True:
try:
width = int(input("Please enter the width of your floor plan:\n "))
height = int(input("Please enter the height of your floor plan:\n "))
except:
print("You have entered and invalid character. Please enter characters only. Press enter to continue\n")
else:
print("Success!")
break
print(width)
print(height)

我再次能够打印变量,即使它们是在本身位于 while 循环中的 try 块中定义的。他们怎么不是本地人?

最佳答案

你需要比 try 更强的东西打开一个新的范围,例如 defclass .您的代码具有类似于此版本的范围规则:

while True:

width = int(input("Please enter the width of your floor plan:\n "))
height = int(input("Please enter the height of your floor plan:\n "))
if width <= 0 or height <= 0:
print("You have entered and invalid character. Please enter characters only. Press enter to continue\n")
else:
print("Success!")
break

print(width)
print(height)

我假设您熟悉这个范围。

关于python - 作用域如何与 Python 中的 try 和 except block 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com