Python计算器问题

时间:2017-05-18 22:55:06

标签: python python-3.x calculator

你好我是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'

问题是什么?

3 个答案:

答案 0 :(得分:4)

division(x / y)multiplication(x * y)需要更改为division(x , y)multiplication(x , y),否则您将通过x/y和{{的解决方案1}}到函数,而不是两个值本身。

附注:如果你没有使用它,那么你不应该x*y,并且你已经在你班级的坡度上覆盖了变量import math { {1}}。

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

答案 1 :(得分:1)

您希望division(x / y)代替add $t0, $zero, $zero addi $a0, $zero, 21 loop: beq $a0, $zero, end add $t0, $t0, $a0 addi $a0, $a0, -3 j loop end 。 (乘法也是一样。)

答案 2 :(得分:0)

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

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)函数将通过传递的两个变量。