Python 计算器问题



你好,我是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)multiplication(x * y)更改为division(x , y)multiplication(x , y),否则您将x/yx*y的解决方案传递给函数,而不是两个值本身。

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

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

你想要division(x, y)而不是division(x / y)。(乘法也是如此。

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

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)(时的商。

当你想调用你的divide 函数时,你必须给它传递两个变量,它可以在这两个变量上执行你分配给它的任务。你不会x/y传递它,因为 1( 它需要两个变量 2( 函数将使用传递的两个变量来做到这一点。

最新更新