我是新來的整個編碼的東西......所以這裏。 只是試圖寫一個簡單的數字猜測遊戲,但也做輸入驗證。所以只有整數才被接受爲輸入。我已經想出瞭如何去除字母字符,所以我可以將數字轉換爲整數。當我輸入一個浮點數時,我遇到了麻煩。我無法得到它將浮點數轉換爲整數。任何幫助表示讚賞。正如我所說的,我正在談論這個編碼事物的第3天,所以試着理解我的小知識。提前致謝。如何將浮點字符串轉換爲python中的整數3
這是我主程序中的功能。
def validateInput():
while True:
global userGuess
userGuess = input("Please enter a number from 1 to 100. ")
if userGuess.isalpha() == False:
userGuess = int(userGuess)
print(type(userGuess), "at 'isalpha() == False'")
break
elif userGuess.isalpha() == True:
print("Please enter whole numbers only, no words.")
print(type(userGuess), "at 'isalpha() == True'")
return userGuess
這是我得到的錯誤,如果我使用4.3(或任何浮點數)作爲輸入。
Traceback (most recent call last):
File "C:\\*******.py\line 58, in <module>
validateInput()
File "C:\\*******.py\line 28, in validateInput
userGuess = int(userGuess)
ValueError: invalid literal for int() with base 10: '4.3'
您可以嘗試使用try-except來鏈接轉換。如果你的int()轉換產生一個ValueError異常,你可以嘗試使用float()轉換輸入,然後將你的浮點值舍入或截斷爲整數。 – nullop 2014-11-20 20:24:16
幾個方面的說明:你幾乎從不想檢查'如果垃圾郵件==假:',只是'如果不是垃圾郵件:'。在'elif'中,你不需要重新檢查'if'測試的反面 - 你已經知道'isalpha'是真的,因爲你知道它不是假的。所以,只需使用'else:'。如果你從這個函數返回'userGuess',你幾乎可以肯定不需要它是'global'。最後,你不需要爲了「返回」而「休息」;你可以在'if'塊中直接返回'userGuess'。 – abarnert 2014-11-20 20:27:39