我試圖編寫一個簡單的計算器,但作爲初學者我不知道如何實際將我的輸入字符串轉換爲float或int。我想要的輸出是整數,當它是2
但不是2.0
而輸出爲2.5
時,它的一個浮點數。但我這個編碼並進入1 + 1
我仍然得到2.0
PYTHON如何將字符串轉換爲int或float
from ast import literal_eval
# User input a simple calculation
num1, operator, num2 = input('Please enter a simple math calculation ').split()
num1 = float(num1)
num2 = float(num2)
# Convert string into either int or float
def convertString1 (num1):
val = literal_eval(num1)
return isinstance(val, int) or (isinstance(val, float) and val.is_integer())
def convertString2 (num2):
val = literal_eval(num2)
return isinstance(val, int) or (isinstance(val, float) and val.is_integer())
# Condition to perform calculation and output
if operator == "+" :
print("{} + {} = {}".format(num1, num2, num1+num2))
elif operator == "-" :
print("{} - {} = {}".format(num1, num2, num1-num2))
elif operator == "*" :
print("{} * {} = {}".format(num1, num2, num1*num2))
elif operator == "/" :
print("{}/{} = {}".format(num1, num2, num1/num2))
else :
print("Syntax error")
因爲要轉換的值漂浮... 'NUM1 =浮子(NUM1) NUM2 =浮子(NUM2)'。此外,函數不會自行調用,您必須這樣做 – smac89
爲什麼您定義了不使用的函數? – pointerless
你也可以用'literal_eval'來解析'1'作爲int,但將'1.0'解析爲一個float。 –