๐Ÿ’ปPython :: function

์œผ๋‹ยท2022๋…„ 11์›” 30์ผ
0

Study

๋ชฉ๋ก ๋ณด๊ธฐ
8/14

๐Ÿ“‚ํ•จ์ˆ˜(function)

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

def ํ•จ์ˆ˜์ด๋ฆ„(์ž…๋ ฅ๊ฐ’ parameter):
	์ˆ˜ํ–‰ ๋ฌธ์žฅ

๋งค๊ฐœ๋ณ€์ˆ˜(parameter)-> ํ•จ์ˆ˜์˜ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›๋Š” ๋ณ€์ˆ˜
์ธ์ˆ˜(arguments)-> ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌํ•˜๋Š” ์ž…๋ ฅ๊ฐ’

def add(a,b): ->a,b parameter
add(3,4) ->3,4 arguments

๐Ÿ“Œํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

  • ์ž…๋ ฅ๊ฐ’๊ณผ ๊ฒฐ๊ณผ๊ฐ’์ด ์กด์žฌ
def ํ•จ์ˆ˜ ์ด๋ฆ„(parameter):
	์ˆ˜ํ–‰ ๋ฌธ์žฅ
    return ๊ฒฐ๊ณผ๊ฐ’
๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›์„ ๋ณ€์ˆ˜=ํ•จ์ˆ˜์ด๋ฆ„(parameter1,parameter2...)
  • ์ž…๋ ฅ๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜
def ํ•จ์ˆ˜ ์ด๋ฆ„()
	return ๊ฒฐ๊ณผ๊ฐ’
๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ›์„ ๋ณ€์ˆ˜=ํ•จ์ˆ˜์ด๋ฆ„()
#์ฃผ๋กœ printํ•  ๋•Œ ์‚ฌ์šฉ

def say():
   return 'Hello'
>>>a=say()
>>>print(a)
Hi
  • ๊ฒฐ๊ณผ๊ฐ’์ด ์—†๋Š” ํ•จ์ˆ˜
def ํ•จ์ˆ˜์ด๋ฆ„(parameter):
	์ˆ˜ํ–‰๋ฌธ์žฅ
ํ•จ์ˆ˜์ด๋ฆ„(parameter1,parameter2...)
return์ด ์—†์Œ

>>>def add(a,b):
    print("%d, %d์˜ ํ•ฉ์€ %d์ž…๋‹ˆ๋‹ค."%(a,b,a+b))
>>>add(3,4)
3,4์˜ ํ•ฉ์€ 7์ž…๋‹ˆ๋‹ค.

>>>a=add(3,4)
>>>print(a)
None
#addํ•จ์ˆ˜ ์•ˆ์˜ print๊ฐ€ ๊ธฐ๋Šฅํ•  ๋ฟ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ์•„๋‹˜.
#return value๊ฐ€ None. print๋งŒ ์ˆ˜ํ–‰.
  • ์ž…๋ ฅ๊ฐ’๋„ ๊ฒฐ๊ณผ๊ฐ’๋„ ์—†๋Š” ํ•จ์ˆ˜
>>>def say():
	print('Hello')
    
>>>say()
Hello
#ํ•จ์ˆ˜์ด๋ฆ„() ์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ

<๋งค๊ฐœ๋ณ€์ˆ˜ ์ง€์ •ํ•˜์—ฌ ํ˜ธ์ถœํ•˜๊ธฐ>
a,b๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” addํ•จ์ˆ˜์— ๋Œ€ํ•˜์—ฌ
result=add(a=3,b=7) ํ˜•ํƒœ๋กœ ์ง€์ • ๊ฐ€๋Šฅ

์ž…๋ ฅ์ด ๋ช‡ ๊ฐœ๊ฐ€ ๋ ์ง€ ๋ชจ๋ฅผ ๋•Œ

def ํ•จ์ˆ˜์ด๋ฆ„(*๋งค๊ฐœ๋ณ€์ˆ˜):
์ž…๋ ฅ๊ฐ’์„ ์ „๋ถ€ ๋ชจ์•„์„œ ํŠœํ”Œ๋กœ ๋งŒ๋“ฆ.

