programing

키워드 인수 end= ' ' '로 인쇄할 때 구문 오류가 발생합니다.

codeshow 2023. 9. 24. 13:13
반응형

키워드 인수 end= ' ' '로 인쇄할 때 구문 오류가 발생합니다.

를 해야 하는 .gdal_retile.py

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

end=' '는 잘못된 구문입니다.그 이유와 저자가 의도한 바가 무엇인지 궁금합니다.

아직 짐작하지 못하셨다면 저는 파이썬을 처음 접합니다.


은 이 하고 있기 이 합니다를 합니다.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 *

Python 3.x를 사용하는 것이 확실합니까? 2는 Python 2.x다이기 할 수 print여전히 진술입니다.

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

Python 2.x는 다음과 같습니다.

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

아니면

print "foo" % bar, end=" "

예를 들어 튜플을 인수로 인쇄하라는 요청입니다.

그것은 분명히 나쁜 구문입니다. (문학은 키워드 인수를 받지 않습니다.) Python 3.print는 실제 함수이므로 키워드 인수도 필요합니다.

Python 2.x 의.end=" "다음과 같습니다.

print "foo" % bar,

(마지막 쉼표를 참고하면 줄 바꿈이 아닌 공백으로 줄을 끝냅니다.)

을 더 하려면 합니다를 하는 것이 sys.stdout직접적으로. 이 걸리지 이렇게 하면 출력에 특별한 마법이 걸리지 않습니다.

2 2 2.x(2., 2.에) 에서는를 할 수 .__future__스크립트 파일에서 활성화하는 모듈:

from __future__ import print_function

입니다도 입니다.unicode_literals 다른 들()with_statement를 들어,).그러나 이것은 파이썬 2.x의 (기능이 도입되기 전에 만들어진) 실제 오래된 버전에서는 작동하지 않습니다.

이거 어때:

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

를 통해 3.0 를 할 수 .print모든합니다 을 수동으로 합니다.print:)

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 

우선 처음에 인용문이 누락되었지만 아마 복사/붙여넣기 오류일 것입니다.

3.xend=' 'part합니다 합니다.Python 2.x에서도 같은 작업을 하려면 끝에 쉼표를 넣어야 합니다.

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

그는 파이썬 3.0을 사용하고 있고 당신은 파이썬 2.6을 사용하고 있는 것 같습니다.

이건 그냥 버전일 뿐입니다.Python 3.x 이후로 인쇄물은 실제로 함수이기 때문에 이제 일반 함수처럼 인수를 사용합니다.

end=' '문장의 끝 뒤에 새 줄 문자 대신 공백을 원한다는 의미입니다.Python 2.x에서는 인쇄문 끝에 쉼표를 붙여 이 작업을 수행해야 합니다.

예를 들어, 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

첫 번째 인용구를 놓치신 것 같네요.시도:

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

Python 2 3과 모두 호환 가능:

sys.stdout.write('mytext')

Python 2와만 호환 가능

print 'mytext',

Python 3에서만 호환 가능

print('mytext', end='')

저자의 뜻은 아마 다음과 같습니다.

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

print(.

참고로 파이썬 3.0을 기준으로,print 이와 동등한 이며,다입니다.

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

end합니다가 합니다.' '새로운 대사의 캐릭터보다는 마지막에.이전 버전의 파이썬에서는 다음과 같습니다.

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

(고맙습니다 이그나시오)

사용 ::

제 드라이브에 python2.7과 python3 두 가지 버전의 python이 설치되어 있어서 그런 오류가 있었습니다. 다음은 제 코드였습니다.

#!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으로 실행했습니다.

python 2.7의 경우 동일한 문제가 있었습니다. 이 문제를 해결하기 위해 인용문 없이 "from __future__import print_function"을 사용하십시오.이를 통해 Python 2.6 이상의 Python 2.x는 Python 3.x 인쇄 기능을 사용할 수 있습니다.

python 2.7로 작업하는 경우 다음을 사용해 보십시오.

from __future__ import print_function

기본적으로 python 2.7에서 발생합니다. 작동 방식에 대한 제 코드는 다음과 같습니다.

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

버전 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을 사용하는 오류 "Invalid Syntax" 표시

버전 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

저조차도 오늘 같은 오류를 겪고 있었습니다.그리고 재미있는 일을 경험했습니다.python 3.x를 사용하고 있지만 여전히 오류가 발생하는 경우 다음과 같은 이유가 있을 수 있습니다.

동일한 드라이브에 여러 개의 python 버전이 설치되어 있습니다.그리고 f5 버튼을 누르면 파이썬 셸 창(ver. < 3.x)이 뜹니다.

저는 오늘도 같은 오류를 겪고 있었는데, 그것을 알아차렸습니다.저를 믿으세요. 적절한 셸 창(버전 3.x)에서 코드를 실행하면 만족스러운 결과가 나왔습니다.

를 .end=''입니다.

from __future__ import print_function

그것은 지금 완벽하게 작동할 것입니다.

나중에 참고로 (이미 다른 시간에 두 번 왔음), 만약 당신이 확인하고 당신이 python 3.x 또는 그 이후에 있음이 분명한데 'end=' 구문이 틀리다는 오류가 발생하는 것입니다. 파일을 실행하려고만 하는 것이 아니라 python 스크립트를 실제로 실행하고 있는지 확인하십시오.저는 순간적으로 이 일을 해보았는데 뭔가 몹시 잘못되었다고 생각하고 있다가 제가 바로 그 일을 하고 있다는 것을 알게 되었습니다.

python "scriptName.py"

아니면

python3 "scriptName.py"

언급URL : https://stackoverflow.com/questions/2456148/getting-syntaxerror-for-print-with-keyword-argument-end

반응형