使用关键字参数 end=' ' 打印时出现 SyntaxError

2024-12-30 08:42:00
admin
原创
45
摘要:问题描述:当我尝试此代码时:if Verbose: print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ') 我收到一条SyntaxError声明,end=' '认为语法无效。为什么会...

问题描述:

当我尝试此代码时:

if Verbose:
   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')

我收到一条SyntaxError声明,end=' '认为语法无效。

为什么会发生这种情况?


请参阅“SyntaxError:在调用‘print’时缺少括号”在 Python 中是什么意思?以了解相反的问题。

请参阅为什么在 Python 2.7 中 print 中的括号是自愿的?以了解 Python 2 将其视为print语句的一般后果。


解决方案 1:

你确定你使用的是 Python 3.x 吗?该语法在 Python 2.x 中不可用,因为print它仍然是一个语句。

print("foo" % bar, end=" ")

在 Python 2.x 中等同于

print ("foo" % bar, end=" ")

或者

print "foo" % bar, end=" "

即以元组作为参数来调用打印。

这显然是错误的语法(文字不接受关键字参数)。在 Python 3.x 中print是一个实际的函数,因此它也接受关键字参数。

Python 2.x 中的正确用法end=" "是:

print "foo" % bar,

(请注意最后一个逗号,这使得该行以空格而不是换行符结束)

如果您想要更好地控制输出,请考虑sys.stdout直接使用。这不会对输出产生任何特殊的影响。

当然,在 Python 2.x 的较新版本中(2.5 应该有它,不确定 2.4 是否有),您可以使用该__future__模块在脚本文件中启用它:

from __future__ import print_function

unicode_literals和其他一些好东西(例如)也是如此with_statement。不过,这在 Python 2.x 的非常老的版本(即在引入该功能之前创建的版本)中不起作用。

解决方案 2:

这个怎么样:

#Only for use in Python 2.6.0a2 and later
from __future__ import print_function

这使您可以使用 Python 3.0 样式print函数,而不必手动编辑所有出现的print:)

解决方案 3:

在 Python 2.7 中,操作方法如下

mantra = 'Always look on the bright side of life'
for c in mantra: print c,

#output
A l w a y s   l o o k   o n   t h e   b r i g h t   s i d e   o f   l i f e

在 Python 3.x 中

myjob= 'hacker'
for c in myjob: print (c, end=' ')
#output 
h a c k e r 

解决方案 4:

首先,你开头缺少一个引文,但这可能是一个复制/粘贴错误。

在 Python 3.x 中,该end=' '部分将在显示的字符串后放置一个空格,而不是换行符。要在 Python 2.x 中执行相同操作,请在末尾放置一个逗号:

print "Building internam Index for %d tile(s) ..." % len(inputTiles),

解决方案 5:

我认为他使用的是 Python 3.0 而你使用的是 Python 2.6。

解决方案 6:

这只是一个版本问题。从 Python 3.x 开始,print 实际上是一个函数,因此它现在像任何普通函数一样接受参数。

end=' '只是说您希望语句结束后有一个空格而不是换行符。在 Python 2.x 中,您必须通过在 print 语句末尾放置一个逗号来实现这一点。

例如,在 Python 3.x 环境中:

while i<5:
    print(i)
    i=i+1

将给出以下输出:

0
1
2
3
4

然而:

while i<5:
    print(i, end = ' ')
    i=i+1

将给出输出:

0 1 2 3 4

解决方案 7:

看起来您只是缺少开头的双引号。请尝试:

if Verbose:
   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')

解决方案 8:

Python 2 和 3兼容:

sys.stdout.write('mytext')

仅兼容Python 2

print 'mytext',

仅兼容Python 3

print('mytext', end='')

解决方案 9:

我想作者的意思可能是:

if Verbose:
   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')

