2014-11-27 2 views
0

을 포함 이건 내 코드입니다 :기본 파이썬 문자열 병합 + 수학 문제는 코드

age = 11 
days = age*52*7  
decades = age/10  
estimate = round(decades)  
summary = "I am " + {} + " days old! Thats about " {} " decades!".format(str(estimate), str(decades)) 

구문 오류가 무엇입니까?를

+0

당신이 그것을 실행하면, 어디 그것은 당신의 오류가 말하는가? – Andy

+0

TeamTreeHouse 트랙을 따라 파이썬을 배우기 때문에 "작업 공간"내에 있습니다. format (str (추정), str (십진수)) –

+0

무엇이'{} '에 대한 것인가? {{ }'거기에? – BrenBarn

답변

6

형식 구문이 잘못 사용되고 있습니다. 중괄호는 문자열 안에 들어가므로

summary = "I am {} days old! Thats about {} decades!".format(str(estimate), str(decades)) 
+1

고맙습니다. 내 문제가 해결됩니다! –

+1

오, 나는 당신이 그것을 할 수 있다는 것을 몰랐습니다 (중괄호 사이에 값을 지정하지 않았습니다.) –

+0

@ReticulatedSpline 네, 할 수 있습니다. 값을 지정하는 것이 더 나은 방법이지만, 이와 같은 짧은 문자열에 대해서는 실제로 중요하지 않습니다. :) – Loocid

1

format을 잘못 사용하고 있습니다. 다음과 같아야합니다.

summary = "I am {0} days old! Thats about {1} decades!".format(str(estimate), str(decades)) 
2

format 라인이 잘못되었습니다.

summary = "I am {} days old! Thats about {} decades!".format(estimate, decades) 

는 다른 답변과는 달리, 나는 또한 당신의 format 튜플에서 str를 제거 알 수 있습니다. 필요하지 않습니다.


출력 메시지도 볼 수 있습니다. 현재 I am 1.0 days old! Thats about 1 decades!을 출력합니다. 마지막으로 수표는 1 일 이상입니다.

이 오류 때문에이 라인의 발생 :

estimate = round(decades) 

decades 변수를 estimate를 사용하여 귀하, 대신 당신의 days 변수

+0

이 문제의 원인은 무엇입니까? 다음과 같이 스크립트를 다시 형식화했습니다 ... age = 17 days = age * 52 * 7 decades = age/10 estimate = round (십진수) summary = "{} 일 전입니다! 수십 년! ". 형식 (예상, 수십 년) –

+0

노력에 감사드립니다. 나는 TeamTreeHouse의 백엔드에 문제가 있다고 믿는다. 왜냐하면 그들이 내 나이/10을 다이빙하지 않고 계속해서 변수 수십 년에 붙이지 않고 진행할 수 없기 때문이다. –