Python 计算器问题

Python calculator issues

您好,我是 python 的初学者。我使用 python 3 并且我的代码有问题。我做了完全相同的事情,但使用了加法和减法,效果很好,但是当我使用除法和乘法时,我得到了一个错误。这是代码:

import math

division = 'division'
multiplication = 'multiplication'

class calculator:

    math = input('Enter division or multiplication: ')

    if math == division:
        x = float(input('First number: '))
        y = float(input('Second number: '))
        def division(x,y):
            div = x / y
            print(div)
        division(x / y)

    elif math == multiplication:
        x = int(input('First number: '))
        y = int(input('Second number: '))
        def multiplication(x,y):
            mult = x * y
            print(mult)
        multiplication(x * y)

    else:
        print('Invalid input!')

这是我得到的错误:

Traceback (most recent call last):
  File "/Users/linusekman/Desktop/test1.py", line 6, in <module>
    class calculator:
  File "/Users/linusekman/Desktop/test1.py", line 16, in calculator
    division(x / y)
TypeError: division() missing 1 required positional argument: 'y'

可能是什么问题?

您想要 division(x, y) 而不是 division(x / y)。 (乘法也是一样。)

division(x / y)multiplication(x * y)需要改成division(x , y)multiplication(x , y),否则你就通过了x/y和[=的解法15=] 到函数,而不是两个值本身。

旁注:如果您不打算使用它,则不应 import math,并且您已经在 class 的斜率中覆盖了变量 mathmath = input('Enter division or multiplication: ').

另一个注意事项:class 结构对于您正在做的事情不是必需的,如果您想重用那段代码,请将 class 更改为一个函数。

让我们看看你的例子(^.^)

if math == division:
        x = float(input('First number: '))
        y = float(input('Second number: '))
        def division(x,y):
            div = x / y
            print(div)
        division(x / y) <-(pay attention to this line!)

当您创建一个名为 def division (x,y) 的函数时,您声明该函数将接受 两个 个变量。

你继续说这个函数将打印 x 除以 y 的商(div = x/yprint(div)).

当你想调用除法函数时,你必须给它传递两个变量,它可以执行你分配给它的任务。您不传递它 x/y,因为 1) 它需要两个变量 2) 该函数将使用传递的两个变量执行此操作。