Python计算器问题

2024-03-28 09:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我是python的初学者。我使用python3,代码有问题。我做了完全相同的,但与加法和减法,它工作得很好,但当我做除法和乘法,我得到一个错误。代码如下:

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'

有什么问题吗?你知道吗


Tags: 代码divnumberinputdef错误mathfloat
3条回答

division(x / y)multiplication(x * y)需要更改为division(x , y)multiplication(x , y),否则将x/yx*y的解传递给函数,而不是这两个值本身。你知道吗

旁注:如果您不打算使用它,并且已经在类的slope math = input('Enter division or multiplication: ')中重写了变量math,那么就不应该import math。你知道吗

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

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

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除以ydiv = x/yprint(div))。你知道吗

当你想调用除法函数时,你必须给它传递两个变量,它可以执行你分配给它的任务。您不需要传递它,因为1)它需要两个变量2)函数将通过传递的两个变量来完成。你知道吗

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

相关问题 更多 >