我正在尝试使用python book从发明游戏中获取hangman代码,我在'end'时遇到了无效的语法错误。
+---------+----------+--------------+----------------+
| user_id | username | date_created | shifts |
+---------+----------+--------------+----------------+
| 1 | user1 | 2000-03-16 | shift1,shift2 |
| 2 | user2 | 2001-05-14 | (NULL) |
| 3 | user3 | 2002-01-13 | shift1 |
| 4 | user4 | 2003-03-14 | (NULL) |
+---------+----------+--------------+----------------+
指向=符号的箭头。 我搜索并发现当我在python2.7上工作时,我应该使用 future import print_function,我这样做并且错误仍然存在。
我的代码:
Here is the traceback:
Line 82: print ('Missed letters: ', end = ' ')
Syntax error: Invalid syntax
连连呢? 谢谢!
答案 0 :(得分:1)
有一个错字:
from __future_ import print_function
^-- single underscore
__future_
应替换为__future__
(两个尾随下划线)
并且import语句应位于文件的第一行(在任何其他import
之前)
from __future__ import print_function # <-- this should be the first
import random
除此之外,print
语句的所有用法都应替换为print
函数:
声明如下:
print "please enter a single character."
应替换为:
print("please enter a single character.")
答案 1 :(得分:1)
print()
是print function中的Python 2.7。由于括号是print内置语句的可选括号,print
语句可以类似于print()
函数调用。您的print()
函数调用似乎遵循正确的语法,这告诉我import
可能存在问题(此类问题也可能表示版本问题)。
您试图使用以下函数导入该函数:
from __future_ import print_function
但你错过了一个&#39; _&#39;。它应该是
from __future__ import print_function
我通过导入和其他打印在命令行中重现了这个错误。
bash-4.1$ python
Python 2.7.8 (default, Jul 25 2014, 14:04:36)
[GCC 4.8.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print (letter , end=' ')
File "<stdin>", line 1
print (letter , end=' ')
^
SyntaxError: invalid syntax
>>> print ('a', end=' ')
File "<stdin>", line 1
print ('a', end=' ')
^
SyntaxError: invalid syntax
>>> print('a', end=' ')
File "<stdin>", line 1
print('a', end=' ')
^
SyntaxError: invalid syntax
>>> from __future__ import print_function
>>> print('a', end=' ')
a >>>
答案 2 :(得分:1)
首先,您似乎是从
导入__future_
你应该从
导入__future__
(注意最后一个下划线)
第二,这将使用实际打印功能替换普通打印,因此不是
print "your text here"
应该是
print("your text here")
gameisDone并不总是初始化。
后添加gameisDone = falseif foundAllLetters:
print "Yes! the secret word is " + secretWord + "! You win!"
gameisDone = True
else:
raw_input不是一个字符串。它是一个功能。调用它来获取字符串而不是获取函数。像这里:
return raw_input.lower().startswith('y')
应该是
return raw_input().lower().startswith('y')
您还需要随机导入。
我使用修复程序运行代码并且它有效。