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

2024-12-30 08:42:00
admin
原创
95
摘要:问题描述:当我尝试此代码时: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"
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用