0

我在这个网站 www.codacademy.com 上学习 Python,我在第 12 部分的第 4 部分中坚持练习 PygLatin。

“编写一个 if 语句来检查字符串是否为空。

如果字符串不为空,则打印用户的单词。否则(else),如果字符串为空,则打印“empty”。确保彻底测试您的代码。您需要确保多次运行它并测试空字符串和带有字符的字符串。当你确信你的代码可以工作时,继续下一个练习。”

如果他这样做,我必须打印用户的输入词,如果没有,则打印“空”。

original = raw_input("Welcome to the English to Pig Latin translator! Type in the word you wish to use.")

    if len(original) > 0:
        return raw_input
    else:
        return "empty"

print original

但它不起作用,我需要帮助。我究竟做错了什么?该错误声称它在第 2 行(如果 len(original) > 0:),但我还没有弄清楚出了什么问题。

4

5 回答 5

3

错误的缩进是主要问题。此外,您有return语句但没有函数。另外,您可以简化检查是否original为空:

original = raw_input("Welcome to the English to Pig Latin translator! Type in the word you wish to use.")

if original:
    print original
else:
    print "empty"

或者,在一行中:

print original if original else "empty"

或者:

print original or "empty"
于 2013-09-15T21:22:47.413 回答
1

你不能在 Python 中任意缩进。以语句开头的四行if比第一条语句缩进一级:这是不允许的。您只能在引入新块的语句后缩进,就像在ifand之后所做的那样else。将这四行带回一个级别,以便它们从左侧开始。

于 2013-09-15T21:22:15.917 回答
1

您有两个主要问题:缩进和没有函数的返回。

如果你想使用一个函数,你可以定义一个接收字符串参数的函数,检查它是否为空,然后返回相应的字符串。

例如:

def checkstring(string):
    if len(string) > 0:
        return string
    else:
        return "empty"

original = "Welcome to the English to Pig Latin translator! Type in the word you wish to use."
print checkstring(original)
于 2013-09-15T21:38:57.130 回答
0

我从“Quine”得到了代码,但我编辑了更多,所以你可以实际输入。如果你问我这个练习的目的,效果会更好:

print "Welcome to the English to Pig Latin translator!"
def checkstring(original):
    if len(original) > 0:
        return original
    else:
        return "empty"
original = raw_input("What is your name?")
print checkstring(original)
于 2013-12-17T21:53:47.477 回答
0
print 'Welcome to the Pig Latin Translator!'

# Start coding here!
raw_input ("What is your name")
variable_name = raw_input ()
original = raw_input()
if len (original) > 0:
    print "the user's word"
else:
    print "empty"
于 2014-09-04T16:17:42.077 回答