2

我一直在通过代码学院学习 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 没有缩进。我以为你必须缩进它,但是当我这样做时,它会给我一个错误。

4

6 回答 6

8

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

length = len(original)

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

还要记住,该len()函数永远不会返回负值。所以测试 iflength < 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是“否则如果”的缩写。

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

else:
    print "empty"

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

于 2013-09-06T17:10:59.227 回答
4

length < 0打算发表评论吗?您需要注释字符#

else: # length < 0
    print "empty"

反正是错的,应该是length <= 0

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

于 2013-09-06T17:09:52.097 回答
2
else: length < 0
print "empty"

应该

elif length == 0:
   print "empty"

Python 有重要的空白,缩进相同的东西在相同的范围内。

于 2013-09-06T17:08:09.183 回答
1

首先,它不是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它包含任何元素,则等于。

于 2013-09-06T17:13:54.083 回答
1

在 else 之后有一个声明。

else: length < 0
print "empty"

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

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"
于 2013-09-06T17:09:27.647 回答
0

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

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

于 2014-04-30T07:11:15.963 回答