解析时Python意外的EOF:语法错误

时间:2016-02-15 04:54:11

标签: python

我正在尝试使用字典和函数执行简单的toto历史记录但是我有这个有趣的语法错误,当我尝试运行它时,它会在python shell上出现“解析时意外的EOF”。我重复一遍又一遍,但是我找不到错误。我使用输入来输入整数,因此我不认为问题可能在于输入或raw_input。请帮我 !下面是我的代码和python shell上的错误。

options()
choice = input ("Enter your choice: ")
print

while choice != -1:
    if choice == 1:
        print("Choice 1")
        for key in toto_book:
            print key + "\t" + "Day: " + toto_book[key][0] + '\t' + 'Winning         Numbers: ' + str(toto_book[key][1] + 'Additional Number: ' + toto_book[key][2]
    elif choice == 2:
        print("Choice 2")
        draw = raw_input("Enter draw date(dd/mm/yy): ")
        if draw in toto_book:
            print (draw + "\t" + "Day: " + toto_book[draw][0] + "\t" + "Winning Numbers: " + str(toto_book[draw][1]) + 'Additional Number: ' + toto_book[draw][2])            
        else:
            print draw + ' cannot be found.'

elif choice == 2:行有语法错误。

1 个答案:

答案 0 :(得分:0)

<强>更新

正如@ cricket_007所指出的,这个答案是基于使用Python 3的错误假设。实际上,正在使用Python 2,唯一严重的问题是对str的调用缺少右括号。

您正在使用Python 3,其中print是一个函数,而不是一个语句(就像在Python 2中一样)。

这是引起问题的一行:

    print key + "\t" + "Day: " + toto_book[key][0] + '\t' + 'Winning         Numbers: ' + str(toto_book[key][1] + 'Additional Number: ' + toto_book[key][2]

添加括号以使print成为函数调用,即print(...)

print(key + "\t" + "Day: " + toto_book[key][0] + '\t' + 'Winning         Numbers: ' + str(toto_book[key][1]) + 'Additional Number: ' + toto_book[key][2])

此外,对str()的调用缺少右括号。

第15行也有类似的问题。

其他问题:

  • input()返回一个字符串,而不是一个整数,因此if choice == 陈述永远不会成真。将choice转换为整数 在choice = int(choice)之后使用input(),或者使用字符串 if语句,例如if choice == '1'
  • while循环是infinte,对于显示的代码是不必要的(也许它正在进行中?)。