我在Python中无法做到这一点?

时间:2013-09-15 21:20:06

标签: python

我在这个网站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(原始)> 0 :)但我还没弄清楚出了什么问题。

5 个答案:

答案 0 :(得分: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"

答案 1 :(得分:1)

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

答案 2 :(得分: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)

答案 3 :(得分: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)

答案 4 :(得分: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"