【问题标题】:Using multiple arguments when defining a function without using if?在不使用 if 的情况下定义函数时使用多个参数?
【发布时间】:2018-02-11 22:43:21
【问题描述】:

这是我的指示https://cs1110.cs.virginia.edu/pa05-maydate.html

 def creepy(x, y):
        x = (x // 2)+7
        y = (y*2-13)
        return x > y

我应该编写一个具有一个功能的文件:令人毛骨悚然。毛骨悚然应该有两个论据,两个人的年龄。如果两人可以约会而不令人毛骨悚然,它应该返回 False,True。

X 和 Y 代表两个人约会的可接受年龄。 x = 你的一半年龄加上七岁 y = 两倍你的年龄减去十三

所有代码都必须在函数内。我知道我做错了,因为我习惯使用“Else/if”来完成这样的事情。

我应该如何定义我的函数的任何修复?

【问题讨论】:

  • 不需要if/else。当两个条件都是True时,该函数应该返回True:第一个第二个。使用逻辑运算符将此语句翻译成 python。
  • @DYZ 我意识到 if/else 对此没有必要。我正在尝试返回''如果 x 大于 y 则返回 True,否则返回 False'''。
  • 你就是这么做的。但这是一个错误的答案。

标签: python function boolean arguments


【解决方案1】:

我相信你误解了这个问题。您从来源中提到的两个条件从您的年龄开始,并提供了一个可接受的年龄下限和一个日期的可接受的年龄上限。有两个条件,因为对于每个输入年龄,都有两个答案,一个较低的,一个较高的。

但你的任务是取一对数字,其中第一个总是较小的数字,并说明较大的数字是否高于可接受的年龄上限。所以你只需要一个条件,而不是两个。

def creepy(x, y):
    return x < (y // 2) + 7

您的消息来源给出了可接受的答案:

How old are you? 17
You can date people between 15 and 21 years old
How old are you? 70
You can date people between 42 and 127

我们可以通过输入这些数字来测试函数creepy,如下所示:

>>> creepy(14,17)
True
>>> creepy(15,17)
False
>>> creepy(17,21)
False
>>> creepy(17,22)
True

这些结果与输入 17 匹配;输出 15-21。

>>> creepy(41,70)
True
>>> creepy(42,70)
False
>>> creepy(70,127)
False
>>> creepy(70,128)
True

这些结果与输入 70 匹配;输出 42-127。

如果您希望该函数在较老/较年轻的方向上处理年龄计算,则仍然不需要两个条件。你可以这样做:

def creepy(x, y):
    if x <= y:
        return x < (y // 2) + 7
    else:
        return creepy(y, x)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-16
    • 2010-10-18
    • 2018-10-16
    • 2017-10-06
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多