(초보)파이썬 def 질문 입니다
조회수 832회
제가 파이썬 공부를 하는데, 이해가 잘 안되서 질문드립니다.
또 처음하는 질문이라...양식이 이게 맞는지도 모르겠습니다.
def는 이해를 했는데,
result = add_mul('add', 1,2,3,4,5)
result = add_mul('mil', 1,2,3,4,5)
여기서 곱하기랑 더하기가 어떻게 되는지 모르겠어요
제 생각에는 곱하기가
(Result * 1) + (result * 2) + .....
이런식으로 진행된다고 생각을 하는데...
왜 튜플 안의 숫자가 한번에 다 곱해지고, result = 1
과 곱해지는건지 모르겠습니다.
1 답변
-
아래와 같이 reduce 하는 것을 for 를 이용해서 구현한 것 입니다. 수열의 곱셈 파이기호(합은 시그마)를 생각하면 됩니다. 질문상의 코드의 예는 5! 인 겁니다.
In [7]: result = 1 In [8]: (((((result * 1) * 2) * 3) * 4) * 5) # for을 풀면 이렇게 됩니다. Out[8]: 120
- 아하! 그러면 튜플은 기본적으로 팩토리얼이라고 생각을 하면 되나요? 물론 덧셈은 팩토리얼이 아니지만, 그런식으로 덧셈이 진행되는 거구요? 장연철 2019.5.7 06:11
- 튜플과 팩토리얼은 다른겁니다...튜플은 쉽게 변경불가 리스트입니다. *args 로 1,2,3,4,5 가 튜플로 묶여서 전달됩니다. 정영훈 2019.5.7 07:21
- 아 제가 말한 팩토리얼은 답변자님께서 '5!' 라고 하셔서, 수학기호 Factorial을 말한겁니다! 음 제가 잘 못 이해한거면, 다시 공부해야 겠네용 장연철 2019.5.7 07:35
- 네 질문상의 코드의 예시는 5!가 맞습니다만 2,4,6,8 이렇게 인자를 넣을 수도 있으니까요. 정영훈 2019.5.7 16:24
댓글 입력