之后他遗漏了最初的引言print(

请注意,从Python 3.0开始,print是一个函数而不是语句,如果你使用的是旧版本的 Python,则等效于:

print "Building internam Index for %d tile(s) ..." % len(inputTiles)

end参数表示行' '尾而不是换行符。在早期版本的 Python 中,等效的方法是:

print "Building internam Index for %d tile(s) ..." % len(inputTiles),

(感谢伊格纳西奥)。

解决方案 10:

使用 ::python3 filename.py

我遇到了这样的错误,这是因为我的驱动器上安装了两个版本的python,即python2.7和python3。以下是我的代码:

#!usr/bin/python

f = open('lines.txt')
for line in f.readlines():
        print(line,end ='')

当我通过命令运行它时python lines.py出现以下错误

#!usr/bin/python

f = open('lines.txt')
for line in f.readlines():
        print(line,end ='')

python3 lines.py当我通过成功执行的命令运行它时

解决方案 11:

对于 python 2.7,我遇到了同样的问题,只需使用“ from future import print_function ”而不使用引号即可解决此问题。这确保 Python 2.6 及更高版本的 Python 2.x 可以使用 Python 3.x 打印函数。

解决方案 12:

如果你使用的是python 2.7,请尝试这个:

from __future__ import print_function

解决方案 13:

基本上,它出现在 python2.7 中,这里是我的工作原理代码:

  i=5
while(i):
    print i,
    i=i-1
Output:
5 4 3 2 1

解决方案 14:

我曾经遇到过这个错误,是因为使用了版本 2.7.15,但 end='' 只适用于版本 3。

例子:

import array as arr
a=arr.array('i',[1,2,3,4])
for x in range(0,3):
    print ("%d" % a[x], end=' ')

输出:显示错误“语法无效”,因为使用版本 2.7

对于版本 2.7.15,请使用以下语法

import array as arr
a=arr.array('i',[1,2,3,4])
for x in range(0,3):
    print ("%d" % a[x]),

输出:1 2 3

解决方案 15:

甚至我今天也遇到了同样的错误。我经历了一件有趣的事情。如果你使用的是 python 3.x 并且仍然收到错误,则可能是以下原因:

您在同一驱动器上安装了多个 Python 版本。当您按下 F5 按钮时,会弹出 Python Shell 窗口(版本 < 3.x)

我今天遇到了同样的错误,并注意到了这一点。相信我,当我从正确的 shell 窗口(版本 3.x)执行我的代码时,我得到了令人满意的结果

解决方案 16:

我们需要在使用之前导入一个标题end='',因为它不包含在python的正常运行时间中。

from __future__ import print_function

现在它应该可以完美运行了

解决方案 17:

仅供我自己将来参考(我已经在不同时间来过这里两次),如果您检查后发现您使用的是 Python 3.x 或更高版本,并且收到错误提示“end=”语法不正确:请确保您确实在运行 Python 脚本,而不仅仅是尝试执行文件。我曾在一时冲动下这样做过,并认为有什么地方出了问题,但后来才发现我做的就是那样。

python "scriptName.py"

或者

python3 "scriptName.py"
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1019  
  项目管理专业人士(PMP)认证是全球公认的项目管理领域最高级别的认证之一。它不仅是对个人项目管理能力的认可,更是对团队管理能力的全面提升。PMP认证通过系统化的知识体系和实践经验,帮助管理者更好地应对复杂项目环境中的挑战。无论是项目经理还是团队成员,PMP认证都能为其提供科学的工具和方法,从而提升团队的整体效率与协作能...
项目管理资格证书   0  
  项目管理专业人士(PMP)认证是项目管理领域最具权威性的资格认证之一,越来越多的人希望通过PMP培训提升自己的职业竞争力。然而,在选择培训机构时,学员往往会面临一个关键问题:是选择小班制还是大班制的培训模式?这两种模式各有优缺点,适合不同类型的学员。本文将详细探讨小班制和大班制的特点,帮助你根据自身需求做出更明智的选择...
项目管理PMP   0  
  PMP(项目管理专业人士)认证是全球范围内最受认可的项目管理资格认证之一。然而,获得PMP认证只是第一步,维持这一认证的有效性同样重要。PMP认证的有效期为三年,持证人需要通过积累专业发展单元(PDU)并支付续证费用来维持认证的活性。续证费用虽然看似不高,但对于长期从事项目管理的专业人士来说,如何合理规划并节省续证成本...
PMP机构培训   0  
  职场竞争日益激烈,越来越多的专业人士意识到,拥有一个国际认可的项目管理资格认证是提升职业竞争力的关键。PMP(项目管理专业人士)认证作为全球最具权威的项目管理认证之一,已经成为许多企业和组织衡量项目管理能力的重要标准。通过参加PMP培训机构的系统学习,不仅可以帮助你掌握项目管理的核心知识和技能,还能为你的职业生涯开辟新...
PMP证书   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用