为了账号安全,请及时绑定邮箱和手机立即绑定

python print end =''

python print end =''

拉丁的传说 2019-07-30 14:43:55
python print end =''我有这个python脚本,我需要运行 gdal_retile.py但我在这一行得到一个例外:if Verbose:   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')将end=''是无效的语法。我很好奇为什么,以及作者可能打算做什么。如果你还没有猜到,我是python的新手。我认为问题的根本原因是这些导入失败,因此必须包含此导入 from __future__ import print_functiontry:    from osgeo import gdal   from osgeo import ogr   from osgeo import osr   from osgeo.gdalconst import *except:   import gdal   import ogr   import osr   from gdalconst import *
查看完整描述

3 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

你确定你使用的是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的旧版本(即在引入该功能之前创建)中不起作用。


查看完整回答
反对 回复 2019-07-30
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

这个怎么样:

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

这允许您使用Python 3.0样式print函数,而无需手动编辑所有出现的print:)


查看完整回答
反对 回复 2019-07-30
?
MYYA

TA贡献1868条经验 获得超4个赞

在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 


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 1211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信