Python

[Python] ν•¨μˆ˜ - μž…λ ₯값이 λͺ‡ κ°œκ°€ 될지 λͺ¨λ₯Ό λ•Œ

μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 3. 20. 01:44
λ°˜μ‘ν˜•

νŒŒμ΄μ¬μ€ 이런 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 방법을 μ œκ³΅ν•œλ‹€.

def ν•¨μˆ˜μ΄λ¦„(*λ§€κ°œλ³€μˆ˜):
   μˆ˜ν–‰ν•  λ¬Έμž₯
   ...

 

 

-μ—¬λŸ¬ 개의 μž…λ ₯값을 λ°›λŠ” ν•¨μˆ˜ λ§Œλ“€κΈ°

>>> def add_many(*args):
...     result = 0
...     for i in args:
...         result = result + i  # *args에 μž…λ ₯받은 λͺ¨λ“  값을 λ”ν•œλ‹€
...     return result
...
>>>

*μ—¬κΈ°μ„œ *argsλŠ” μž„μ˜λ‘œ μ •ν•œ λ³€μˆ˜ 이름이닀.

*args처럼 λ§€κ°œλ³€μˆ˜ 이름 μ•žμ— *을 뢙이면 μž…λ ₯값을 μ „λΆ€ λͺ¨μ•„μ„œ νŠœν”Œλ‘œ λ§Œλ“€μ–΄ μ€€λ‹€.

 

<ν•¨μˆ˜λ₯Ό μ μš©ν•œ 것>

>>> result = add_many(1,2,3)  # add_many ν•¨μˆ˜μ˜ 결괏값을 result λ³€μˆ˜μ— λŒ€μž…
>>> print(result)
6
>>> result = add_many(1,2,3,4,5,6,7,8,9,10)
>>> print(result)
55

 

 

μ—¬λŸ¬ 개의 μž…λ ₯을 μ²˜λ¦¬ν•  λ•Œ def add_many(*args)처럼 ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λ‘œ *args만 μ‚¬μš©ν•  수 μžˆλŠ” 것은 μ•„λ‹ˆλ‹€.

>>> def add_mul(choice, *args):
...     if choice == "add":  # λ§€κ°œλ³€μˆ˜ choicedp 'add'λ₯Ό μž…λ ₯λ°›μ•˜μ„ λ•Œ
...         result = 0
...         for i in args:
...             result = result + i  # args에 μž…λ ₯받은 λͺ¨λ“  값을 λ”ν•œλ‹€
...     elif choice == "mul":  # λ§€κ°œλ³€μˆ˜ choicedp 'mul'을 μž…λ ₯λ°›μ•˜μ„ λ•Œ
...         result = 1
...         for i in args:
...             result = result * i  # *args에 μž…λ ₯받은 λͺ¨λ“  값을 κ³±ν•œλ‹€
...     return result
...
>>>
>>> result = add_mul('add', 1,2,3,4,5)
>>> print(result)
15
>>> result = add_mul('mul', 1,2,3,4,5)
>>> print(result)
120

λ§€κ°œλ³€μˆ˜ choice에 'add'κ°€ μž…λ ₯된 경우 *args에 μž…λ ₯λ˜λŠ” λͺ¨λ“  값을 λ”ν•΄μ„œ 15λ₯Ό 돌렀주고,

'mul'이 μž…λ ₯된 경우 *args에 μž…λ ₯λ˜λŠ” λͺ¨λ“  값을 κ³±ν•΄μ„œ 120을 λŒλ €μ€€λ‹€.

λ°˜μ‘ν˜•