我正在嘗試用 python 制作一個計算器。但是,我希望用戶能夠輸入整數或浮點數。但不是字串,我該怎么做?
這是我當前的代碼,但是,if 陳述句沒有完成預期的作業。
def calculator():
x = (input("Please enter a number: "))
y = (input("Please enter a second number"))
if x or y != int or float:
print("Invalid input, please enter a number")
x = input("Please enter a number: ")
y = input("Now, please enter a second number: Press enter to leave blank: ")
uj5u.com熱心網友回復:
您可以在輸入之前添加 int 或 float ......例如:
x = int(input("Please enter a number: "))
所以如果你輸入一個字串,它不會接受它并導致回溯
uj5u.com熱心網友回復:
你輸入的總是一個字串,即使有人輸入了一個數字。要將輸入轉換為 int 或 float,請使用:
x = int(input("text"))
y = float(input("text"))
請注意,如果您只想要數字,則應驗證輸入,例如
def check_user_input(input):
try:
# Convert it into integer
val = int(input)
print("Input is an integer number. Number = ", val)
except ValueError:
try:
# Convert it into float
val = float(input)
print("Input is a float number. Number = ", val)
except ValueError:
print("No.. input is not a number. It's a string")
input1 = input("Enter your Age ")
check_user_input(input1)
input2 = input("Enter any number ")
check_user_input(input2)
input2 = input("Enter the last number ")
check_user_input(input2)
uj5u.com熱心網友回復:
您可以嘗試以下操作:
while True:
try:
x = input('Enter int or float:')
if x.find('.') == -1:
x = int(x)
break
else:
x = float(x)
break
except ValueError:
print('Something went wrong, try again.')
print(type(x))
您有一個決議用戶輸入的 while 回圈。如果它包含一個.用戶輸入一個float否則一個int,因此在相應的陳述句中進行決議。如果格式不正確,aValueError被引發并被排除,列印用戶應該再試一次。可以更新資訊以提供更多提示。但是,如果任一轉換成功,就會留下 while 回圈并列印型別。也可以使用 KeyboradInterrupt 保留回圈Ctrl C。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325792.html
