Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用关键字参数end=';获取用于打印的SyntaxError';_Python - Fatal编程技术网

Python 使用关键字参数end=';获取用于打印的SyntaxError';

Python 使用关键字参数end=';获取用于打印的SyntaxError';,python,Python,我有一个python脚本,需要在其中运行gdal\u retile.py, 但我在这一行有个例外: if Verbose: print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ') end=''的语法无效。我很好奇为什么,以及作者可能想做什么 如果你还没猜到的话,我是python新手 我认为问题的根本原因是这些进口产品失败了 因此,必须包含此导入from\uuuuuu

我有一个python脚本,需要在其中运行
gdal\u retile.py
, 但我在这一行有个例外:

if Verbose:
   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')
end=''
的语法无效。我很好奇为什么,以及作者可能想做什么

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


我认为问题的根本原因是这些进口产品失败了 因此,必须包含此导入
from\uuuuuuuuuuuuuuuuuuuuuuuuuuuu导入打印功能

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 *
这个怎么样:

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

这使您可以使用Python 3.0风格的
print
函数,而无需手动编辑所有出现的
print
:)

我想作者的意思可能是:

if Verbose:
   print("Building internam Index for %d tile(s) ..." % len(inputTiles), end=' ')
他在
打印(
)后缺少一个初始报价

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

print "Building internam Index for %d tile(s) ..." % len(inputTiles)
end
参数意味着该行在结尾处获得
'
,而不是换行符。在早期版本的Python中,等价物是:

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

(谢谢Ignacio)。

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

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

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

首先,您在开头缺少一个引号,但这可能是复制/粘贴错误

在Python3.x中,
end='
部分将在显示的字符串后放置空格,而不是换行符。要在Python2.x中执行相同的操作,您需要在末尾添加逗号:

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

您确定使用的是Python3.x吗?该语法在Python2.x中不可用,因为
print
仍然是一条语句

print("foo" % bar, end=" ")
在Python中,2.x与

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

i、 e.作为以元组作为参数的打印调用

这显然是糟糕的语法(文本不接受关键字参数)。在Python3.x中,print是一个实际函数,所以它也接受关键字参数

Python2.x中
end=”“
的正确用法是:

print "foo" % bar,
(请注意最后一个逗号,这将使其以空格而不是换行符结尾)

如果你想对输出有更多的控制,请考虑直接使用<代码> sys .STDUT/<代码>。这不会对输出产生任何特殊的魔法。

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

from __future__ import print_function
这同样适用于
unicode\u文本
和其他一些好东西(例如
with\u statement
)。 如果您使用的是python 3.x,但仍然出现错误,那么这可能是一个原因:

在同一个驱动器上安装了多个python版本 在PythonShell窗口中按下f5按钮(版本<3.x) 突然出现


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

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,即python2.7和python3。 以下是我的代码:

#!usr/bin/python

f = open('lines.txt')
for line in f.readlines():
        print(line,end ='')
当我通过命令
pythonlines.py
运行它时,我得到了以下错误

#!usr/bin/python

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

当我通过命令
python3 lines.py
运行它时,我成功地执行了我们需要在使用
end=''
之前导入一个头,因为它不包含在python的正常运行时中

from __future__ import print_function

它现在应该可以很好地工作了,这只是一个版本而已。因为Python3.x打印实际上是一个函数,所以它现在像任何普通函数一样接受参数

end=''
只是说您希望在语句末尾后面有一个空格,而不是一个新行字符。在Python2.x中,您必须在print语句的末尾放一个逗号

print("foo" % bar, end=" ")
例如,在Python 3.x环境中:

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

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

在Python2.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 

对于Python2.7,我也有同样的问题
只需使用“from\uuuuuu future\uuuuuuu import print\u function”而不加引号即可解决此问题。这确保了Python 2.6和更高版本的Python 2.x可以使用Python 3.x print function。

如果您正在使用Python 2.7,请尝试使用此功能:

from __future__ import print_function
与Python 2和Python 3兼容:

sys.stdout.write('mytext')
仅与Python 2兼容

print 'mytext',
仅与Python 3兼容

print('mytext', end='')

基本上,它发生在python2.7中 以下是我的工作代码:

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

很好的一点!
print(“foo”%bar,end=“”)
在Python2.6中的
end=“”
下触发语法错误,就像缺少的引号一样:)如果您发布回溯以最好地诊断收到的异常,这真的很有帮助。明显的语法错误是缺少开头引号。如果修复了这个问题,Python 2中仍然会出现语法错误,如果没有
\uuuuu future\uuuuu
导入,它就没有打印功能。除我之外,不是
类名的变量应该以小写字母开头。wrt/@Mike,请参阅以获取Python中变量命名和编码风格的完整指南。遵守这些指导原则是一个好主意,因为在Python中,您有权使用基本一致的库,因此即使在您使用其他人的代码时,也可以避免通常的猜测游戏(如PHP)。在将来请求帮助解决错误,尤其是语法错误时,您应该尽量提供您尝试运行的确切代码,而不必重新键入。@Mike-我通常不会再费心键入它,但是我无法这样做,因为代码在远程计算机上
  i=5
while(i):
    print i,
    i=i-1
Output:
5 4 3 2 1