[英]PYTHON How to convert string into int or float
我嘗試編寫一個簡單的計算器,但是作為一個初學者,我不知道如何將輸入字符串實際轉換為float或int。 我希望輸出為2
時為整數,而不是2.0
而浮點型時為2.5
。 但我對此進行了編碼並輸入1 + 1
我仍然得到2.0
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")
最好添加if語句。 例如
if int(res) == res:
res = int(res)
您的數字以這種方式顯示的原因是因為您將num1
和num2
評估為浮點數。 如果要測試是否具有int,可以嘗試使用類似if int(num1) == num1:
來確定是否要應用其他格式。 這導致更改其顯示方式:
如果您只關心它的顯示方式,因為您已經在使用format
,請嘗試類似
"{:.0f}".format(a)
這將舍入該值,但是,如果您確定它是一個整數,則舍入除視覺效果外不會有任何影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.