반복문
> 어떠한 수행 작업을 반복해서 수행해야 할 때 사용.
> while / for
{ while문 형식 }
while 조건식:
반복실행문
> 조건식의 결과가 True이면 while문을 실행
> 반복문 실행이 종료되면 다시 조건식으로 이동
> 조건식의 결과가 False이면 더 이상 반복 실행문을 실행하지 않음
> while문은 주로 횟수가 정해지지 않은 연산을 진행하거나,
특정 동작이 지속될 때 사용
> while문의 내부에 또 다른 while문이 나타나는 것을 중첩 while문이라고 함.
total = 0
i = 1
while i < 5:
total += i
i += 1
print(total)
i = 1
while i <= 10:
print(f'{i}: hello world')
i += 1
while True:
password = int(input('비밀번호를 입력해주세요 >> '))
if password == 486:
print('정답')
break
else:
print('오답')
i = 0
while i <= 2:
print('outer')
j = 0
while j <= 3:
print('inner')
j += 1
i += 1
{ for문 형식 }
for 변수 in 반복가능객체:
반복실행문
> 값의 범위나 횟수가 정해져 있을 때 사용.
> while문에 비해 자주 사용되는 반복문.
> for문은 조건식이 존재하지 않고, "변수"와 "반복 가능 객체"만 사용
반복 가능 객체?
> 여러 개의 데이터를 저장하고 있는 객체
> for문에서 사용되는 반복 가능한 주요 객체는 다음과 같음.
구분 | 자료형 | 예제 |
sequence | str | 'hello' |
list | [1, 2, 3] | |
tuple | (1, 2, 3) | |
range | range(100) | |
non-sequence | set | {1, 2, 3} |
dict | {'a': 'apple', 'b': 'banana'} |
{ Sequence와 for문 }
- str
for 문자 in 문자열:
반복실행문
> for문과 문자열을 함께 사용하면 문자열 각 요소를 순차적으로 하나씩 꺼내서 사용 가능.
for char in 'apple':
print(char)
password = input('비밀번호 입력 >> ')
char_count = 0
num_count = 0
for char in password:
if char.isalpha():
char_count += 1
elif char.isdecimal():
num_count += 1
if (char_count>=1) and (num_count>=1):
print('가능한 비밀번호')
else:
print('불가능한 비밀번호')
- list
for 요소 in 리스트:
반복실행문
> for문과 리스트를 활용하면 리스트의 각 요소를 순차적으로 하나씩 꺼내서 사용 가능. (이를 "리스트 순회"라고 함.)
> 리스트 생성 시 for문을 유용하게 사용 가능.
> 리스트 내부에 for문을 포함하는 리스트 내포(List Comprehension)을 사용하면 리스트를 쉽게 생성 가능
[표현식 for 변수 in 반복가능객체]
for fruit in ['apple', 'banana', 'kiwi']:
print(fruit)
- tuple
for 요소 in 튜플:
반복실행문
> for문과 튜플을 활용하면 튜플의 각 요소를 순차적으로 하나씩 꺼내서 사용 가능
for fruit in ('apple', 'banana', 'kiwi'):
print(fruit)
- range
range(초깃값, 종료값, 증감값)
> range() 함수는 정수 범위를 만들어 낼 때 유용한 함수
> range 함수 구성 요소는 다음과 같은 특징을 지님
range 함수 구성요소의 특징
1) 초깃값부터 종료값 이전까지 숫자 n의 컬렉션을 생성 (초깃값 <= n < 종료값)
2) 초깃값 생략 가능 (생략 시 초깃값은 0)
3) 종료값 생략 불가
4) 증감값 생략 가능 (생략 시 증감값은 1)
> range를 통해 값을 생성하면 어떤 값이 생성되었는지 바로 확인 불가
> 위와 같은 경우, list와 같은 시퀀스 자료형을 통해 변환해야 함.
print(range(1, 100))
print(list(range(1, 100))) # 값을 확인하기 위해서는 list 등을 사용
print(list(range(1, 100, 2)))
print(range(1, 100)[10:13]) # 슬라이싱
print(range(100)) # 시작값 생략 가능, 이 경우 종료값으로 인식
evens = []
for i in range(100):
if (i%2) == 0:
evens.append(i)
print(evens)
for i in range(13):
print(f'{i+1}: hello world')
{ Non-Sequence와 for문 }
- set
for 요소 in {세트}:
반복실행문
> for문과 세트를 활용하면 세트의 각 요소를 순서에 상관 없이 하나씩 꺼내서 사용 가능
for fruit in {'apple', 'banana', 'kiwi'}:
print(fruit)
- dict
#1번
key 요소만 접근할 경우
for key in {딕셔너리}: 반복실행문
그러나 명확한 전달을 위해 아래와 같이 사용을 권함
for key in {딕셔너리}.keys():
반복실행문
#2번
value 요소만 접근할 경우
for key in {딕셔너리}.values():
반복실행문
#3번
key, value 요소 모두 접근할 경우
for key, value in {딕셔너리}.items():
반복실행문
> for문과 딕셔너리를 활용하면 딕셔너리의 각 Key, Value를 하나씩 꺼내서 사용 가능
person = {'name': '에밀리', 'age': 20}
for key in person:
print(key)
person = {'name': '에밀리', 'age': 20}
for key in person.keys():
print(key)
person = {'name': '에밀리', 'age': 20}
for value in person.values():
print(value)
person = {
'국어': 90,
'영어': 60,
'수학': 50,
'사회': 90,
'과학': 100
}
for item in person.items():
if item[1] < 70:
print(item[0])
print('---------')
for key, value in person.items():
if value < 70:
print(key)
'[Python] 파이썬' 카테고리의 다른 글
[Python] 파이썬 내장 함수 - 문자열 함수 (0) | 2022.08.01 |
---|---|
[Python] 기타 제어문 (0) | 2022.07.31 |
[Python] 제어문 - 조건문 (if) (0) | 2022.07.29 |
[Python] 연산자 우선순위? (0) | 2022.07.28 |
[Python] 연산자 [5 ~ 7] (0) | 2022.07.28 |