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

2024-12-30 08:42:00
admin
原创
44
摘要:问题描述:当我尝试此代码时: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"
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1008  
  在项目管理中,变更是一个不可避免的现象。无论是客户需求的调整、市场环境的变化,还是技术方案的更新,都可能引发项目的变更。如果处理不当,这些变更可能会导致项目延期、成本超支,甚至项目失败。因此,如何有效地应对项目变更,成为项目管理中的核心挑战之一。IPD(集成产品开发)作为一种高效的项目管理方法,其流程图不仅能够帮助团队...
IPD流程中的charter   0  
  IPD(Integrated Product Development,集成产品开发)是华为在长期实践中总结出的一套高效产品开发管理体系。它不仅帮助华为在全球市场中脱颖而出,也成为许多企业提升产品开发效率的参考标杆。IPD的核心在于通过跨部门协作、流程优化和资源整合,实现从需求分析到产品交付的全生命周期管理。通过实施IP...
IPD开发流程管理   0  
  华为IPD(集成产品开发)流程是一种以客户需求为导向、跨部门协同的高效项目管理方法。它通过系统化的流程设计和严格的阶段控制,确保项目从概念到交付的每个环节都能高效运作。IPD流程的核心在于打破传统职能部门的壁垒,将产品开发、市场、销售、供应链等关键环节整合到一个统一的框架中,从而实现资源的优化配置和信息的无缝流动。这种...
IPD流程中TR   0  
  在项目管理的实践中,CDCP(Certified Data Center Professional)认证评审是一个至关重要的环节。通过这一评审,项目团队不仅能够验证其数据中心设计和运营的合规性,还能提升整体管理水平。为了确保评审的顺利进行,准备一系列关键文档是必不可少的。这些文档不仅是评审的依据,也是项目团队与评审专家...
华为IPD是什么   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用