【问题标题】:python help! If/else statement蟒蛇救命! if/else 语句
【发布时间】:2013-09-06 17:05:49
【问题描述】:

我一直在通过代码学院学习 python。它要求我创建一个打印用户输入的 if else 语句,但如果没有输入打印“空”。我确实通过了教程,但是当有用户输入时,它会同时打印用户输入和“空”。

这是我的代码:

print "Welcome to the English to Pig Latin translator!"

original = raw_input("what is your name?")
length = len("original")

if length > 0:
    print original

else: length < 0
print "empty"

请注意,else 下的 print 没有缩进。我以为你必须缩进它,但是当我这样做时,它会给我一个错误。

【问题讨论】:

  • 在 else 之后失去条件。
  • 甚至都不正确,应该是

标签: python if-statement


【解决方案1】:

您的代码似乎有几个问题。首先,我认为您应该将length 的分配更改为:

length = len(original)

这样您就可以得到绑定到名称original 的字符串的正确长度。如果您使用len("original"),您会将字符串“original”传递给len() 函数,它只会计算该字符串中的字符。无论您的程序的用户输入什么,您的长度将始终为 8,因为这是字符串 "original" 中的字符数

还请记住,len() 函数永远不会返回负值。所以测试length &lt; 0 是否没有意义。您可能想测试它是否等于 0。似乎您正在尝试使用 elif 语句。

试试:

print "Welcome to the English to Pig Latin translator!"

original = raw_input("what is your name?")
length = len(original)

if length > 0:
    print original

elif length == 0:
    print "empty"

elif 语句让您可以像if 语句一样测试条件。 elif 是“else if”的缩写。

此外,正如@chepner 在 cmets 中指出的那样,根本不需要测试第二个条件。您可以轻松地使用:

else:
    print "empty"

else 语法后面没有任何条件。如果其他条件评估为 False,它会自动进入缩进的代码块。

【讨论】:

  • 如果长度不大于零,且不能小于零,则剩下的唯一选项是0。无需将else替换为elif length == 0
  • 我知道,我只是想尽可能地遵循他的原始逻辑。
  • @TrentBurkenpas 那么你必须用复选标记奖励某人,否则你以后不会得到太多帮助!
【解决方案2】:

length &lt; 0 是否打算成为评论?您需要评论字符#

else: # length < 0
    print "empty"

反正是错的,应该是length &lt;= 0

如果没有注释字符,它将被解释为用作else 子句的语句。它没有产生错误,因为 length &lt; 0 只是生成了一个您没有做任何事情的布尔结果,但它阻止了您将另一个语句作为 else 的一部分。

【讨论】:

    【解决方案3】:
    else: length < 0
    print "empty"
    

    应该是

    elif length == 0:
       print "empty"
    

    Python 有很多空格,缩进相同的东西在同一个范围内。

    【讨论】:

    • length 永远不会小于 0; else 就够了。
    【解决方案4】:

    首先,不是len("original"),而是len(original)。如果使用引号,则将其设为常量值“original”,而不是名为 original 的变量。

    其次,你应该使用这个而不是检查字符串的长度

    if original:
        # Type here what happens if the string is not empty
    else:
        # Here what happens if the string is empty
    

    根据 Python 标准,任何集合(包括字符串)都等于 false,如果它是空的(也就是不包含元素),如果它包含任何元素,则等于 true

    【讨论】:

      【解决方案5】:

      else 后面有一个语句。

      else: length < 0
      print "empty"
      

      也许您正在寻找一个(如果之前的if 失败,elif 是在if 之后检查另一个条件的另一种方法。)

      elif length <= 0:
      

      或者只是一个普通的

      else:
         print "empty"
      

      它永远不会超过零,你可以有一个== 条件为零,它会起作用。

      elif length == 0:
      

      这可能是无需检查其他条件的最佳方式。

      if length > 0:
         print original
      else: 
         print "empty"
      

      也只是一个旁注length = len("original")

      原件周围不应该有引号,因为它是一个变量:)。您只会得到字符串“原始”而不是变量内部的实际内容。

      最终结果..

      print "Welcome to the English to Pig Latin translator!"
      
      original = raw_input("what is your name?")
      length = len(original)
      
      if length > 0:
          print original
      else: 
          print "empty"
      

      【讨论】:

        【解决方案6】:

        要检查列表中是否有项目,只需执行以下操作:

        if List_name:
            {code here}
            ...
        

        因此,您的代码应该非常简单:

        print "Welcome to the English to Pig Latin translator!"
        original = raw_input("what is your name?")
        if original:
            print original
        else:
            print "Empty"
        

        就这么简单:D

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-09
          • 1970-01-01
          • 2017-02-05
          • 2015-07-06
          • 2012-08-05
          相关资源
          最近更新 更多