簡體   English   中英

PYTHON如何將字符串轉換為int或float

[英]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)

您的數字以這種方式顯示的原因是因為您將num1num2評估為浮點數。 如果要測試是否具有int,可以嘗試使用類似if int(num1) == num1:來確定是否要應用其他格式。 這導致更改其顯示方式:

如果您只關心它的顯示方式,因為您已經在使用format ,請嘗試類似

"{:.0f}".format(a)

這將舍入該值,但是,如果您確定它是一個整數,則舍入除視覺效果外不會有任何影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM