私は単純な電卓を作成しようとしましたが、初心者として入力文字列をfloatまたはintに実際に変換する方法がわかりません。 2
のときは出力を整数にしたいが、2.0
の出力でないときは、出力は2.5
のときに浮動小数点にする。しかし、私はあなたがフロートとしてnum1
とnum2
を評価しているので、私はまだ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を)' float型に値を変換しているので。また、関数は自分自身を呼び出すことはありません、あなたはそれを行う必要があります – smac89
なぜあなたは使用しない関数を定義しましたか? – pointerless
'literal_eval'を使って' 1'をintとして解析することもできますが、 '1.0'をfloatとして解析することもできます。 –