[英]Simple Python Temp Script
我編寫了一個非常簡單的臨時腳本,該腳本將提示用戶輸入並吐出答案。 如您在下面看到的,我提示用戶輸入1,2或3。1表示Fah到cel,2表示cel到feh,3表示退出程序。 如果用戶輸入1或2,則另一個提示將要求他們輸入要轉換的程度。 此項保存在變量中:
scale
我編寫的函數應該將浮點數計算為正確的轉換,並在打印正確的溫度后循環回到主菜單。 在try / except語句中有一些邏輯,它將嘗試將此輸入轉換為浮點數,如果不能,則將輸出討厭的語法。 當我運行這段代碼時,一切似乎都可以正常工作,直到進入函數調用fahtoCel為止:
fc = fahtoCel(scale)
我很確定自己所有縮進都正確,並且已經研究了聲明函數並在腳本中調用它們。 我唯一的懷疑是我的函數調用在我的try / except語句中,並且范圍可能不正確嗎? 我的代碼:
def fahtoCel(number):
return(number - 32.0) * (5.0/9.0)
while True:
x = raw_input("""Please enter 1,2 or 3: """)
if x == "3":
exit(0)
if x == "1":
scale = raw_input("""Enter degrees in Fah: """)
try:
scale = float(scale)
fc = fahtoCel(scale)
except:
print("Invalid Entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
if x == "2":
#Do the same for cel to fah#
continue
將執行轉移到while
循環的開始,因此,無論try
語句的結果如何,您都永遠不會到達print
語句。 您需要進一步縮進:
try:
scale = float(scale)
fc = fahtoCel(scale)
except Exception: # Don't use bare except! You don't want to catch KeyboardInterrupt, for example
print("Invalid entry")
continue
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
但是,實際上,您的try
語句太寬泛了。 您應該擔心的唯一例外是float
可能引發的ValueError
。
try:
scale = float(scale)
except ValueError:
print("Invalid entry")
continue
fc = fahtoCel(scale)
print("%.2f degrees fah equals %.2f degrees Cel" % (scale, fc))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.