Python 3上的简单乘法和除法计算器

时间:2017-11-30 18:40:44

标签: python python-3.x calculator

以下是练习:

  

单个参数是带有*或/运算符

参数的运算符      

默认运营商是" *" (乘)

     

返回乘法或除法的结果

     

如果运营商不是" *"或" /"然后返回"无效的运算符"

有很多令我困惑的关于这里的说明,而且我知道我还没有解决它,但这里是我最接近解决的问题这样:

def multiply(operator):

op = (x)

return op

ops = input ("what would you like the operator to be? ")

x = input()

y = input()

if ops == "*":

return int (x) * int (y)

elif ops == "/":

return int (x) / int (y)

else:

return "invalid operator"

print (multiply())

我无法保持“回归”#34;在函数之外,我是否将所有条件都保留在函数内?

1 个答案:

答案 0 :(得分:0)

首先,您需要了解实际返回的内容。当解释器在代码中到达return语句时,它会将该值返回到调用它的位置。例如,假设我有一个函数sum_two_vals。此函数为输入ab提取两个值,并返回它们的总和。

sum_two_vals(a, b):
    return a + b

print(sum_two_vals(4, 5))

此代码将转到函数sum_two_vals,执行该函数中的任何内容,然后打印出结果。当你返回时,它会发送你要返回的任何内容,然后回到你调用它的地方。另外,您应该注意,当您返回时,所有后续代码都不会执行。当你返回' op'在第三行代码中(顺便说一句,op是完全未定义的),返回语句后面的代码都不会执行。给出的问题要求您编写带有一个参数operator的代码,并确定其是否为除法或乘法。您不会要求用户在函数内输入operator值,因为它将作为参数传入。

这与您的代码应该更接近:

def multiply(operator):

    x = float(input('Enter number 1: '))

    y = float(input('Enter number 2: '))

    if operator == "*":

        return x * y

    elif operator == "/":
        return x / y

    else:
        return "invalid operator"

print(multiply(input("Enter '/' or '*': ")))

阅读函数以及返回的工作方式here。希望这会有所帮助。