2016-10-20 4 views
0

에 공백을 제거 그래서,이 코드가 있습니다파이썬은 출력

print("%d" % a, end=(" ")) 

그것은 작동을하지만, 출력에, 마지막 숫자 뒤에 공백이있다. 마지막 공백을 제거해야합니다. 내 출력을 공백으로 구분하여 같은 줄에 표시해야합니다. 마지막 값 다음에 공백이 없어야합니다.

다음은 예입니다 : (n은 입력, 그래서 N = 5 가정) 내가 .strip 시도했습니다

0 1 1 2 3 

, .join,하지만 그들 중 누구도 일했다. 올바른 결과물을 얻으려면 무엇을해야합니까? 이 질문이 너무 간단하다면 미안 하오. 저는 파이썬으로 새로 왔습니다.

편집 : EDIT2 :

a, b, i = 0, 1, 0 
n=int(input()) 
for j in range(0, n): 
    while i < n: 
     print("%d" % a) 
     a, b = b, a + b 
     i += 1 
+2

을 'a'리스트입니까? 'a'에 대한 입력은 무엇입니까? 찾고자하는 것을 이해하기 위해 질문을 편집하고 입력에 대한 추가 정보를 추가하십시오. – estebanpdl

+1

'end = ("")'무엇을 생각합니까? – njzk2

+0

업데이트 된 답변보기 또한, 귀하가하려는 일을 분명히하기 위해 귀하의 질문에 모든 관련 코드를 포함하십시오. – elethan

답변

1

당신은 end 인수 후행 공백 직접 추가됩니다.

print("%d" % a, end=(" ")) 

수단은 ' ' 끝나는 a을 인쇄 할 수 있습니다. end 인수를 제거하면 후행 공백이 더 이상 인쇄되지 않습니다 (대신 '\n'이 인쇄됩니다). 자세한 내용은 the docs for print()을 참조하십시오.

end 인수는 인쇄중인 문자열에 영향을주지 않습니다. 즉, aend의 영향을받지 않습니다. 문자열에 후행 공백이있는 경우 a, a.strip()은 해당 공백을 제거합니다. 귀하의 경우 strip()에 의해 제거되지 않는 이유는 인쇄 할 문자열에 공간이없고 대신 print() 기능으로 시각적 출력에 추가된다는 것입니다.

업데이트 :

전이나 편집의 코드 후 발생하는 신비이기 때문에, 말을하기 어렵다, 그러나 당신이 뭔가하고 싶은 것 같은데 :

a, b, i = 0, 1, 0 
n=int(input()) 
nums = [] 
for j in range(0, n): 
    while i < n: 
     nums.append(str(a)) 
     ... 
     # Based on your desired output, 
     # I assume you modify the value of `a` somwhere in here 
     ... 
print(' '.join(nums)) 
+0

하지만 내가 끝 = ("") 내 출력을 제거하는 경우 – desperate

+0

+1 번호마다 각 라인 – desperate

+1

입력 값을 넣어 [목록] 다음에 문자열로 변환 "". 조인 (목록) – ddbug