Skip to content

Latest commit

ย 

History

History
143 lines (83 loc) ยท 5.41 KB

File metadata and controls

143 lines (83 loc) ยท 5.41 KB

[Python] BASIC 5. ํ•จ์ˆ˜

์˜ค๋Š˜์€ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค. ํ•จ์ˆ˜๋ž€ ๋ญ˜๊นŒ์š”?

์ˆ˜ํ•™์—์„œ ๋ฐฐ์šด ํ•จ์ˆ˜์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ํ•จ์ˆ˜๋Š” ๊ฐœ๋…์ด ์•ฝ๊ฐ„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋ž€, ์ฝ”๋“œ๋ฅผ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ฌถ์–ด๋‘” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋Š” ๊ทธ ๊ธฐ๋Šฅ ์ž์ฒด๊ฐ€ ํ•จ์ˆ˜์˜ ์กด์žฌ๋ชฉ์ ์ด ๋ฉ๋‹ˆ๋‹ค.

์•„์ง ์ดํ•ด๋˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ €๊ฒƒ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ณ  ์จ ๋ณด๋ฉฐ ์ดํ•ดํ•ด ๋ด…์‹œ๋‹ค.

ํ•จ์ˆ˜์˜ ์ •์˜

image

์ˆ˜ํ•™์ตํž˜์ฑ…์—์„œ ๋งŽ์ด ๋ดค๋˜ ๊ทธ๋ฆผ

์œ„๋Š” ์ธ์ž์— 2๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ๋Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

5๋ฅผ ๋„ฃ์œผ๋ฉด 10์„ ์ถœ๋ ฅ ํ•  ๊ฒ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์ด์ž ๋ชฉ์ ์€ ์ธ์ž์— 2๋ฅผ ๊ณฑํ•ด ๋Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋Š” ์™œ ํ•„์š”ํ• ๊นŒ์š”?

ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž์ฒด์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ณผ์ผ์ฃผ์Šค ์ง‘์—์„œ ์ผ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

๋”ธ๊ธฐ์ฃผ์Šค, ๋ฐ”๋‚˜๋‚˜์ฃผ์Šค, ํ‚ค์œ„์ฃผ์Šค ์ฃผ๋ฌธ์ด ๋“ค์–ด์™”๋‹ค๊ณ  ํ•ด์„œ ๊ฐ ๊ณผ์ผ๋งˆ๋‹ค ๋ฏน์„œ๊ธฐ๋ฅผ ๋”ฐ๋กœ ๊ตฌ๋งคํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ์š”?

์•„๋‹ˆ๊ฒ ์ฃ . ์šฐ๋ฆฌ๋Š” ๋ฏน์„œ๊ธฐ ํ•œ ๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ๋”ธ๊ธฐ๋ฅผ ๋„ฃ์–ด ๋”ธ๊ธฐ์ฃผ์Šค๋ฅผ, ๋ฐ”๋‚˜๋‚˜๋ฅผ ๋„ฃ์–ด ๋ฐ”๋‚˜๋‚˜ ์ฃผ์Šค๋ฅผ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์ด๋Ÿฐ ๋ฏน์„œ๊ธฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ๊ณผ์ผ๋งˆ๋‹ค ์ „์šฉ๋ฏน์„œ๊ธฐ๋ฅผ ๊ตฌ๋งคํ•˜์ง€ ์•Š์•„๋„ ๋˜๋‹ˆ๊นŒ ๋น„์šฉ์ด ์ ˆ๊ฐ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์จ์ฃผ์ง€ ์•Š์•„๋„ ๋˜๋‹ˆ ์ฝ”๋“œ์˜ ์–‘์ด ํ™•์‹คํžˆ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

2. ์ฝ”๋“œ๋ฅผ ์ž‘๊ฒŒ ์ชผ๊ฐœ ์ผ๋ชฉ์š”์—ฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์„ค๋ช…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํƒ€๊ทธ๋žจ์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

image

์šฐ๋ฆฌ๋Š” ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฉ์–ด๋ฆฌ๋กœ ๋ฌถ์–ด ์—„์ฒญ๋‚˜๊ฒŒ ๊ธด ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ฒ ์ฃ .

์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฉด ํฐ ๋ฉ์–ด๋ฆฌ๋ฅผ ๋’ค์ ์—ฌ์„œ ์–ด๋””๊ฐ€ ํ‹€๋ ธ๋Š”์ง€ ์ฐพ๊ณ  ๊ณ ์ณ์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

image

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์„ ์ชผ๊ฐœ์„œ ๊ฐ๊ฐ์˜ ํ•จ์ˆ˜๋กœ ๋งŒ๋“ค์–ด ๋‘”๋‹ค๋ฉด ์ง๊ด€์ ์ด๊ณ  ์ˆ˜์ •์ด ์‰ฌ์šด ์ฝ”๋“œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๋˜ํ•œ ์–ด๋А ํ•จ์ˆ˜์—์„œ ๋ฐœ์ƒํ•˜๋Š”์ง€๋งŒ ์ฐพ๋Š”๋‹ค๋ฉด ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿผ! ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

