GOAL
1. 반복문 개념
2. for문 상세
3. while문 상세
4. break / continue
5. 리스트 컴프리헨션
: 같은 코드를 여러 번 실행하는 도구이다.
: 반복 작업을 자동화할 수 있음
: 예시) 10명의 학생 이름 출력하기
for name in ["철수","영희","민수"]:
print("안녕,", name)
출력
안녕, 철수
안녕, 영희
안녕, 민수
리스트 = ["철수", "영희", "민수"]
1회전: name = "철수"
2회전: name = "영희"
3회전: name = "민수"
각 요소가 차례대로 변수에 들어간다.
여기서 for문 뒤에 어떠한 객체를 하나씩 꺼낼지 지정해줘야 한다.
이를 이터러블이라고 한다.
: 하나씩 꺼낼 수 있는 객체를 말한다.
: 내부적으로 iter() 메서드를 가진다.
: for문 in 뒤에는 반드시 이터러블이 와야 한다.
: 즉, “줄 을 서서 한 명씩 꺼낼 수 있는 자료 구조”
출력:
P
y
t
h
o
n
출력:
사과
바나나
체리
출력:
1
2
3
출력:
name : 철수
age : 20
출력 (순서는 일정치 않음):
10
20
30
출력:
0
1
2
번호표를 하나씩 꺼내주는 느낌입니다.
names = ["Kim","Lee","Park"]
for i, name in enumerate(names, start=1):
print(i, name)
출력
1 Kim
2 Lee
3 Park
출력
철수 : 85
영희 : 92
민수 : 78
name 3개의 값, scores 3개의 값을 입력하고, 합쳤을 때에는 1 : 1 대응으로 짝지어서 출력이 됩니다.
또 다른 경우도 있습니다.
names = ["철수","영희"]
scores = [90, 80, 70] # 더 길다
for n, s in zip(names, scores):
print(n,":", s)
출력
철수 : 90
영희 : 80
이렇게 name 2개의 값, scores 3개의 값을 입력하고, 합쳤을 때에는 score 1개는 남아서 출력이 따로 안됩니다.
for문을 2개 이상 동시에 쓰는 중첩 for문에 대해 알아보도록 하겠습니다.
어떻게 쓰이냐면,
for i in range(2, 5):
for j in range(1, 4):
print(i,"x", j,"=", i*j)
이렇게 for문 안에 for문을 써서 중첩이 되게 코드 작성을 해줍니다.
이 코드의 의미는 i는 2,3,4(5전까지 출력!)을 입력 받을 동안, j는 1부터 4까지 i가 한번 입력 받을 때 1~4까지 출력됩니다. 이를 어떻게 보여주냐, 바로 print문을 확인해보면
i x j = i 랑 j 곱한값! 으로 출력하도록 되어있습니다.
즉 구구단의 일부를 출력하는게 됩니다.
출력값은
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
이렇게 됩니다.
x = 3
while x > 0:
print("카운트:", x)
x -= 1
출력
카운트: 3
카운트: 2
카운트: 1
이렇게 0 전까지 실행되는 걸 볼 수 있습니다. 0은 왜 안되냐면 두 번째 줄에 while문을 보면 x > 0인데 0 > 0 이 식은 false이기 때문에 while문이 실행되지 않기 때문입니다.
잔액이 0이 될 때까지 반복합니다.
money = 3000
while money > 0:
print("음료 구매")
money -= 1000
출력: 3번만 실행
먼저 break는 위에서 봤던 반복문을 즉시 종료하는 역할을 합니다.
예시)
for i in range(1, 10):
if i == 5:
print("5에서 멈춤!")
break
print(i)
출력: 1 2 3 4
예시)
x = 1
while True:
if x > 3:
break
print(x)
x += 1
출력
1
2
3
이렇게 예시를 통해 확인해볼 수 있습니다.
continue란 현재 회차를 건너뛰는걸 말합니다.
예시)
for i in range(1, 6):
if i % 2 == 0:
continue
print(i)
출력
1
3
5
또 다른 예시 있습니다.
예시)
x = 0
while x < 5:
x += 1
if x % 2 == 0:
continue
print(x)
출력
1
3
5
: break 👉 회의 자체 종료
: continue 👉 특정 안건만 건너뜀
[표현식 for 변수 in iterable] 구조로 이루어져 있습니다.
먼저 어떻게 쓰는지 코드 먼저 보겠습니다.
squares = [x**2 for x in range(1,6)]
print(squares)
출력
[1,4,9,16,25]
이 구문은 if문 조건식도 포함할 수 있습니다.
예시)
evens = [x for x in range(10) if x%2==0]
print(evens)
출력
[0,2,4,6,8]
뒤쪽에 if 조건을 붙여 필터링 가능합니다.
이 구문은 for문도 포함이 됩니다.
예시)
gugudan = [f"{i}x{j}={i*j}" for i in range(2,10) for j in range(1,10)]
print(gugudan[:10])
출력
['2x1=2','2x2=4','2x3=6', ...,'2x9=18','3x1=3', ...]
또한 문자열도 처리가 가능합니다.
예시)
text = "hello"
upper_chars = [ch.upper() for ch in text]
print(upper_chars)
출력
['H','E','L','L','O']
이렇게해서 오늘 함수와 흐름 제어에 대해서 알아보았습니다!
조금 복잡한 내용들도 있는 것 같고, 처음 받아들이시기에는 조금 하드(hard)한 난이도의 내용이 아닐까... 생각합니다. 왜냐면 저도 이번에 이번에 공부한 내용이 좀 있었고, 생소했거든요..ㅎㅎ
한번에 이해하고 알아들으신 분 정말 박수와 찬사를 보냅니다. 👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻
오늘 포스터 날짜 기준으로 오늘과 내일 으쌰으쌰하면 황금연휴가 기달리고 있습니다!!
다들 추석 연휴때 계획들을 세우셨는지요
저는 아직 공부하는 입장이라 어디를 딱히 가진 않을 것 같고, 이렇게 글을 쓰면서 열심히 강의를 보며 공부를
할 것 같습니다.
풀 공부하면 얼~~마나 좋게요~ ㅎ핳ㅎㅎ
네
ㅣ
ㅣ
,,
이만 가보도록 하겠습니다. 긴 글을 끝까지 읽어주셔서 감사합니다.
ㅋㅋㅋ 저도 연휴 기간동안 박혀서 공부할 것 같습니다 너무 공감되네요,,,, 그래도 저희 파이팅합시다 ..! 글 잘 읽었습니다😊