0

我最近开始学习如何使用网站 Codecademy.com 使用 Python 编程,它使用 Python 2.7,虽然我在计算机上安装了 2.7.3 和 3.3.2,但我正在使用 Python 3 创建程序。

该程序本身是一个简单的小概念证明,来自网站上的课程,一个 Pig 拉丁语翻译器。我决定更进一步,开发它以处理整个文本段落,包括空格和其他此类实例,而不是程序最初所做的只有一个单词。

我目前的问题是,无论我通过什么程序,程序都只输出相同的东西,我不知道为什么。

它只输出“这还没有完成”。代码的打印,这是针对多个单词的实例,显然还没有完成。

这是代码:

pyg = 'ay'

raw_input = input('Enter your text here.  Numbers are not allowed. ')

if len(raw_input) > 0 and  raw_input.replace(' ', '').isalpha:
lower_input = raw_input.lower()

if lower_input[0] == " ":
    lower_input = lower_input[1:]

word_spacing = lower_input.replace(' ', '/')

if word_spacing.find('/'):
    print('This isn\'t finished yet.')

else:
    first_letter = raw_input[0]

    if first_letter == 'a' or 'e' or 'i' or 'o' or 'u':
        output = raw_input[1].upper() + raw_input[2:] + first_letter + pyg
        print(output)

    else:
        output = raw_input[0].upper() + raw_input[1:] + pyg
        print(output)

else:
print('The text you entered is invalid.')

end = input('Press Enter to exit')

如果有人可以阅读代码并帮助我调试它,那将非常有帮助。看了好久还是没看懂。

4

2 回答 2

2

raw_input.replace(' ', '').isalpha

您没有调用该函数isalpha,仅引用了它。添加()


if first_letter == 'a' or 'e' or 'i' or 'o' or 'u':

是相同的:

if (first_letter == 'a') or ('e') or ('i') or ('o') or ('u'):

这将始终为 True,因为非空字符串被视为 True。

将其更改为:

if first_letter in 'aeiou':


你也忘了print('The text you entered is invalid.')在底部缩进。

于 2013-09-25T00:33:44.510 回答
0

最后的 else 块缺少匹配的 if。省略最后一个“else:”,它可能会起作用。

于 2013-09-25T00:41:10.707 回答