2016-07-07 4 views
-4

내 문자열 인쇄입니다. 나는이 아웃을 인쇄 할 때 그러나 그것의 브래킷과 견적이 있습니다파이썬 2.7는 왜 아래에 변수가 괄호

(8, 'mph', 'W') 

내 모든 다른 변수가 올바르게 인쇄 할 수 있습니다. 나는 이런 식으로 인쇄하고 싶은 :

8 mph W 
+7

문자열이 아닙니다. 그것은 튜플입니다. 인쇄 할 여러 객체를 취할 수있는'print' 구문에 의해 혼란을 겪을 수도 있습니다. 그 중 어떤 것도 문자열 일 필요는 없습니다. – user2357112

+0

'' '.join (map (str, weatherWind))'(당신이 사용하는''.join()'을 사용하려고하면 [한 행에 대괄호가없는 파이썬 프린트 배열] (http://stackoverflow.com/q/11178061) 다른 연결된 게시물을 참조하면 이해할 수 있습니다.) –

+0

@ user2357112 Ahh 감사합니다. 해당 정보로 문제를 해결하십시오. @m_callens 아니, 나는 아주 새로운 것이다. 나는 자신의 프로젝트를 배우기 위해 – Ross

답변

3

귀하는 3 개 값, 정수, 문자열 'mph' 및 문자열 'W'와 튜플을 만들었습니다. 이 하나의 문자열을 만들고 싶었다 경우, string formatting를 사용

weatherWind = '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"])) 

이것은 이미 mph와 문자열 {..} 슬롯에 풍속 및 베어링 정보를 삽입합니다. .0f 서식 지정 명령은 정수 값 부분 만 표시하도록 부동 소수점 속도를 반올림합니다.

print a, b, c 

당신이 print a, b, c을 수행 할 때

x = a, b, c 
print x 

완전히 다른 무언가를,

>>> bearing_to_direction = lambda d: 'NSWE'[d] 
>>> c = {'windSpeed': 7.92, 'windBearing': 2} 
>>> print '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"])) 
8 mph W 
>>> c = {'windSpeed': 3.14, 'windBearing': 1} 
>>> print '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"])) 
3 mph S 
+0

고맙습니다. 그래서 나는 빨리 weatherWind = str (int (round [c [ "windSpeed"]))) + "mph"+ bearing_to_direction (c [ "windBearing"])으로 바꿨다. – Ross

+2

@RossWatson :'str.format()'을 사용하면 더 명확하고 유연 해집니다. 예를 들어, 물건을 옮기고 더 많은 슬롯을 추가하는 것이 더 쉽습니다. –

3

다소 혼동 :

그런 다음 더 인용 부호 나 괄호없이 해당 문자열을 인쇄 할 수 있습니다 , Python은 각 객체에 str을 호출합니다. 객체의 문자열 표현을 가져오고 공백으로 구분하여 해당 문자열을 인쇄합니다.

을 만들면 튜플을 생성 할 수 있습니다. 이 때 문자열이 생성되지 않습니다. print x을 수행하면 Python은 튜플에서 str을 호출하고 그 결과를 인쇄합니다. 튜플을 표현한 strprint a, b, c 출력과 매우 다릅니다. 당신이 print a, b, c의 출력과 같은 문자열을 원하는 경우에

, 그렇게 할 수있는 일반적인 방법은 당신이 그것을 더 편리한 방법이있을 수 있습니다 인쇄하는지에 따라

x = ' '.join(map(str, [a, b, c])) 

이다; 예를 들어, Martijn이 제안한 문자열 형식입니다.

관련 문제