# ํ•จ์ˆ˜์˜ ๊ตฌ์„ฑ
def ํ•จ์ˆ˜์ด๋ฆ„(์ธ์ž) :
		์‹คํ–‰์ฝ”๋“œ
		๋ฆฌํ„ด๊ฐ’

# ๋ฆฌํ„ด๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜
def printHello(name) :
		print(name)

# ๋ฆฌํ„ด๊ฐ’์ด ์žˆ๋Š” ํ•จ์ˆ˜
def sumNumber(num1,num2) :
		return num1 + num2

def๋Š” define์˜ ์ค„์ž„๋ง๋กœ, ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.

์ธ์ž๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜ ์ด๋ฆ„์„ ์ •์˜ํ•˜๊ณ  ๊ทธ ์•ˆ์— ํ•จ์ˆ˜ ๋‚ด์—์„œ ์‹คํ–‰ํ•  ์ฝ”๋“œ์™€ ๋ฆฌํ„ด๊ฐ’์„ ์ ์–ด์ฃผ๋Š” ๊ฒŒ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋Š” ์ธ์ž๋ผ๋Š” ์žฌ๋ฃŒ๋ฅผ ๋ฐ›์•„ ์‹คํ–‰์ฝ”๋“œ๋ฅผ ๊ฑฐ์น˜๊ณ  ๋ฆฌํ„ด๊ฐ’์„ ๋งŒ๋“ค์–ด ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

๋ฆฌํ„ด๊ฐ’์ด๋ž€ ํ•จ์ˆ˜๊ฐ€ ์ œ ๊ธฐ๋Šฅ์„ ๋‹ค ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌํ„ด๊ฐ’์€ ์—†๊ฑฐ๋‚˜ ๋‹จ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋ณ€์ˆ˜์˜ ๋ฒ”์œ„

ํ•จ์ˆ˜๋Š” ๋…๋ฆฝ์ ์ธ ํ•˜๋‚˜์˜ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜๊ฐ€ ์กด์žฌํ•  ๋•Œ ๊ทธ ํ•จ์ˆ˜๋“ค์€ ๊ฐ๊ฐ ๊ทธ ํ•จ์ˆ˜๋งŒ์˜ ์„ธ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ๊ฐ์˜ ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์˜ํ–ฅ๋ ฅ์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋ฅผ ์ง€์—ญ๋ณ€์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ง€์—ญ๋ณ€์ˆ˜๋Š” ์ „์ฒด ์˜์—ญ์ด๋‚˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜์—๊ฒŒ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ์˜์—ญ์—์„œ ์˜ํ–ฅ๋ ฅ์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋ฅผ ์ „์—ญ๋ณ€์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ๋ฐ”๊นฅ์— ์„ ์–ธํ•˜๊ฑฐ๋‚˜, ํ•จ์ˆ˜ ์•ˆ์—์„œ global ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ „์—ญ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์ „์—ญ๋ณ€์ˆ˜, ์ง€์—ญ๋ณ€์ˆ˜ ์ดํ•ดํ•˜๊ธฐ

a = 2

def test() :
    global b 
    b = 34
    c = 50
    print("inside test", a)
    print("inside test", b)
    print("inside test", c)

test()
print("after test", a)
print("after test", b)
print("after test", c)

์ž, ์†Œ์Šค๋ฅผ ๋ด…์‹œ๋‹ค.

a๋Š” ํ•จ์ˆ˜ ๋ฐ”๊นฅ์— ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ์ „์—ญ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  b๋Š” ํ•จ์ˆ˜ ์•ˆ์— global ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์„ ์–ธ๋œ ์ „์—ญ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  c๋Š” ํ•จ์ˆ˜ ์•ˆ์— ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์œ„์ฒ˜๋Ÿผ ํƒ€์ดํ•‘ํ•˜๊ณ  ์‹คํ–‰ํ•ด๋ด…์‹œ๋‹ค.

image์ถ”๊ฐ€

a์™€ b๋Š” ์ „์—ญ๋ณ€์ˆ˜์ด๋‹ˆ ํ•จ์ˆ˜ ์•ˆ์—์„œ๋‚˜ ๋ฐ”๊นฅ์—์„œ๋‚˜ ๊ฐ’์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ c๋Š” ํ•จ์ˆ˜๋‚ด์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜์ด๋‹ˆ ํ•จ์ˆ˜ ๋ฐ”๊นฅ์—์„œ ๊ฐ’์„ ์ฐพ์ง€ ๋ชปํ•ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

image์ถ”๊ฐ€

์ „์—ญ๋ณ€์ˆ˜๋Š” ์ง€์–‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๋Šฅ๋ณ„๋กœ ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค.
์ „์—ญ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋“ค์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๊ณ  ๊ฒฐ๊ตญ ํ•จ์ˆ˜์˜ ์˜๋ฏธ์ž์ฒด๋ฅผ ๋ถˆํ™•์‹คํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์—ญ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ๋„ ์žˆ๊ตฌ๋‚˜, ํ•˜์ง€๋งŒ ๊ผญ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒŒ ์ข‹๋‹ค! ํ•˜๊ณ  ์ดํ•ดํ•˜์‹œ๋ฉด ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.