5. Python Programming Course : Control Structures

 

# ๐ŸŒŸ Chapter 5. Control Structures (์ œ์–ด๋ฌธ)


"์ œ์–ด๋ฌธ"์ด๋ž€, ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฐ”๊พธ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.

์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์กฐ๊ฑด ๋ถ„๊ธฐ์™€ ๋ฐ˜๋ณต ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


5.1 Conditional Statements (์กฐ๊ฑด๋ฌธ)


if / elif / else ๋ฌธ์ด๋ž€?

> ์–ด๋–ค ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ๋งŒ ํŠน์ • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.


์‚ฌ์šฉ ๋ชฉ์ 

- ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- ์ƒํ™ฉ์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ๋‹ค๋ฅด๊ฒŒ ์ œ์–ดํ•˜๊ณ ์ž ํ•  ๋•Œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.


elif๋ฌธ์ด๋ž€?

> `if` ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์กฐ๊ฑด์„ ์ถ”๊ฐ€๋กœ 

๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.

- `elif`๋Š” "else if"์˜ ์ค„์ž„๋ง์ด๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์—ฐ๋‹ฌ์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ์œ„์—์„œ๋ถ€ํ„ฐ ์กฐ๊ฑด์„ ์ฐจ๋ก€๋กœ ํ‰๊ฐ€ํ•˜๋ฉฐ, ์ฒซ ๋ฒˆ์งธ๋กœ ์ฐธ์ธ ์กฐ๊ฑด์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


else๋ฌธ์ด๋ž€?

> ์œ„์—์„œ ๊ฒ€์‚ฌํ•œ ๋ชจ๋“  ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ธ ๊ฒฝ์šฐ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.

- `else`๋Š” ๋”ฐ๋กœ ์กฐ๊ฑด์„ ์“ฐ์ง€ ์•Š์œผ๋ฉฐ, ๊ทธ ์ž์ฒด๊ฐ€ ๋ชจ๋“  ์กฐ๊ฑด์˜ ๋Œ€์•ˆ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.


์œ ์˜ํ•  ์ 

- `:` ์ฝœ๋ก ์„ ์กฐ๊ฑด๋ฌธ ๋์— ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- ์กฐ๊ฑด๋ฌธ ๋ธ”๋ก ์•ˆ์˜ ์ฝ”๋“œ๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ด์šฉํ•ด ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋ณดํ†ต ๋„์–ด์“ฐ๊ธฐ 4์นธ).


๊ธฐ๋ณธ ๊ตฌ์กฐ

x = 10


if x > 0:

    print("์–‘์ˆ˜์ž…๋‹ˆ๋‹ค")

elif x == 0:

    print("0์ž…๋‹ˆ๋‹ค")

else:

    print("์Œ์ˆ˜์ž…๋‹ˆ๋‹ค")


- ๋ณ€์ˆ˜ `x`์˜ ๊ฐ’์— ๋”ฐ๋ผ ์–‘์ˆ˜, 0, ์Œ์ˆ˜๋ฅผ ํŒ๋‹จํ•˜์—ฌ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.


2. ์ค‘์ฒฉ ์กฐ๊ฑด๋ฌธ

> ์ค‘์ฒฉ ์กฐ๊ฑด๋ฌธ์ด๋ž€, ํ•˜๋‚˜์˜ ์กฐ๊ฑด๋ฌธ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ์กฐ๊ฑด๋ฌธ์„ ํฌํ•จํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด์„ ๊ณ„์ธต์ ์œผ๋กœ ํŒ๋‹จํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

> ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ์กฐ๊ฑด์„ ๋จผ์ € ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ถ”๊ฐ€์ ์ธ ์„ธ๋ถ€ ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.


์ค‘์ฒฉ ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉ ์‹œ ์œ ์˜ํ•  ์ 

- ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ •ํ™•ํžˆ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์€ ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ๋ธ”๋ก์„ ๊ตฌ๋ถ„ํ•˜๋ฏ€๋กœ, ์ค‘์ฒฉ ๊ตฌ์กฐ์—์„œ๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ ๋” ๊นŠ์–ด์ง€๋ฉฐ ์‹ค์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

- ์ค‘์ฒฉ์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ, ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ตฌ์กฐ

score = 85


if score >= 60:

    if score >= 90:

        print("A")

    elif score >= 80:

        print("B")

    else:

        print("C")

else:

    print("F")


- ์ ์ˆ˜๊ฐ€ 60์  ์ด์ƒ์ธ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์‹œ ์„ธ๋ถ€ ๋“ฑ๊ธ‰์„ ๋‚˜๋ˆ  ์ถœ๋ ฅํ•˜๋ฉฐ, 60์  ๋ฏธ๋งŒ์ด๋ฉด 'F'๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.


์—ฐ์Šต๋ฌธ์ œ

1. ์‚ฌ์šฉ์ž์˜ ๋‚˜์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, ์„ฑ์ธ(19์„ธ ์ด์ƒ)์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

2. ์‹œํ—˜ ์ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„, 90์  ์ด์ƒ์ด๋ฉด 'A', 80์  ์ด์ƒ์ด๋ฉด 'B', 70์  ์ด์ƒ์ด๋ฉด 'C', ๊ทธ ์™ธ๋Š” 'F'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.


5.2 Loops (๋ฐ˜๋ณต๋ฌธ)


๋ฐ˜๋ณต๋ฌธ์ด๋ž€?

> ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.


์‚ฌ์šฉ ๋ชฉ์ 

- ๋ฐ์ดํ„ฐ๋‚˜ ์ž‘์—…์„ ๋ฐ˜๋ณต ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

- ์ผ์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋™์•ˆ ๋™์ž‘์„ ๊ณ„์†ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์œ ์˜ํ•  ์ 

- `while` ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์ด ํ•ญ์ƒ True์ด๋ฉด ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ข…๋ฃŒ ์กฐ๊ฑด์„ ๋ช…ํ™•ํžˆ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


for ๋ฃจํ”„๋ž€?

> ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ, ๋ฌธ์ž์—ด ๋“ฑ ์‹œํ€€์Šค ์ž๋ฃŒํ˜•์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์–ด ๋ฐ˜๋ณตํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ณต์˜ ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


1. for ๋ฃจํ”„ (๋ฆฌ์ŠคํŠธ ์ˆœํšŒ)


fruits = ["apple", "banana", "cherry"]


for fruit in fruits:

    print(fruit)


- ๋ฆฌ์ŠคํŠธ `fruits`์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ `fruit`์— ์ €์žฅํ•œ ๋’ค ์ถœ๋ ฅํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.


range() ํ•จ์ˆ˜๋ž€?

> ๋ฐ˜๋ณตํ•  ์ˆซ์ž ๋ฒ”์œ„๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต for๋ฌธ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ •ํ•ด์ง„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.


2. range() ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ


for i in range(5):

    print(i)  # 0๋ถ€ํ„ฐ 4๊นŒ์ง€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.


- `range(5)`๋Š” 0๋ถ€ํ„ฐ 4๊นŒ์ง€ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ ์ˆซ์ž๋ฅผ `i`์— ๋Œ€์ž…ํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


while ๋ฃจํ”„๋ž€?

> ํŠน์ • ์กฐ๊ฑด์ด ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณตํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ๋‚˜, ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ฐ˜๋ณต์„ ์ข…๋ฃŒํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


3. while ๋ฃจํ”„


count = 0


while count < 5:

    print("Count:", count)

    count += 1


- `count`๊ฐ€ 5๋ณด๋‹ค ์ž‘์„ ๋™์•ˆ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค `count`๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œ์ผœ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.


์—ฐ์Šต๋ฌธ์ œ

1. 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋Š” for ๋ฐ˜๋ณต๋ฌธ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

2. 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ ์ง์ˆ˜๋งŒ ์ถœ๋ ฅํ•˜๋Š” while ๋ฐ˜๋ณต๋ฌธ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.



5.3 Loop Control (๋ฐ˜๋ณต ์ œ์–ด๋ฌธ)


๋ฐ˜๋ณต ์ œ์–ด๋ฌธ์ด๋ž€?

> ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ ํ๋ฆ„์„ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜, ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜, ์ž„์‹œ๋กœ ๋น„์›Œ๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.


break๋ž€?

> ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ฐ˜๋ณต์„ ์ฆ‰์‹œ ์ข…๋ฃŒ์‹œํ‚ค๊ณ  ๋ฐ˜๋ณต๋ฌธ ๋ฐ”๊นฅ์œผ๋กœ ๋น ์ ธ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด ๋ฐ˜๋ณต์„ ๋ฉˆ์ถ”๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


1. break (๋ฐ˜๋ณต๋ฌธ ์ค‘๋‹จ)


for i in range(10):

    if i == 5:

        break

    print(i)


- ๋ฐ˜๋ณต ๋„์ค‘ `i`๊ฐ€ 5๊ฐ€ ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ฆ‰์‹œ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ถœ๋ ฅ์€ 0๋ถ€ํ„ฐ 4๊นŒ์ง€ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.


continue๋ž€?

> ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ ํ˜„์žฌ ๋ฐ˜๋ณต๋งŒ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์กฐ๊ฑด์„ ์ œ์™ธํ•˜๊ณ  ๋ฐ˜๋ณตํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


2. continue (์ด๋ฒˆ๋งŒ ๊ฑด๋„ˆ๋›ฐ๊ธฐ)

```python

for i in range(5):

    if i == 2:

        continue

    print(i)

```

- `i`๊ฐ€ 2์ผ ๋•Œ๋Š” ์ถœ๋ ฅ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” 0, 1, 3, 4์ž…๋‹ˆ๋‹ค.


pass๋ž€?

> ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ์•„๋ฌด ์‹คํ–‰๋„ ํ•˜์ง€ ์•Š์•„์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ผ๋‹จ ์ฝ”๋“œ ๋ธ”๋ก์„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ๋‚˜์ค‘์— ์ฑ„์›Œ ๋„ฃ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


3. pass (์•„๋ฌด ๋™์ž‘ ์•ˆ ํ•จ)


for i in range(3):

    pass  # ์•„์ง ๊ตฌํ˜„ํ•˜์ง€ ์•Š์€ ์ž๋ฆฌ ํ‘œ์‹œ์šฉ ์ฝ”๋“œ


- ์•„๋ฌด๋Ÿฐ ์‹คํ–‰ ๋™์ž‘ ์—†์ด ๋ฐ˜๋ณต๋ฌธ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ์ฑ„์›Œ๋„ฃ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์‚ฌ์šฉ ๋ชฉ์ 

- `break`: ๋ฐ˜๋ณต์„ ์ค‘๋‹จํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- `continue`: ํŠน์ • ์กฐ๊ฑด์—์„œ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- `pass`: ์‹คํ–‰ํ•  ๋‚ด์šฉ์ด ์•„์ง ์—†์„ ๋•Œ, ๋ฌธ๋ฒ•์ƒ ์ฝ”๋“œ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ž๋ฆฌ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์—ฐ์Šต๋ฌธ์ œ

1. 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ์ˆซ์ž ์ค‘ 5๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฐ˜๋ณต์„ ๋ฉˆ์ถ”๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

2. 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ์ˆซ์ž ์ค‘ 3์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

3. ๋ฐ˜๋ณต๋ฌธ ์•ˆ์—์„œ pass๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.



5.4 Nested Control Structures (์ค‘์ฒฉ ์ œ์–ด๋ฌธ)


์ค‘์ฒฉ ์ œ์–ด๋ฌธ์ด๋ž€?

> ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ์กฐ๊ฑด๋ฌธ, ์กฐ๊ฑด๋ฌธ ์•ˆ์— ๋ฐ˜๋ณต๋ฌธ ๋“ฑ **์ œ์–ด๋ฌธ์„ ๊ฒน์ณ์„œ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹**์ž…๋‹ˆ๋‹ค.


์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์ด๋ž€?

> ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋˜ ๋‹ค๋ฅธ ๋ฐ˜๋ณต๋ฌธ์ด ๋“ค์–ด ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ด์ค‘ ๋ฐ˜๋ณต์„ ํ†ตํ•ด 2์ฐจ์› ๊ตฌ์กฐ๋‚˜ ๊ณฑ์…ˆ ํ‘œ ๋“ฑ ๋ณต์žกํ•œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


1. ์ค‘์ฒฉ for ๋ฃจํ”„

```python

for i in range(1, 4):

    for j in range(1, 4):

        print(i, "x", j, "=", i * j)


- ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ i์™€ j์˜ ๊ณฑ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๊ตฌ๋‹จ ์ผ๋ถ€์ฒ˜๋Ÿผ 3 x 3 ๊ณฑ์…ˆ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ํ•จ๊ป˜ ์“ฐ๋Š” ๊ฒฝ์šฐ

> ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์กฐ๊ฑด์„ ๋‹ฌ๋ฆฌ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋•Œ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ™€์ˆ˜์™€ ์ง์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋ง ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.


2. ์กฐ๊ฑด๋ฌธ + ๋ฐ˜๋ณต๋ฌธ


for num in range(1, 6):

    if num % 2 == 0:

        print(num, "์€ ์ง์ˆ˜์ž…๋‹ˆ๋‹ค")

    else:

        print(num, "์€ ํ™€์ˆ˜์ž…๋‹ˆ๋‹ค")


- ์ˆซ์ž `num`์„ 1๋ถ€ํ„ฐ 5๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ง์ˆ˜์ธ์ง€ ํ™€์ˆ˜์ธ์ง€ ์กฐ๊ฑด์„ ํŒ๋ณ„ํ•˜์—ฌ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


์œ ์˜ํ•  ์ 

- ์ฝ”๋“œ ๊ตฌ์กฐ๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์ด๋„๋ก ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ์ •ํ™•ํžˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

- ์ค‘์ฒฉ์˜ ๊นŠ์ด๊ฐ€ ๋„ˆ๋ฌด ๊นŠ์–ด์ง€๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๋ฏ€๋กœ, ๊ฐ€๊ธ‰์  ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


์—ฐ์Šต๋ฌธ์ œ

1. ๊ตฌ๊ตฌ๋‹จ์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

2. 1๋ถ€ํ„ฐ 100๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ 3๊ณผ 5์˜ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.




๋Œ“๊ธ€

  1. for๋ฌธ๊ณผ while๋ฌธ ๋ชจ๋‘ ๋ฐ˜๋ณต์„ ์œ„ํ•ด ์“ฐ์ด์ง€๋งŒ, ๋‘ ๋ฌธ๋ฒ•์„ ์„ ํƒํ•  ๋•Œ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋” ๊ตฌ์ฒด์ ์ธ ํŒ๋‹จ ๊ธฐ์ค€์ด ์žˆ์„๊นŒ์š”?

    ๋‹ต๊ธ€์‚ญ์ œ
  2. 1. "์ค‘์ฒฉ์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋ฏ€๋กœ, ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ„๋‹จํ•œ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค."๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ๋ ค์ฃผ์…จ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.
    2. for๋ฌธ ์•ˆ์— if๋ฌธ์„ ๋„ฃ๋Š” ๊ฒƒ๊ณผ, if๋ฌธ ์•ˆ์— for๋ฌธ์„ ๋„ฃ๋Š” ๊ฑด ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

    ๋‹ต๊ธ€์‚ญ์ œ
  3. 1. ์œ„์— ๋‚ด์šฉ์ค‘์— for๋ฌธ์ด ๋ฆฌ์ŠคํŠธ ์ˆœํšŒ ๋˜๋Š” range()๋ฅผ ์‚ฌ์šฉํ•œ ๋ฃจํ”„๋ฅผ ๋„๋Š” ๋ฐฉ์‹๋งŒ ๋ณด์ด๋Š”๋ฐ, ๋‹ค๋ฅธ ์–ธ์–ด์ฒ˜๋Ÿผ ๋ณ€์ˆ˜ ์„ ์–ธ ํ›„, ๊ทธ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด์„œ ๋ฃจํ”„๋ฅผ ๋„๋Š” ๋ฐฉ์‹์€ ์—†๋Š”๊ฑด๊ฐ€์š”?

    2. pass๋Š” "์‹คํ–‰ํ•  ๋‚ด์šฉ์ด ์•„์ง ์—†์„ ๋•Œ ๋ฌธ๋ฒ•์ƒ ์ฝ”๋“œ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ž๋ฆฌ์— ์‚ฌ์šฉํ•œ๋‹ค"๋ผ๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ, ๋‹จ์ˆœํžˆ ์ฃผ์„์ฒ˜๋ฆฌ๋กœ ๋น„์›Œ๋‘์ง€ ์•Š๊ณ  pass๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์ด์œ ๊ฐ€ ๊ถ๊ตผํ•ฉ๋‹ˆ๋‹ค.

    3. ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” for๋ฌธ ์•ˆ์—์„œ ์ฆ๊ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ง์ ‘ ํ•ด์ค˜์•ผ ๋ฃจํ”„๊ฐ€ ์ง„ํ–‰๋˜๋Š”๋ฐ,
    ์œ„์— ์ค‘์ฒฉ for๋ฌธ ์˜ˆ์‹œ์—์„œ๋Š” ๋ณ„๋„๋กœ i++ ๊ฐ™์€ ์ฆ๊ฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•˜๋Š”๋ฐ๋„ ์ž๋™์œผ๋กœ(?)๋ฐ˜๋ณต์ด ์‹คํ–‰๋˜๋Š”๋ฐ, ์–ด๋–ป๊ฒŒ ๋ฐ˜๋ณต์ด ์ง„ํ–‰๋˜๋Š”๊ฑด์ง€ ๊ถ๊ตผํ•ฉ๋‹ˆ๋‹ค!

    ๋‹ต๊ธ€์‚ญ์ œ
  4. 1.elif๋ฌธ์—์„œ elif๋ฅผ ์—ฐ๋‹ฌ์•„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜์…จ๋Š”๋ฐ ์—ฐ๋‹ฌ์•„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์–ด๋А์ •๋„๊นŒ์ง€์˜ ๋ฒ”์œ„์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

    2. for๋ฌธ์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋“ค๋ณด๋‹ค ๋ณด๊ธฐ์—๋Š” ์œ ์—ฐํ•˜๊ฒŒ ๋งŽ์ด ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฒƒ๊ฐ™์€๋ฐ์š” ์ค‘์ฒฉ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ• ๋•Œ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ์‹œ ์œ„์น˜๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๋Š”๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ• ๊ฒƒ๊ฐ™์€๋ฐ ์‰ฝ๊ฒŒ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์ด ๋”ฐ๋กœ ์žˆ์„๊นŒ์š”?
    ๋˜ํ•œ,๋‹ค๋ฅธ์–ธ์–ด ํ”„๋กœ๊ทธ๋žจ์—์„œ๋„ ํŒŒ์ด์ฌ์—์„œ์™€ ๊ฐ™์ด ๊ธฐ๋Šฅ์ด ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ฐจ์ด์ ๋„ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค

    ๋‹ต๊ธ€์‚ญ์ œ

๋Œ“๊ธ€ ์“ฐ๊ธฐ

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

Python ์˜ฌ์ธ์› ๊ฐ•์ขŒ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๊นŒ์ง€ ์™„๋ฒฝ ์ •๋ฆฌ!

7. Python Programming Course : Working with Files

4. Python Programming Course : Data Structures