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條經驗 獲得超8個贊
改用它(這可以解決您提出的問題):
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)
添加回答
舉報