PYTHON如何将字符串转换为int或float

标签 python python-3.x

我尝试编写一个简单的计算器,但作为初学者,我不知道如何将输入字符串实际转换为 float 或 int。我希望输出在 2 时为整数,但不是 2.0,而在 float 时输出为 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)

关于PYTHON如何将字符串转换为int或float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45865407/

相关文章:

python - 通过 Python 日志记录模块将意外错误记录到文件中

python - 用Python设计一个可重用的解析器

python - reshape DataFrame - 将具有重复项的列值转换为列标题

python - df.append() with dicts 将 bool 值转换为 1 和 0

python-3.x - 使用 `psutils` 有效地检索所有正在运行的进程的统计信息

python - 比较两个文件并将报告保存在任何其他文件中

python - Psycopg2 查询返回十进制 ('value' )

python - Numpy Broadcast_to((50000,), (50000,32,32,3)) 失败。为什么?

python - Python 3 中的图形、绘图

python - 如何让自定义日志记录在 CherryPy 中工作?