所以我试着做了一个Python计算器,最近开始研究这种语言。下面是我做的代码:
#Calculator v2
def Calculator(num1, figure, num2):
if figure == "+":
total = num1 + num2
print(total)
elif figure == "/":
total = num1 / num2
print(total)
elif figure == "-":
total = num1 - num2
print(total)
else:
total = num1 * num2
print(total)
print("##Write your forumla below: #############")
print("##Operators to choose from are + - * / ##")
num1, figure, num2 = input()
Calculator(int(num1), figure, int(num2))
为什么输入不接受大于9的数字?一旦他们得到两位数,它抛出以下错误代码:
“要解包的值太多(应为3)”
有人能帮忙吗?:)
2条答案
按热度按时间s1ag04yj1#
错误位于:
这里假设您有正好3个字符。
num1
将是第一个,figure
是第二个,num2
是第三个。您可以改用
re.split
:输入示例:
输出:
jvlzgdj92#
这并不是说你的应用不能接受超过1位数的数字,问题是:
当调用input()时,你接受一个字符串输入。
使用
时
Python会尝试将输入分解为3个参数,但例如
22
不能分解为3个参数,只能分解为2个。你可以采取不同的方法
可以使用空格拆分公式
另一种选择是自己解析公式,并通过op字符将公式分解,然后验证是否具有有效的公式结构