2013-06-26 2 views
0

몇 루프에서 줄의 내용을 인쇄하려고합니다. 각 루프가 완료된 후 빈 줄을 추가하는 \n을 사용하지 않고 줄을 인쇄하는 방법을 찾고 싶습니다.파이썬에서 이상하게 작동하는 인쇄 된 줄

 http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#pos n 
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#pos a 
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#pos v 
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#pos v 
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#pos v 

     http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#source_target 0000 
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#source_target 0401 
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#source_target 0302 
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#source_target 0203 
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#source_target 0101 

그리고 난이처럼 싶습니다 : 내가이를 인쇄 할 때 이런 것입니다

def compose_line6(self, pointers, pointers_synset_type):  
    self.line6 = '' 
    for A, B in zip(pointers, pointers_synset_type): 
     self.line6 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#pos '+B+'\n' 
    return self.line6 

def compose_line7(self, pointers, pointer_source_target): 
    self.line7 = '' 
    for A, B in zip(pointers, pointer_source_target): 
     self.line7 += 'http://www.example.org/lexicon#'+A+' http://www.monnetproject.eu/lemon#source_target '+B+'\n' 
    return self.line7 

def compose_contents(self, line1, line2, line3, line4, line5, line6, line7): 
    self.contents = '''\ 
    '''+line1+''' 
    '''+line2+''' 
    '''+line3+''' 
    '''+line4+''' 
    '''+line5+''' 
    '''+line6+''' 
    '''+line7+'''''' 
    return self.contents 

def print_lines(self, contents): 
    print (contents) 

:

http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#pos n 
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#pos a 
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#pos v 
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#pos v 
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#pos v  
http://www.example.org/lexicon#13796604 http://www.monnetproject.eu/lemon#source_target 0000 
http://www.example.org/lexicon#00603894 http://www.monnetproject.eu/lemon#source_target 0401 
http://www.example.org/lexicon#00753137 http://www.monnetproject.eu/lemon#source_target 0302 
http://www.example.org/lexicon#01527311 http://www.monnetproject.eu/lemon#source_target 0203 
http://www.example.org/lexicon#02361703 http://www.monnetproject.eu/lemon#source_target 0101 

도움말 다음과 같이 내가 가지고있는 코드의 샘플입니다 위대한 감사 것입니다

답변

2

당신은 당신의 따옴표를 종료해야합니다

'''\ 
    '''+line1+''' 
    '''+line2+''' 
    '''+line3+''' 
    '''+line4+''' 
    '''+line5+''' 
    '''+line6+''' 
    '''+line7+'''''' 

당신은 첫째 줄 바꿈을 탈출,하지만 여전히 line1 뒤에 4 개 공간을 추가하고있다. 이 시도 :

print("\n".join([line1, line2, line3, line4, line5, line 6, line7]))

+0

각 방법 사이에 줄 바꿈이 여전히 있습니까? 이 문제를 해결할 방법이 있습니까? – Johnnerz

+0

'compose_line' 함수에 개행 문자를 추가했기 때문입니다. ''.join (...)'또는 (바람직하게) 자신의 함수에서 생성하고있는 개행만을 제거하십시오. – dav

+0

좀 더 설명 할 수 있을까요? 나는'self.line7 = '''을 제거했지만 아직 공간을 남겨두고있다. – Johnnerz

1

파이썬 2.x에서 그것은 print "Text", - 아무것도 쉼표 뒤에있을 것입니다.

파이썬 3.x에서는 print("Text", end="")이 될 것입니다 - print() 함수에 대한 특별한 인수입니다. 당신이 줄 바꿈을 추가하기 전에

+0

그리고'__future__ import print_function'의 경우 버전 호환성이 중요 할 경우를 대비하여 2.x에서 3.x 형식을 사용할 수 있습니다. – Marcin

2

사용 :

def compose_contents(self, line1, line2, line3, line4, line5, line6, line7): 
    self.contents = '\n'.join([line1, line2, line3, line4, line5, line6, line7]) 
    return self.contents 

과 :

print contents, 

참고 쉼표를 끝!

관련 문제