如何我可以修复这个问题在python代码

fjaof16o  于 2023-01-06  发布在  Python
关注(0)|答案(1)|浏览(125)

我是一个新的程序员,我是乞丐,这是我第一次使用堆栈溢出,我现在尝试计算一个计算器计算数字像正常的计算器,我想写一些东西,如(“7 - 2 * 3”)和代码给予的结果。代码是混乱的我只是乞丐,所以请只是尝试理解,并帮助我。
当你尝试输入数字和运算符的代码时,空格像这样5 + 5.这是代码:

from functools import reduce

question = input("Enter your calcul : ")

nums = question.split()

numbers = nums[0::2]

def calcul(num1, num2):
    
    for x in variation:
        
        if x == '+':
            return num1 + num2
        elif x == '-':
            return num1 - num2
        elif x == '*':
            return num1 * num2
        elif x == '/':
            return num1 / num2
    

def wayy(lt):
    for x in lt:
        if '+' == x :
            yield'+'
        if '-' == x :
            yield'-'
        if '*' == x :
            yield'*'
        if '/' == x :
            yield'/'

variations = [] # [ + , - , * , / ]
variation = wayy(nums)
for x in variation:
    variations.append(x)

print(variations)

nm = []
for n in numbers:
    n = int(n)
    nm.append(n)

calcule = reduce(calcul, nm)
print(calcule)

我尝试编码一个计算器,我有一个问题,我认为这是在计算函数时,我输入的数字的结果是“无”,我知道的问题,在函数(计算),但我不知道如何才能解决它。

h5qlskok

h5qlskok1#

仅将“calcul”函数中的“variation”更改为“variations”。

def calcul(num1, num2):

    for x in variations:
        if x == '+':
            return num1 + num2
        elif x == '-':
            return num1 - num2
        elif x == '*':
            return num1 * num2
        elif x == '/':
            return num1 / num2

因为“variation”是一个“Generator”对象,但“variations”是一个字符串列表(您需要的)。

相关问题