๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ | Python/ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•

ํ•จ์ˆ˜_(2)

by KASSID 2021. 9. 20.

๋ชฉ์ฐจ

    728x90

    ์ด๋ฒˆ์—” ํ•จ์ˆ˜ 2๋ฒˆ์งธ ์ด์•ผ๊ธฐ

     

     

    ๋งค๊ฐœ๋ณ€์ˆ˜&์ธ์ˆ˜

    ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)์™€ ์ธ์ˆ˜(argument)๋Š” ์•„์ฃผ ๋น„์Šทํ•ด์„œ ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฝ๋‹ค!

    def func(a,b):
    	return a+b
        
    v = func(x,y)

    ์œ„์˜ ์˜ˆ์‹œ์—์„œ

    ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)๋Š” a,b / ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜จ ๊ฐ’์„ ๋ฐ›๋Š” ๋ณ€์ˆ˜์ด๋‹ค.

    ์ธ์ˆ˜(argument)๋Š” x,y / ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌํ•˜๋Š” ์ž…๋ ฅ๊ฐ’์ด๋‹ค.

    ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค!

     

    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

     

    ๊ธฐ๋ณธ๊ฐ’

    ๊ธฐ๋ณธ๊ฐ’์ด๋ž€ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ดˆ๊ธฐ ์„ค์ •ํ•ด์ค€ ๊ฐ’์„ ์ด์•ผ๊ธฐํ•œ๋‹ค.

    def profile(name, age, team = "ManUtd"):
    |	print(f"์ด๋ฆ„ : {name} | age : {age} | team = {team}")

    ์œ„ ์˜ˆ์‹œ๋Š” name, age, team 3๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ค‘ team๋ณ€์ˆ˜์— ๋ฏธ๋ฆฌ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ด์ค€ ๊ฒƒ์ด๋‹ค.

    ๋งŒ์•ฝ team์— ์ž…๋ ฅ๊ฐ’์„ ์ฃผ์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ์‚ฌ์ „ ์„ค์ •๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

     

    profile("๋ธŒ๋ฃจ๋…ธ ํŽ˜๋ฅด๋‚œ๋ฐ์Šค",27)
    profile("๋ธŒ๋ฃจ๋…ธ ํŽ˜๋ฅด๋‚œ๋ฐ์Šค",27,"ManUtd")
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    ์ด๋ฆ„ : ๋ธŒ๋ฃจ๋…ธ ํŽ˜๋ฅด๋‚œ๋ฐ์Šค | age : 27 | team = ManUtd
    ์ด๋ฆ„ : ๋ธŒ๋ฃจ๋…ธ ํŽ˜๋ฅด๋‚œ๋ฐ์Šค | age : 27 | team = ManUtd

    ์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

     

     

    ์ฃผ์˜ํ•ด์•ผ ํ•  ์ 

    def profile(team="ManUtd", name, age):
    |	print(f"์ด๋ฆ„ : {name} | age : {age} | team = {team}")

    ์ด๋ฒˆ ์˜ˆ์‹œ๋Š” ์ „๊ณผ ๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค. ๋ฐ”๋กœ ๊ธฐ๋ณธ๊ฐ’์„ ๋ถ€์—ฌํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์œ„์น˜์ด๋‹ค.

     

    ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด?

    profile("๋ธŒ๋ฃจ๋…ธ ํŽ˜๋ฅด๋‚œ๋ฐ์Šค",27)
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    SyntaxError: non-default argument follows default argument

    ์ง  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค!

    ์˜ค๋ฅ˜ ๋‚ด์šฉ์€ '๊ธฐ๋ณธ๊ฐ’X์ธ์ˆ˜๊ฐ€ ๊ธฐ๋ณธ๊ฐ’O์ธ์ˆ˜์˜ ๋’ค์— ์žˆ๋‹ค!'๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

    ์ฆ‰ ๊ธฐ๋ณธ๊ฐ’์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•ญ์ƒ ๋’ค์ชฝ์œผ๋กœ ์™€์•ผ ํ•œ๋‹ค!

     

    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

    ๋ฆฌํ„ด๊ฐ’

    - ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์€ ํ•ญ์ƒ ํ•˜๋‚˜์ด๋‹ค!

    def num(a,b):
        return a+b, a-b
    
    print(num(2,1))
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    (3,1)

    ํ•จ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ํŠœํ”Œ ํ˜•ํƒœ์˜ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

    x,y = num(2,1)
    print(x, y)
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    3 1

    ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    - ํ•จ์ˆ˜๋Š” return์„ ๋งŒ๋‚จ๊ณผ ๋™์‹œ์— ํƒˆ์ถœํ•œ๋‹ค!

    def num(a,b):
        return a+b
        return a-b
    print(num(2,1))
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    3

    ์œ„์˜ ์˜ˆ์‹œ๋กœ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋‘ ๋ฒˆ์งธ return์˜ ๊ฒฐ๊ณผ๋Š” ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.

     

    (์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•!)

    def pick(champ):
        if champ == 'ํ‹ฐ๋ชจ':
            return
        print(f"์ž ์ด๋ฒˆ ํŒ์€ {champ}๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.")
    
    pick('ํ‹ฐ๋ชจ')
    pick('์ด๋ ๋ฆฌ์•„')
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    ์ž ์ด๋ฒˆ ํŒ์€ ์ด๋ ๋ฆฌ์•„๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์œ„ ์ฒ˜๋Ÿผ ์–ด๋–ค ํŠน์ • ๊ฐ’์„ ๋งŒ๋‚ฌ์„ ๋•Œ ๋ฐ”๋กœ ํ•จ์ˆ˜๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค!

    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก

     

    lamda

    ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ํ•˜๋‚˜ ๋” ์žˆ๋‹ค. ๋ฐ”๋กœ lamda์ด๋‹ค.

    ์ด๊ฒƒ์€ ๋ณดํ†ต def๋ฅผ ์“ธ ์ •๋„๋กœ ๋ณต์žกํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ def๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ณณ์—์„œ ์“ฐ์ธ๋‹ค๊ณ  ํ•œ๋‹ค.

     

    ์‚ฌ์šฉ๋ฒ•)

    lamda ๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2, ... : ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด์šฉ ํ‘œํ˜„์‹
    sum = lamda a, b: a+b
    result = sum(1,2)
    print(result)
    ใ…กใ…กใ…กใ…กใ…กใ…กใ…กใ…ก
    3

     

     

    ๋Œ“๊ธ€