我有這樣的提示:如果語句比較失敗
你必須做你的化學作業,但你討厭查找週期表 元素!寫一個程序,從標準輸入中取一個名稱爲 的元素(作爲一個字符串,與案例無關),並且 打印一個代表其原子權重的雙精度值到標準輸出。 僅執行前三個元素hydrogren, 氦和鋰的程序,它們的原子量分別爲1.008, 4.0026和6.94。如果還有其他內容作爲輸入,請打印語句「對不起,我不認識那個元素!」
我寫了一個代碼,但一直得到錯誤的結果。不管我輸入什麼,它總是出錯。標準輸出不斷指出「輸入元素名稱:」與原子量數
這裏沿着就是我寫的:
hydrogen = 1.008
helium = 4.0026
lithium = 6.94
atomic_weight = input("Enter element name:").lower()
if atomic_weight == hydrogen:
print(hydrogen)
elif atomic_weight == helium:
print(helium)
elif atomic_weight == lithium:
print(lithium)
else:
print("Sorry, I don't recognize that element!")
更新代碼
hydrogen = 1.008
helium = 4.0026
lithium = 6.94
element_name = input("Enter element name:").lower()
if element_name == hydrogen:
print(hydrogen)
elif element_name == helium:
print(helium)
elif element_name == lithium:
print(lithium)
else:
print("Sorry, I don't recognize that element!")
'atomatic_weight'是一個字符串;這就是你將從'input'返回的內容(否則'.lower()'不起作用。爲了比較一個字符串和一個浮點數(因爲你的元素是浮點數),你必須將字符串轉換爲float。附加說明:浮點數比較不準確 – Evert
這對我們很有幫助,但更有助於您解釋您得到的「錯誤結果」如果您已經輸入了「無論輸入什麼名稱, '對不起......'「你可能已經看到了這個問題,正確命名變量可以節省你的麻煩;你不需要一個'atomic_weight',我們知道它是一個數字,你要求一個'element_name',輸入字符串的更好的名字 – msw
感謝您的命名建議! –