我正在嘗試創建一個程式,將攝氏度轉換為華氏度,反之亦然。
程式將做的第一件事是詢問用戶用戶想要轉換攝氏度還是華氏度。如果輸入無效,則列印無效并要求重試。
然后會要求用戶輸入以星號分隔的開始、結束和間隔。例如 0 10 2。這意味著轉換的開始將從 0 到 10,間隔為 2,因此要轉換的值將是 0, 3, 6, 9
如果開始<結束,那么間隔應該是0<間隔,否則你的程式會顯示錯誤并要求重試
或者
如果開始>結束,那么間隔應該是0>間隔,否則你的程式將顯示錯誤并要求重試。
如果用戶輸入只有一個值,例如 10。這意味著 start 等于 1,這將是 start 的默認值,最多為 10,并且間隔為 2,這將是 start 的間隔的默認值<結束。
如果用戶輸入有兩個值,如 10*2,這意味著 start 等于 10 到 2。間隔設定為默認值,從 start>end 開始等于 -2。
這是我的代碼,它不起作用,我被卡住了。我將如何在這里使用 for 回圈?
while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0].isdigit()) < int(sei[1].isdigit()) and 0 < int(sei[2].isdigit()):
pass
elif int(sei[0].isdigit()) > int(sei[1].isdigit()) and 0 > int(sei[2].isdigit()):
pass
else:
print("Error. Try again.")
continue
else:
print("Error. Try again")
輸入:0 * 100 * 3
輸出: !
然后程式會要求用戶再試一次。如果是,程式將從一開始就運行。如果沒有,它將列印“謝謝”和整個程式中無效輸入的數量以及用戶成功轉換溫度的次數。
uj5u.com熱心網友回復:
這是我對您的問題的解決方案(可能效率低下,我也是初學者)。
temperatureValues = []
while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0]) < int(sei[1]) and 0 < int(sei[2]): # normal case
for i in range(int(sei[0]), int(sei[1]), int(sei[2])):
temperatureValues.append(i)
break
elif int(sei[0]) > int(sei[1]) and 0 > int(sei[2]): # reverse case
for i in range(int(sei[1]), int(sei[0]), int(sei[2])):
temperatureValues.append(i)
break
else:
print("Error. Try again.")
continue
elif len(sei) == 2:
for i in range(int(sei[0]), int(sei[1]), 2):
temperatureValues.append(i)
break
elif len(sei) == 1:
for i in range(1, int(sei[0]), 2):
temperatureValues.append(i)
break
else:
print("Error. Try Again.")
continue
print(temperatureValues)
# Implement your conversion here, by performing the conversion operation on each value of the temperatureValues list.
我還建議您通過先撰寫變數來進行值的比較。像 int(sei[0]) > 0,而不是反過來寫。使代碼更具可讀性。祝你好運!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325804.html
