以下是练习:
单个参数是带有*或/运算符
参数的运算符默认运营商是" *" (乘)
返回乘法或除法的结果
如果运营商不是" *"或" /"然后返回"无效的运算符"
有很多令我困惑的关于这里的说明,而且我知道我还没有解决它,但这里是我最接近解决的问题这样:
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;在函数之外,我是否将所有条件都保留在函数内?
答案 0 :(得分:0)
首先,您需要了解实际返回的内容。当解释器在代码中到达return语句时,它会将该值返回到调用它的位置。例如,假设我有一个函数sum_two_vals
。此函数为输入a
和b
提取两个值,并返回它们的总和。
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。希望这会有所帮助。