0

所以我是编码的初学者,不久前我开始学习 Python!最近我正在编写自己的代码。这是一个从英语到pyg latin的翻译项目(只是一种在单词中添加“ay”的虚构语言。现在这是我的代码:

original = raw_input('Name any english word?')       

if len(original) > 0 and original.isalpha():     #Testing if variable has characters and not numbers
    word = original.lower()
    first = word[0]
    if first == 'a'  or first == 'e' or first == 'i' or first == 'o' or first == 'u':
        new_word = word + pyg                    #Word translated to pyg latin
        print new_word
    else:
        new_word = word[1:] + word[0] + pyg
        print new_word
else:
    print "empty"                                #No word active

问题是我在第三行中不断收到 EOF 错误吗?有什么问题,什么是 EOF 错误?

4

1 回答 1

0

代码需要的不仅仅是一些缩进修复,但我会原谅的。这适用于我在 OSx 和 PC 上。

original = raw_input('Name any english word?\n')
PYG = 'ay'
VOWELS = 'aeiou'
if len(original) > 0 and original.isalpha():     #Testing if variable has characters and not numbers
  word = original.lower()
  first = word[0]
  if first in VOWELS:
    new_word = ''.join([word, PYG])                    #Word translated to pyg latin
    print new_word
  else:
    new_word = ''.join([word[1:], word[0], PYG])
    print new_word
else:
  print 'Empty'

使用inand''.join()更简单,更 Pythonic。'\n'只是在输入查询之前产生一个换行符。

至于你的奇怪错误......我希望你的 Mac 只是因为代码的各种问题之一而抛出一些东西。EOF 的意思是“文件结束”。raw_input可以抛出错误,但您所做的任何调用都不应该正常产生它。或者,这可能是因为您无意中使用了 Mac 随附的旧版 python,并且无法以相同的方式容纳其中一些调用。

总之,不重要。代码现在应该可以工作了。

于 2013-03-26T07:27:37.473 回答