python print end =''

发布于 2021-02-02 23:12:40

我有这个需要运行的python脚本 gdal_retile.py

但是我在这条线上有一个例外:

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

end=''是无效的语法。我很好奇为什么以及作者可能打算做什么。

如果你还没猜到,我是python的新手。

我认为问题的根本原因是这些导入失败,因此必须包含此导入 from __future__ import

print_function

try: 
   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 *
关注者
0
被浏览
72
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你确定使用的是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中不起作用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看