Python 具有单个输入语句的快速计算器
我正在尝试制作一个快速测试计算器,它可以在一行和一个输入语句中获取所有操作,但它给了我一个无法将字符串转换为浮点的错误Python 具有单个输入语句的快速计算器,python,Python,我正在尝试制作一个快速测试计算器,它可以在一行和一个输入语句中获取所有操作,但它给了我一个无法将字符串转换为浮点的错误 x = input("Calculadora\nEnter the operation: \n") y = float(x[0]) z = x[1] w = float(x[2]) print(y + w) if z == '+': s = y + w print(s) 对于输入中的任何类型的数字(负数或浮点数),您可以使用: x = input("Calcu
x = input("Calculadora\nEnter the operation: \n")
y = float(x[0])
z = x[1]
w = float(x[2])
print(y + w)
if z == '+':
s = y + w
print(s)
对于输入中的任何类型的数字(负数或浮点数),您可以使用:
x = input("Calculadora\nEnter the operation: \n")
print(eval(x))
如果您希望对用户输入100%安全,可以使用ast模块中的文字评估
from ast import literal_eval
print(literal_eval(x))
您可以对字符串使用
split
方法
x = input().split('+')
num1 = float(x[0])
num2 = float(x[1])
print(num1 + num2)
当然,您可以为其他操作员扩展此操作。您需要什么操作?请输入行好吗?我估计如果您有负数或浮点数(-1或1.05作为数字),您将需要使用regex.rusu_ro1将其固定。他在一行中重写了你的应用程序逻辑!很酷。选择这个作为正确答案!它将自动处理所有数字、运算符、括号等。您的脚本不应具有管理员权限,顺便说一句,这只是我所了解的操作系统的学习示例“+100+100”或“+100++100”等情况如何?您的代码将得到与OP所提到的相同的错误,因此OP可以根据“我的答案”状态拆分输入来创建新代码。在我看来,这比抛出一个甚至不是为此目的而设计的函数要好。是的,它解决了OP的问题,但是如果你认为他/她是Python初学者,那么将概念引入安全漏洞和性能风险。此外,使用
eval
并不意味着初学者能够理解编写解决方案的问题,而是意味着Python的解析器能够理解。