2013-05-03 3 views
-2

이 마지막 질문에 문제가 있습니다. 그것은 "컴퓨터 과학자처럼 생각하는 법"이라는 책에서 나왔습니다. 너희들이 이걸 도와 줄 수 있니?파이썬 합계 제곱 함수

전달 된 정수의 자릿수의 합을 계산하는 함수 sum_of_squares_of_digits를 작성하십시오. 예를 들어, sum_of_squares_of_digits는 (987), (194)를 반환해야 9 * 2 + 8 * 2 + 7 ** 2 == 보낸 81 + 64 + 49은의 숫자 반복 수 194

+0

에 오신 것을 환영합니다! 우리가 당신을 위해 몇 가지 코드를 작성하기를 원하는 것처럼 보입니다. 대부분의 사용자는 곤경에 처한 코더 코드를 기꺼이 만들지 만 일반적으로 포스터가 이미 문제를 해결하려고 시도했을 때만 도움이됩니다. 이러한 노력을 입증하는 좋은 방법은 지금까지 작성한 코드, 예제 입력 (있는 경우), 예상 출력 및 실제로 얻은 출력 (콘솔 출력, 스택 추적, 컴파일러 오류 등)을 포함시키는 것입니다. 응용할 수 있는). 더 자세하게 제공할수록 더 많은 답변을받을 수 있습니다. –

답변

5

정수로 다시 문자열로 다음 개별 문자를 정수로 변환 :

def sum_of_squares_of_digits(value): 
    return sum(int(c) ** 2 for c in str(value)) 

이 정수에 다시 모든 숫자를 돌려 그들을 광장, 그 결과를 요약하는 발전기 표현과 함께 sum()를 사용 함께 다시.

데모 : 스택 오버플로

>>> def sum_of_squares_of_digits(value): 
...  return sum(int(c) ** 2 for c in str(value)) 
... 
>>> sum_of_squares_of_digits(987) 
194 
+0

당신은 그 자신에게 그것을 시험해 보라고 말했다. 그러면 당신은 그에게 매우 간결한 좋은 대답을 주었다. 수치심 때문에, lol –

+0

@GradyPlayer : 나는 간결한 pythonic 대답을했다. OP는 유감스럽게도 아무 것도 배울 수 없기 때문에 아무것도 배울 수 없습니다. –

+0

감사합니다. 나는 이것을 내 대답을 얻는 데 참고로 사용하고있다. 실제로는 실제로 더 이해가됩니다. 모든 응답자에게 감사드립니다. –

2

== 문자열로 변환하여 번호 : 당신은 정수로를 설정하는 int(digit)을 사용할 수 있도록

>>> n = 102 
>>> for digit in str(n): 
...  print(digit) 
... 
1 
0 
2 

digit

은 여전히 ​​문자열이어야합니다.