ํ‚ค์›Œ๋“œ ํŒŒ๋ผ๋ฏธํ„ฐ

def ํ•จ์ˆ˜์ด๋ฆ„(**๋งค๊ฐœ๋ณ€์ˆ˜):
๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ๋˜๊ณ  ๋ชจ๋“  key=value ํ˜•ํƒœ์˜ ๊ฒฐ๊ด๊ฐ’์ด ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅ๋จ. ์ž…๋ ฅ๊ฐ’์ด ๋ช‡๊ฐœ๋“  ์ƒ๊ด€ ์—†์Œ.

๋งค๊ฐœ๋ณ€์ˆ˜์— ์ดˆ๊นƒ๊ฐ’ ๋ฏธ๋ฆฌ ์„ค์ •

def say(name,old,woman=True):
ํ•จ์ˆ˜ ํ˜ธ์ถœํ•  ๋•Œ woman์€ ๋นผ๊ณ  2๊ฐœ๋งŒ ์ง€์ •ํ•ด์ค˜๋„ ์ž๋™์œผ๋กœ true๊ฐ’์„ ๊ฐ€์ง.
say('daeun',22) woman์€ ์ดˆ๊นƒ๊ฐ’ true๋ฅผ ๊ฐ€์ง
say('daeun',22,false) ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์ค„ ์ˆ˜๋„ ์žˆ์Œ.
ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ง€์ •ํ•ด์„œ ์ดˆ๊นƒ๊ฐ’์„ ์„ค์ •

๋งค๊ฐœ๋ณ€์ˆ˜ ์ง€์ •ํ•˜์—ฌ ํ˜ธ์ถœํ•˜๊ธฐ

>>>def add(a,b):
	return a+b

>>> result=add(a=2,b=5) #a์— 2, b์— 5๋ฅผ ์ „๋‹ฌ. ์ˆœ์„œ์— ์ƒ๊ด€x
>>>print(result)

๐Ÿ“Œํ•จ์ˆ˜ ์ฃผ์˜์‚ฌํ•ญ

  • ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์€ ์–ธ์ œ๋‚˜ ํ•˜๋‚˜

def addmul(a,b)
	return a+b,a*b
addmul(3,4) #tuple๋กœ (a+b,a*b)์˜ ๊ฐ’์„ ๊ฐ€์ง.
result1,result2=addmul(3,4) #result1=7, result2=12
return ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฐ”๋กœ ๋น ์ ธ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Œ.

ํ•จ์ˆ˜ ์ •์˜ 
  • ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ด๋†“์€ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋’ค์— ์ดˆ๊นƒ๊ฐ’์„ ์„ค์ •ํ•ด๋†“์ง€ ์•Š์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค

  • ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๋ณ€์ˆ˜๋ฅผ ํ•จ์ˆ˜ ๋ฐ–์—์„œ ์‚ฌ์šฉํ•  ๋–„

  • global ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ global a ๊ฐ™์€ ์‹์œผ๋กœ ์“ฐ๋ฉด ๋จ.(๋น„์ถ”์ฒœ)

lambda

add=lambda a,b : a+b
ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ, def์™€ ๋™์ผํ•œ ์—ญํ• ์ธ๋ฐ ํ•œ ์ค„๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ

Python build-in functions ๋‚ด์žฅํ•จ์ˆ˜

์™ธ๋ถ€ ๋ชจ๋“ˆ๊ณผ ๋‹ฌ๋ฆฌ import๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ.

