我正在尝试使用字典和函数执行简单的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:
行有语法错误。
答案 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,对于显示的代码是不必要的(也许它正在进行中?)。