【问题标题】:If and Else help; pythonIf and Else 有帮助; Python
【发布时间】:2017-10-04 18:04:34
【问题描述】:

我是编程新手,我学习了基本命令,现在我尝试创建类似测验的东西,所以这是我的代码,让我头疼...

 prvo =input("How much is 5+5? ")
if (prvo)==10:
    print("Correct!")
else:
    print ("Sorry, but the answer isn't correct!")
    sys.exit()

当我输入 10 时,它说: “对不起,答案不正确!”,和其他号码一样,请帮忙。你能解释一下它有什么问题吗,因为我真的很想学习:)

【问题讨论】:

  • if provo == '10': 因为您将provo(字符串)与'10' 字符串进行比较。如果您尝试10 == 10,那将是正确的,但执行'10' == 10 将是错误的,因为它们具有不同的数据types
  • 将prvo转换为int。应该是prvo = int(input("How much is 5+5? "))
  • @AndMar 如果输入为moo,将引发异常。
  • @Torxed,是的,但程序需要 int
  • 您的代码会在此之前引发异常。缩进级别不匹配。在python中匹配缩进是强制性的

标签: python if-statement input


【解决方案1】:

您可以尝试if prvo == str(10): 或如上所述使用prvo = int(input("How much is 5 + 5? "))

原因是您当前正尝试比较两种不同的数据类型。这不起作用,因此您需要确保要比较的数据类型是同一类型。

【讨论】:

    【解决方案2】:

    input 函数将字符串作为输入,因此input 的返回值应转换为int 类型并进行比较。代码中的第一行应该是

    prvo = int(input("How much is 5+5? "))

    【讨论】:

      【解决方案3】:

      输入总是返回一个字符串。

      尝试将 10 转换为字符串,然后再将其与输入进行比较:

      prvo = input("How much is 5+5? ")
      if prvo == str(10):
          print("Correct!")
      else:
          print ("Sorry, but the answer isn't correct!")
      

      【讨论】:

        【解决方案4】:

        您将整数与字符串进行比较(默认情况下 input() 接受字符串)。

        您可以使用 type() 轻松检查:

        prvo = input("How much is 5+5? ")
        print(type(prvo))
        

        这将返回:

        <class 'str'>
        

        str 表示字符串。

        为了简单起见,我只需将 10 放在引号中以使其成为字符串。此外,当您开始 if 语句时,您不需要将 prvo 放在括号中。

        所以是这样的:

        import sys
        
        prvo = input("How much is 5+5? ")
        
        if prvo == "10":
            print("Correct!")
        else:
            print ("Sorry, but the answer isn't correct!")
            sys.exit()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 2010-10-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多