>>>abs(-9)
9 //์ ˆ๋Œ€๊ฐ’ ๋‚˜ํƒ€๋ƒ„
>>> all([1,2,3])
true
all(x) : ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•(for๋ฌธ์œผ๋กœ ๊ฐ’์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋ฌธ์ž์—ด, ๋”•์…”๋„ˆ๋ฆฌ, ์ง‘ํ•ฉ ๋“ฑ)
์„ ์ž…๋ ฅ ์ธ์ˆ˜๋กœ ๋ฐ›๊ณ  ์ž๋ฃŒํ˜•์˜ ์ฐธ๊ฑฐ์ง“์— ๋”ฐ๋ผ
x๊ฐ€ ๋ชจ๋‘ ์ฐธ์ด๋ฉด true ๊ฑฐ์ง“์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด false
>>>any(x) x์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด ์žˆ์œผ๋ฉด true x๊ฐ€ ๋ชจ๋‘ ๊ฑฐ์ง“์ผ ๋•Œ์—๋งŒ false
chr(i) ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅ
>>>pow(3,2)
9 //์•ž์ด ๋ฐ‘, ๋’ค์—๊ฐ€ ์ง€์ˆ˜
>>>pow(2,4,3)
1 // 2**4%3
>>>round(-3.5)
-4 //๋ฐ˜์˜ฌ๋ฆผ
>>>round(3.141592,2)
3 // ์†Œ์ˆ˜์  2๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ
>>>int(34.6)
34// ๋ณ€์ˆ˜ type์„ ํ•จ์ˆ˜๋กœ์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

help(ํ•จ์ˆ˜์ด๋ฆ„)->๊ทธ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ์ •๋ณด ์ถœ๋ ฅ

id(object)->๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ ธ์˜ด

Local variables

>>> def quadrtic(a,b,c,x): #fuction header 
    first=a*x**2
    second=b*x
    third=c
    return first+second+third #function body

#fist, second, third๋Š” quadratic ํ•จ์ˆ˜์˜ ์ง€์—ญ๋ณ€์ˆ˜

>>> quadratic(a,b,c,x)
18 #function call

ํŒŒ์ด์ฌ์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ•  ๋•Œ ํ˜ธ์ถœ์„ ์œ„ํ•ด ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ namespace์— ์ €์žฅ-> ํ•จ์ˆ˜ return์‹œ namespace๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€


  • ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜
def convert_to_celsius(fahrenheit):
	return (fahrenheit-32) * 5/9
  • ๊ธฐ๋ณธ๊ตฌ์กฐ : def ํ•จ์ˆ˜์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜ parameter):
    function definition์„ ์‹คํ–‰->function object ์ƒ์„ฑ->ํ•จ์ˆ˜ ํ˜ธ์ถœ
    def๋Š” ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉx
    ๋งค๊ฐœ๋ณ€์ˆ˜(parameter)->ํ•จ์ˆ˜์— ์ž…๋ ฅ์œผ๋กœ ์ „๋‹ฌ๋œ ๊ฐ’์„ ๋ฐ›๋Š” ๋ณ€์ˆ˜
    ์ธ์ˆ˜(arguments)-> ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌํ•˜๋Š” ์ž…๋ ฅ๊ฐ’

//์ผ์ •์นธ ๋„์šฐ๊ธฐ: ๋ฐ‘ ์ฝ”๋“œ๊ฐ€ ์œ— ์ฝ”๋“œ์— ์ข…์†๋  ๋•Œ 4์นธ space
์—๋Ÿฌ์ฃผ์˜) ์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜, ํ•จ์ˆ˜ ๋‚ด๋ถ€ ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœx.
ํ•จ์ˆ˜ ์žฌ์ •์˜ ๊ฐ€๋Šฅ!

  • ์ฃผ์„์ฒ˜๋ฆฌ: ํ•œ ์ค„ ์งœ๋ฆฌ #, ์—ฌ๋Ÿฌ์ค„ """๋‚˜ '''

  • ํ•จ์ˆ˜ ์ž˜ ๋งŒ๋“œ๋Š” ๋ฒ•
    -ํ•จ์ˆ˜ ์ด๋ฆ„, ์ž…๋ ฅ๊ฐ’, ์ถœ๋ ฅ๊ฐ’, function body ๋ช…ํ™•ํ•˜๊ฒŒ.

    print

    print("life" "is" "suck")
    ->lifeissuck ์ถœ๋ ฅ
    print("life","is","suck")
    ->life is suck ์ถœ๋ ฅ

    ํ•œ ์ค„์— ๊ฒฐ๊ณผ๊ฐ’ ์ถœ๋ ฅํ•˜๊ธฐ

    for i in range(10):
    	print(i,end=' ')
     
     0 1 2 3 4 5 ....  ์ถœ๋ ฅ
profile
์•„์ด์ฟ 

0๊ฐœ์˜ ๋Œ“๊ธ€

Powered by GraphCDN, the GraphQL CDN