【问题标题】:Issue with if-else statements [closed]if-else 语句的问题[关闭]
【发布时间】:2016-04-23 23:28:47
【问题描述】:

这是我输入的内容:

def greater_less_equal_5(answer):
    if 6 > 5:
        return 1
    elif  4 < 5:
        return -1
    else:
        return 0

print greater_less_equal_5(4)
print greater_less_equal_5(5)
print greater_less_equal_5(6)

并给了我这张纸条

糟糕,再试一次。看起来你的函数输出 1 而不是 -1 当答案为 3 时。确保填写了 if 和 elif 语句 正确!

这就是右上角显示的内容:

>1
>1
>1
>None

无论我如何更改数字和&gt;/&lt;,我什至尝试过==!=,它仍然输出1 1 1 None

我四处寻找任何可能的提示,发现其他人与我遇到了同样的问题,当我尝试他们的解决方案时,我得到了:

def greater_less_equal_5(answer):
    if > 5:
        return 1
    elif  < 5:
        return -1
    else:
        return 0

print greater_less_equal_5(4)
print greater_less_equal_5(5)
print greater_less_equal_5(6)

输出是:

File "python", line 2
    if > 5:
    ^
SyntaxError: invalid syntax

这个测试是否被操纵总是输出一个失败的结果来让我为专业人士付费并寻求他们的帮助?

为此给出的提示是:

确保 if 和 elif 语句以冒号结尾:

您的代码应该类似于:

if EXPRESSION:
    do something
elif OTHER EXPRESSION:
    do something
else:
    do something

我只是错过了一些非常基本的东西吗?

【问题讨论】:

  • 请编辑您的答案并使用代码标签。
  • 听起来您正在尝试解决在线平台上的在线挑战,在这种情况下,谨慎地提及所述问题的具体内容(参见XY problem)。
  • 你缺少一些基本的东西。您的函数永远不会引用它传递的名为 answer 的参数(很差)......所以它总是根据您硬编码到其中的数字做同样的事情。换句话说,6 因为总是大于5,所以它总是返回值1
  • 您应该查看The Python Tutorial,尤其是“The if Statement”和“Defining Functions”部分。虽然basic beginner questions are allowed 在 SO 上,但一种语言的官方教程是一个明显的资源,您应该在此处询问之前咨询。
  • 很菜鸟。几天前我才开始检查这个,当时我试图弄清楚如何制作一个 twitch 机器人,并认为这可能会很有趣。这是我在这里的第一篇文章,我对标签礼仪不是很熟悉。

标签: python testing


【解决方案1】:

您确实缺少一些基本的东西 - 即您的函数的输出根本不依赖于answer。不管你输入什么answer,因为6 &gt; 5总是True,它总是会返回那个 case的结果。

你需要的是

def greater_less_equal_5(answer):
    if answer > 5:
        return 1
    elif answer < 5:          
        return -1
    elif answer == 5:
        return 0

【讨论】:

  • 感谢大家的回复。实际上,我在发布此消息后的二十分钟内就想到了这一点。我在忘记输入答案时遇到问题,因此它会引用刚刚忘记删除帖子的表达式。
【解决方案2】:

您缺少表达式的“答案”变量,您将其传递给您的函数

def greater_less_equal_5(answer):
    if answer > 5:
        return 1
    elif  answer < 5:          
        return -1
    else:
        return 0

print greater_less_equal_5(4)
print greater_less_equal_5(5)
print greater_less_equal_5(6)

【讨论】: