3 回答
TA贡献1873条经验 获得超9个赞
检查此代码片段
try:
brightness = int(input("brightness:"))
except ValueError:
print("please pass in a number")
print(brightness)
print(brightness)如果在被要求输入时输入“有点暗” ,应该输出什么?
因为输入不是整数,int()这种情况下会抛出异常,所以局部变量brightness不会被初始化。
您可以在except子句中将其初始化为某个默认值,但在这种情况下,如果输入不正确,您可能不应该对 brightess 值做任何事情。
你可以在 try...except 中移动逻辑处理brightness,那么它只有在输入可以被解析的情况下才会执行。
def monitor():
try:
brightness = int(input("brightness:"))
if brightness < -1 or brightness > 101:
print("invaild",brightness)
else:
print("invalid",brightness)
except ValueError:
print("please pass in a number")
TA贡献2039条经验 获得超7个赞
改用它(这可以解决您提出的问题):
def monitor():
while True:
try:
brightness = int(input("brightness:"))
if brightness < -1 or brightness > 101:
print("invaild",brightness)
if brightness < -1 or brightness > 101:
print("invaild",brightness)
else:
print("invalid",brightness)
except ValueError:
print("please pass in a number")
else:
print("invalid",brightness)
monitor()
您的代码也有逻辑错误,因为无论输入(亮度),输出总是print("invalid",brightness)
如果您不知道,请告诉您,以防万一。
您的代码输出:
我的输出:
TA贡献1856条经验 获得超5个赞
请检查这个,这里我们强制用户只输入整数值。
brightness=-2
while (brightness < -1 or brightness > 101):
try:
brightness = int(input("brightness:"))
except ValueError:
print("please pass in a number")
if brightness < -1 or brightness > 101:
print("invaild",brightness)
else:
print("Valid",brightness)
添加回答
举报