Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有单个输入语句的快速计算器_Python - Fatal编程技术网

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的解析器能够理解。