일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정렬
- nft
- 실행 컨텍스트
- 리액트
- BOJ
- 프로퍼티
- Python
- let
- Algorithm
- 함수
- Javascript
- 파이썬
- git pull
- 자바스크립트
- 클로저
- var
- solidity
- 백준
- 솔리디티
- 딥다이브
- 알고리즘
- react
- Queue
- 블록체인
- blockchain
- Deep Dive
- Execution context
- Interview
- frontend
- 변수
Archives
- Today
- Total
공부하자
헷갈리는 파이썬 기초 - for문 & 재귀함수 본문
for 문 : 인덱스 출력
1. 0부터 리스트의 길이 만큼의 범위를 순회하면서 인덱스 숫자를 출력하는 for 문을 작성해봅시다.
lunch = ['초밥', '치킨', '족발']
for menu in range(len(lunch)):
print(menu)
0
1
2
1-1. 순서도 함께 출력
for menu in range(len(lunch)):
print('{0}번째 메뉴: {1}'.format(menu+1, lunch[menu]))
1번째 메뉴: 초밥
2번째 메뉴: 치킨
3번째 메뉴: 족발
2. enumerate() : 인덱스(index)와 값(value)를 함께 활용 가능함
for idx, menu in enumerate(lunch):
print(idx, menu)
0 초밥
1 치킨
2 족발
print(list(enumerate(lunch))[0])
print(type(list(enumerate(lunch))[0]))
(0, '초밥')
<class 'tuple'>
for idx, menu in enumerate(lunch, start=1):
print(idx, menu)
start=1 이라는 조건을 추가해 인덱스가 1로 시작하여 출력되는 반복문을 작성할 수 있다.
1 초밥
2 치킨
3 족발
재귀함수
1. 팩토리얼 계산
- 반복문을 이용한 팩토리얼 계산
def fact(i):
sum = 1
while i != 1:
sum = sum * i
i = i - 1
return sum
print(fact(5))
- 재귀를 이용한 팩토리얼 계산
def factorial(j):
if j > 1:
return j * factorial(j-1)
else :
return 1
print(factorial(5))
: 재귀함수를 작성시에는 반드시 base case가 존재하여야 한다.
base case는 점점 범위가 줄어들어 반복되지 않는 최종적으로 도달하는 곳을 의미한다. (위의 함수에서는 else: return 1 즉, n이 1일 때, 함수가 아닌 정수 반환하는 것)이 base case를 의미
2. 피보나치 수열
- 반복문을 이용한 피보나치 수열
def fib_loop(n):
if n < 2:
return n
a, b = 0, 1
for i in range(n-1):
a, b = b, a+b
return b
- 재귀를 이용한 피보나치 수열
def fib(n):
if n < 2:
return n
else:
return fib(n-1) + fib(n-2)
print(fib(10))
'Python' 카테고리의 다른 글
헷갈리는 파이썬 기초 (0) | 2021.08.08 |
---|---|
Python 기초 - 비트 단위 연산 (0) | 2021.04.16 |
Comments