티스토리 뷰
[for 문]
1부터 5까지 출력하는 코드는 어떻게 작성할 까요?
print(0)
print(1)
print(2)
print(3)
print(4)
5개 일때는 다 작성할 수 있지만 100개 1000개 일때는 어려울 것입니다.
n 번 만큼 동일한 코드를 반복할 때는 for 을 사용하면 유연하게 코드를 작성할 수 있습니다.
for i in range(5):
print(i)
range(5) 는 0~4 까지 총 5번 반복한다는 뜻입니다.
반복문에는 초기값, 조건식, 증감식 3개가 반드시 존재해야 합니다.
[초기값]
i =0 입니다. range(5) 에서 초기값을 별도로 설정하지 않으면 0 부터 시작하기 때문입니다.
[조건식]
i 가 0~4 일때만 for 문을 실행하고 그렇지 않으면 종료합니다.
이것은 range(5) 에서 정의 되어 있습니다.
range(5) 는 for 문 i 가 0부터 시작하고 i 가 5보다 작을 때 까지만 반복하라는 뜻입니다.
[증감식]
i 는 0~4 까지 정수만 반복되기 때문에 i 는 1씩 증가 하게 됩니다. 이것도 range(5) 에 정의 되어 있습니다.
[range(n)]
range(n) 은 0 부터 n-1 까지 반복한다는 뜻이고 증가하는 값은 i 에 들어가게 됩니다.
[range(a,b)]
만약 range(a,b) 라면 i 는 a 부터 b-1 까지 값이 들어갑니다.
range(2,5) 일때는 2,3,4 로 총 3회 반복 됩니다.
[리스트 요소 순환]
for 문으로 리스트의 모든 요소를 순환할 때는 어떻게 할까요?
products = ['milk', 'coke', 'water']
문자열 요소 3개를 가진 products 라는 리스트가 있습니다.
for 문에서 반복의 횟수를 정의하기 위해서는 리스트 길이를 알아야 합니다.
그래야 n 번 만큼 반복할 수 있어요.
len(products)
이전 과정에서 리스트의 길이 구하는 것을 배웠습니다.
len(products) 는 3과 같습니다.
range(len(products)) 는 range(3) 과 같습니다.
products = ['milk', 'coke', 'water']
for i in range(len(products)) :
print(products[i])
i 는 0~2 까지 값이 순서대로 들어가게 되고
products[i] 은 products[0], products[1], products[2] 이렇게 3번 순환하게 됩니다.
위에서 보다 더 간단하게 for 문을 구현할 수 있습니다.
for product in products :
print(product)
이렇게 하면 인덱스로 접근을 안해도 각 요소들에 접근할 수 있습니다.
사실 in 뒤에는 리스트가 오게 됩니다.
for i in range(3):
print(i)
여기서 range(3) 도 사실 리스트 였습니다.
print(range(3))
range(3) 을 출력하면 [0,1,2] 가 출력됩니다.
3보다 작은 정수의 리스트인것 입니다.
for product in products :
print(product)
for i in range(3):
print(i)
그렇다면 위의 2개의 포문은 사실 동일한 것입니다.
위에것은 products 라는 리스트의 모든 요소를 순회하고 각 요소는 매번 product 에 담는 것입니다.
아래 for 문도 마찬가지 입니다.
range(3) 라는 것은 [0,1,2] 라는 리스트 이기 때문에 0~2 의 값이 차례로 i 라는 변수에 담기게 됩니다.
[while 문]
while 문도 반복문으로 for 문과 비슷합니다.
반복문에 기본적인 요소인 초기값, 조건식, 증감식의 형태가 약간 다르지만 동작 결과는 동일합니다.
for i in range(3):
print(i)
이것과 동일한 동작을 하는 while 을 살펴 볼게요
i = 0
while i < 3:
print(i)
i = i + 1
[초기값]
while 에는 초기값을 지정하는 식이 따로 없기 때문에 while 문 시작전에 i = 0 으로 초기화를 해줍니다.
[조건식]
while 뒤에 오는 i < 3 이 조건식이 되는데, 해당 조건이 참일 때만 반복하고 거짓일 때는 종료하게 됩니다.
i < 3 이 참이려면 i 가 0,1,2 일때만 while 문이 돌게 됩니다.
[증감식]
i 가 증가하지 않는다면 while 문은 무한히 반복되게 됩니다.
반복문에서는 종료시점을 항상 체크해줘야 문제가 없습니다.
i 는 i = i + 1 로 1씩 증가하기 때문에 3이 되는 순간 while 문은 종료하게 됩니다.
while 문과 for 문은 형태가 다르지만 동일한 동작을 합니다.
미리 횟수가 정해저 있는 경우는 for 문을 사용하는게 좋고
그렇지 않고 종료시점이 특수한 조건일 경우는 while 문으 사용
하시는게 좋습니다.
[break 문]
반복문을 사용하다 보면 특정 시점에 종료해야 할 때가 있습니다.
이때는 break 문을 이용해서 반복문을 종료할 수 있어요
i = 0
while True:
print(i)
if i == 10:
print("break")
break
i += 1
while 문이 반복하는 조건은 True 이기 때문에 강제로 종료하기 전까진 계속 돌거에요
i == 10 인 조건이 참일 때 break 문을 만나서 while 문안에 아래 i += 1 을 실행하지 않고
while 문을 종료합니다
[리스트 활용]
리스트의 다양한 활용에 대해서 알아 볼게요!
products = ['milk', 'coke', 'water']
새 리스트를 작성할 때
모든 요소를 처음에 만들 필요는 없어요!
빈 리스트를 생성하고 필요할 때만 요소를 추가해 볼게요
friends = []
친구들을 사귈때 마다 추가할 friends 라는 빈 리스트를 생성했어요!
이제 리스트에 요소를 추가해 볼게요!
friends.append("kim")
friends.append("lee")
friends 라는 리스트에 append 로 요소를 추가했어요
"kim" 과 "lee" 이라는 문자열 요소가 각각 추가 되었어요.
print (len(friends))
2개의 요소를 추가해서 리스트의 길이를 출력하면 2 가 나와요
절교한 친구가 있다면 친구목록에서 삭제해야 되요
del friends[0]
del 뒤에 삭제할 리스트 요소를 인덱스를 이용해서 써주면 되요
friends[0] 는 friends 리스트의 1번째 요소를 의미해요
이제 리스트에 남은 요소는 "lee" 라는 친구 하나에요
"kim" 이라는 요소가 완전히 삭제 되었는지 확인해 볼게요!
if "kim" in friends:
print("found")
else :
print("not found")
이전에 보던 for 문에서 봤던 in 과 if 문이 합처진 형태에요.
if 뒤에 "kim" 이라는 값(value) 가진 요소가 friends 라는 리스트에 존재 하는지 조건문이에요
존재한다면 found 를 출력하고 존재하지 않는다면 else 문으로 분기하여 not found 를 출력해요.
[과제]
- 리스트 생성하고 0번 요소에는 1, 1번 요소에는 2, n 번 요소에는 n+1의 값을 넣고 총 100개 요소를 추가(for, while 각각)
- 위에 100개 요소를 가진 리스트에서 홀수를 가진 모든 요소 삭제하기(for,while 각각)
- 리스트에 홀수가 존재하는지 확인(for, while 각각)
'python lecture > basic' 카테고리의 다른 글
[edu] 파이썬 시작하기 - 6 (0) | 2018.08.28 |
---|---|
[edu] 파이썬 시작하기 - 5 (0) | 2018.08.27 |
[edu] 파이썬 시작하기 - 4 (0) | 2018.08.27 |
[edu] 파이썬 시작하기 - 2 (0) | 2018.08.25 |
[edu] 파이썬 시작하기 - 1 (0) | 2018.08.25 |
- Total
- Today
- Yesterday
- 플러스친구 자동응답
- GIT
- virtualenv
- 파이썬
- 장고 플러스친구 자동응답
- gitlab
- 파이썬 입문
- Tistory
- 장고
- gitignore
- Python
- 파이썬 프로그래밍
- 면접답변
- 파이썬 독학
- 모바일 스킨 적용
- 문서 비교
- 모바일 테마 적용
- 엑셀 비교
- 면접정답
- 장고 카톡 자동응답
- wsgi
- 이미지 비교
- pycrypto
- PuTTYGen
- admin.py
- 문과 코딩
- django chatbot
- django
- chatbot
- 파이썬 강좌
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |