所以,我有一個作業,我被分配撰寫多個 python 代碼來完成某些任務。其中之一是:提示用戶輸入文本和整數值。重復字串 n 次并將結果分配給變數。還提到應該以避免任何錯誤的方式撰寫代碼(在要求輸入文本時輸入整數......)請記住,這是我一生中第一次嘗試撰寫任何代碼(我已經查找說明以獲取指導)
import string
allowed_chars = string.ascii_letters "'" "-" " "
allowed_chars.isalpha()
x = int
y = str
z = x and y
while True:
try:
x = int(input("Enter an integer: "))
except ValueError:
print("Please enter a valid integer: ")
continue
else:
break
while True:
try:
answer = str
y = answer(input("Enter a text: "))
except ValueError:
print("Please enter a valid text")
continue
else:
print(x*y)
break
這就是我得到的,驗證整數是否有效,但我無法驗證文本的輸入,它完成了任何輸入的操作。我嘗試使用“.isalpha()”,但它總是導致“str is not callable”我對將結果分配給變數部分也有點困惑。任何幫助將不勝感激。
uj5u.com熱心網友回復:
看起來你在正確的軌道上,但你有很多額外的令人困惑的專案。我相信您真正的問題是:如何強制執行字母字串輸入?
在這種情況下input(),python 總是回傳一個字串。
所以在你的第一種情況下,如果你輸入一個有效的整數,比如數字 1,它實際上會回傳“1”。但是然后您嘗試將其轉換為整數,如果轉換失敗,您會要求用戶再試一次。
在第二種情況下,你有很多額外的東西。您只需要獲取回傳的用戶輸入字串 y 并檢查它是否只有字母字符。見下文。
while True:
x = input("Enter an integer: ")
try:
x = int(x)
except ValueError:
print("Please enter a valid integer: ")
continue
break
while True:
y = input("Enter a text: ")
if not y.isalpha():
print("Please enter a valid text")
continue
else:
print(x*y)
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/521173.html
標籤:Python验证用户输入
