▼ 이전 [파이썬 기초] 상식▼
목차
[파이썬 기초]
1. 파이썬 반복문(for문)
2. for문을 딕셔너리와 튜플 활용하기
3. 반복문( for문) 안에서 조건문(if문) 만들기
4. for 문 특수 키워드 반복문 탈출하기 (break, continue, pass)
5. 파이썬 반복문(while 문), for문과 비교하기, 무한 루프 탈출하기
파이썬 반복문
반복문이란
반복적인 작업을 수행하는 구문을 말한다.
* for문
* while 문
반복문은 언제 사용 할까?
- 반복적으로 처리할 데이터는 자료구조(리스트,딕셔너리,튜플) 에 저장되어 있어야 반복문으로 사용 가능하다.
- 횟수가 정해져 있을 때 사용한다. (예 : 10 번 반복)
- 자료구조에 있는 데이터에 대해서 반복적으로 처리할 때 주로 사용한다.
- 반복하고자 하는 문장을 들여쓰기 한 후 적어 준다.
반복적인 작업의 예시
_동일한 내용을 팀원 100명에게 이메일 보내기
_여러 통계 자료에 대한 계산 작업
등.
파이썬 for문
"포 아이 인 리스트"
for i in 리스트: #리스트 안에 있는 값 i(변수)에 대해서
반복 수행문장1
반복 수행문장2
...
for문을 이용한 데이터 출력
리스트에 있는 값을 출력
# 반복문 사용하지 않았을 경우
과일 = ["바나나","딸기","키위","수박"]
print(과일[0])
print(과일[1])
print(과일[2])
print(과일[3])
🔽 🔽 🔽
# for문 사용
과일 = ["바나나","딸기","키위","수박"]
for i in 과일:
print(i)
=> 바나나
=> 딸기
=> 키위
=> 수박
for문 인터프리터 자세히 알아보기
# for문 사용
과일 = ["바나나","딸기","키위","수박"]
for i in 과일:
print(i)
i라는 변수는 리스트 앞에서 부터 순서대로 값을 바인딩 해온다.
i가 바인딩한 상태에서 들여쓰기 된 문장이 실행된다.
TIP. 1
for문은 뒤에서 부터 해석하면 쉽다!
# for문 사용
과일 = ["바나나","딸기","키위","수박"]
for i in 과일:
print(i)
▶과일 안에 (in) i 에 대해서(for)
i를 print 하라.
TIP. 2
적당한 변수 이름 사용하기!
for i in 자료구조 구문에서는 i 는 자료구조 내의 값을 바인딩하는 하나의 변수이다.
그렇기 때문에 자료구조에 있는 값을 잘 표현할 수 있는 변수를 사용해 주면 좋다.
과일 = ["바나나","딸기","키위","수박"]
for 먹고싶은과일 in 과일: # i 대신 먹고싶은과일(변수)
print(먹고싶은과일)
회사인원 = ["김홍길","홍길동","김철수","박연희"]
for 정보팀 in 회사인원: # i 대신 회사인원(변수)
print(정보팀)
파이썬 for문과 딕셔너리
딕셔너리는 key, value 쌍으로 구성된다.
참고하면 좋은 글.
[파이썬 기초] 자료구조 : 튜플과 딕셔너리 그리고 이차원데이터 /딕셔너리 중첩
그중 for문은 key(키)값을 바인딩 한다.
Q.
과일가격 = {
"바나나" : 3000,
"딸기" : 8000,
"키위" : 10000,
"수박" : 15000
}
for i in 과일가격:
print(i)
A.
바나나
딸기
키위
수박
딕셔너리 key로 value 인덱싱하기
#기존 딕셔너리 value값 뽑아내기
과일가격 = {
"바나나" : 3000,
"딸기" : 8000,
"키위" : 10000,
"수박" : 15000
}
print(과일가격["바나나"])
#for문 사용
과일가격 = {
"바나나" : 3000,
"딸기" : 8000,
"키위" : 10000,
"수박" : 15000
}
for i in 과일가격:
print(i, 과일가격[i])
items() 메서드를 사용하기
items() 메서드는 (key, value) 튜플을 리턴한다.
두 개의 변수로 key, value를 각각 바인딩 한다. (=> 튜플 언패킹)
#items메서드 사용하기
과일가격 = {
"바나나" : 3000,
"딸기" : 8000,
"키위" : 10000,
"수박" : 15000
}
for k,v in 과일가격.items(): # k = key, v = value
print(k,v)
과일가격.items() # 리스트
for문을 사용해서 어떤 정수를 범위로 표현하기
Q. 0 ~ 9까지 출력하기
A.
for i in[0,1,2,3,4,5,6,7,8,9]
print(i)
for i in range(10):
print(i)
range(start, end, step)
• start: 시작 값
• end: 끝 값 (포함되지 않음)
• step: 증가 값
Q. 0 ~ 4 까지의 숫자 리스트를 생성
A.
for i in range(0,5):
print(i)
Q. range(0, 10, 2)
A.
시작값 0
끝 값 10 (포함x)
증가 값 2
0부터 10미만까지 2씩증가하는 값,
!주의!
range -> list (X)
단순히 값을 확인 하고 싶을 때 range를 list화 할경우 메모리를 많이 잡아먹게 되니 비추.
enumerate()
튜플을만들어준다.
과일 = ["바나나","딸기","키위","수박"]
for i in range(4):
print(i,과일[i])
과일 = ["바나나","딸기","키위","수박"]
for i v in enumerate(과일):
print(i,v)
0 바나나
1 딸기
2 키위
3 수박
반복문 안에서 조건문
반복문 안에서 조건문을 사용할 수 있다.
Q1. 과일 이름 분류기를 만들어보자
리스트 안에 있는 과일이름을 원하는 글자 수에 맞춰 출력해보자.
조건. 반복문 내에서 조건문을 사용한다.
출력. 3글자 이상의 과일이름만 출력하기.
A1.
1단계 : for 문을 사용해서 과일 이름을 출력해보자.
과일목록 = ["바나나", "딸기", "사과", "수박", "오렌지"]
for 과일 in 과일목록:
print(과일)
2단계 : for 문 안에서 조건(if)를 넣어보자.
과일목록 = ["바나나", "딸기", "사과", "수박", "오렌지"]
for 과일 in 과일목록:
if len(과일) >=3:
print(과일)
3단계 : append를 활용해 새로운 리스트 안에 넣어보자.
과일목록 = ["바나나", "딸기", "사과", "수박", "오렌지"]
3글자이상과일 = [ ]
for 과일 in 과일목록:
if len(과일) >=3:
3글자이상과일.append(과일)
print(3글자이상과일)
# len() 문자의 길이 확인하는 함수
참고하면 좋은 글.
# 비교연산자 활용
참고하면 좋은 글.
[파이썬 기초] 파이썬 Boolean 타입 / 조건문, 논리 연산자
Q2. 가격이 10,000원 미만인 과일출력하기
A2.
1단계 : 데이터를 표현하기
- 과일이름과 해당 가격에 대한 값 ➡ 튜플에 저장
- 여러 과일에 대한 정보 ➡ 리스트에 각 튜플을 저장
과일목록 = [("바나나", 3800),
("딸기",8500),
("사과",15000),
("수박",11000),
("오렌지",5000)
]
2단계 : 리스트 인덱싱 자료 구조 확인하기
리스트의 0번은 바나나 정보를 담고 있는 튜플
- 튜플의 0번은 과일이름
- 튜플의 1번은 과일 가격
과일목록 = [("바나나", 3800),
("딸기",8500),
("사과",15000),
("수박",11000),
("오렌지",5000)
]
print(과일목록[0]) # 바나나정보가 담기니 리스트 출력
print(과일목록[0][0]) #튜플 바나나의 이름 출력
print(과일목록[0][1]) #튜플 바나나의 가격 출력
3단계 : for 문 안에서 조건(if)를 넣어보자.
과일목록 = [("바나나", 3800),
("딸기",8500),
("사과",15000),
("수박",11000),
("오렌지",5000)
]
for i in 과일목록: # i는 튜플을 바인딩
if i[1] < 10000: # 튜플의 1번 인덱싱 (과일가격)
name = i[0] #튜플의 0번 인덱싱 (과일이름)
print(name)
4단계 : 조건에 만족하는 결과값을 새로운 리스트로 만들자.
과일목록 = [("바나나", 3800),
("딸기",8500),
("사과",15000),
("수박",11000),
("오렌지",5000)
]
result = [ ] # 반복문 바깥쪽에 데이터를 저장할 리스트 생성
for i in 과일목록: # i는 튜플을 바인딩
if i[1] < 10000: # 튜플의 1번 인덱싱 (과일가격)
name = i[0] #튜플의 0번 인덱싱 (과일이름)
result.append(i[0]) #append 활용해서 조건문을 만족하면 해당 리스트에 등록)
print(result)
반복문 탈출하기
break
특정조건을 만족할 때 반복문을 탈출하기
가장 가까운 반복문을 탈출합니다.
for i in range(10):
if i >= 5:
break
print(i)
print("반복문 끝")
continue
반복문 특정 조건만 건너 뛰기
반복문에서 continue 키워드를 만나면 들여쓰기 된 코드는 수행하지 않고 다음 반복으로 이동합니다.
for i in range(10):
if i % 2 == 0: # 짝수 구하는 식
continue
print(i)
반복문의 처음으로 돌아가 이어서 실행합니다.
continue 아래 코드는 실행되지 않습니다
예 ) 홀수만 출력하기 => 현재 숫자가 짝수이면 다음 반복으로 이동하기
pass
구문적으로는 문(statement)가 존재해야 하나 딱히 처리 할 일이 없을 때 사용합니다.
문법 에러를 회피하기 위해 사용합니다.
for i in range(10):
pass
잠시 생각좀 할때 쓰이는 pass!
파이썬 while문
조건이 참인 동안에 while에 들여쓰기 된 문장이 수행된다.
while 조건문:
수행할 문장 1
수행할 문장 2
수행할 문장 3
...
for문과 whil문 비교
for문 | while문 |
반복 횟수가 상대적으로 적을 때 사용 파이썬 자료구조(리스트, 딕셔너리 등)와 주로 사용된다. |
반복 횟수가 상대적으로 많을 때 사 용 무한 루프를 만든다. |
while문과 무한루프 (모듈)
time.sleep (숫자)
인터프리터가 (숫자) 초 대기한다.
# import time
print("HELLO WORLD")
time.sleep(5)
print("GOOD BYE")
while 문 사용
# import time
while True:
print("HELLO WORLD")
time.sleep(5)
while 문을 사용할경우 계속해서 "HELLO WORLD"를 5초 후 프린트하게된다.
이렇게 반복되는 경우를 무한 루프라고 한다.
무한루프를 탈출하기 위해서는 Ctrl + C를 누르면 해결된다.
'파이썬' 카테고리의 다른 글
[파이썬 기초] LEGB 규칙, 함수 호출과정, 인수언패킹 (1) | 2024.02.26 |
---|---|
[파이썬 기초] 함수(function) / 함수 만들기(함수 정의) (2) | 2024.02.21 |
[파이썬 기초] 파이썬 Boolean 타입 / 조건문, 논리 연산자 (0) | 2024.02.09 |
[파이썬 기초] 자료구조 : 튜플과 딕셔너리 그리고 이차원데이터 /딕셔너리 중첩 (0) | 2024.02.05 |
[파이썬 기초] 파이썬 리스트에 대한 기초 공부 (0) | 2024.01.31 |