我希望在Python3.8中使用列表中的元素进行计算
我正在寻找一个程序,用户输入一个总和,如5+6-7,我的程序识别它并给出答案,如4。到目前为止,我的程序将接受输入,重新计算数字和运算,并将它们分配到一个列表中,但是,我不知道如何获取数字和运算并计算它们。有人有什么可以帮忙的吗 这是我的密码我希望在Python3.8中使用列表中的元素进行计算,python,python-3.x,list,Python,Python 3.x,List,我正在寻找一个程序,用户输入一个总和,如5+6-7,我的程序识别它并给出答案,如4。到目前为止,我的程序将接受输入,重新计算数字和运算,并将它们分配到一个列表中,但是,我不知道如何获取数字和运算并计算它们。有人有什么可以帮忙的吗 这是我的密码 s = "5 + 6 - 7" #User input placeholder q = s.split() #splits the input into a list with an element for every character(not spa
s = "5 + 6 - 7" #User input placeholder
q = s.split() #splits the input into a list with an element for every character(not spaces)
print(q)
n = [] #numbers in user input
a = [] #actions/operations that the user inputs
print(q)
for x in range(0, len(q)):
if q[x].isdigit(): #determines whether an element is a digit
q[x] = int(q[x]) #str to int
n.append(q[x]) #adds it to the n list
print(n)
else:
a.append(q[x]) #adds an operation to the a list
print(a)
answer = n[0], a[0], n[1], a[1], n[2]
print("Operations are: ", a)
print("Numbers are: ", n)
print("Answer is: ", answer)
在这种情况下,可以使用
eval()
识别表达式并计算输出
比如说,
s = "5 + 6 - 7"
print(eval(s))
输出:
4
这是你能做的最简单的事情。希望这对你有帮助 在这种情况下,可以使用
eval()
识别表达式并计算输出
比如说,
s = "5 + 6 - 7"
print(eval(s))
输出:
4
这是你能做的最简单的事情。希望这对你有帮助 将Python中的所有标准运算符作为函数
您可以将每个运算符函数指定给其文本表示形式,并使用该文本表示形式查找运算符:
ops = {'+': operator.add, '-': operator.sub}
运行数字和运算符,从列表中为每个操作选择两个参数并应用,然后将结果推回到列表中:
print("Operations are: ", a)
print("Numbers are: ", n)
for operation in a:
arg_a = n.pop(0)
arg_b = n.pop(0)
result = ops[operation](arg_a, arg_b)
n.insert(0, result)
print("Answer is: ", n[0])
您的n
列表中剩下的元素是所请求计算的答案。这假设计算格式良好。将Python中的所有标准运算符作为函数
您可以将每个运算符函数指定给其文本表示形式,并使用该文本表示形式查找运算符:
ops = {'+': operator.add, '-': operator.sub}
运行数字和运算符,从列表中为每个操作选择两个参数并应用,然后将结果推回到列表中:
print("Operations are: ", a)
print("Numbers are: ", n)
for operation in a:
arg_a = n.pop(0)
arg_b = n.pop(0)
result = ops[operation](arg_a, arg_b)
n.insert(0, result)
print("Answer is: ", n[0])
您的
n
列表中剩下的元素是所请求计算的答案。这假设计算的格式正确。已经有人问过这个问题:这是否回答了您的问题?如果您的目标是尝试自己实现一个简单的解析器,而不是仅仅计算用户提供给您的内容,那么这两种方法都没有用。在这种情况下,使用图书馆是明智的做法,但它不会让你学会如何做一些脆弱但类似的事情。这个问题已经被问到:这能回答你的问题吗?如果您的目标是尝试自己实现一个简单的解析器,而不是仅仅计算用户提供给您的内容,那么这两种方法都没有用。在这种情况下,使用库是明智的做法,但它不会让你学会如何做一些脆弱但类似的事情。