使用'end'参数Python无效语法错误

时间:2016-04-05 02:42:41

标签: python python-2.7

我正在尝试使用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

连连呢?   谢谢!

3 个答案:

答案 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 = false
if 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')

您还需要随机导入。

我使用修复程序运行代码并且它有效。