π. pythonμ sum ν¨μμ λν΄ μμλ΄ λλ€.
python μ sum ν¨μλ λ€μκ³Ό κ°μ΄ μ μλμ΄μλ€.
def sum(
__iterable: Iterable[_LiteralInteger | bool],
/,
start: int = 0
) -> int: ...
def sum(
__iterable: Iterable[_SupportsSumNoDefaultT@sum],
/
)
μ¦ κΈ°λ³Έμ μΈ ννλ λ€μκ³Ό κ°λ€.
def sum(iterable) #1
def sum(iterable, start=0) #2
testlist= [1,2,3,4]
sum(testlist) # expect 1+2+3+4 10
sum(testlist,start=1) # expect 11
sum μ λ€μ κ³Ό κ°μ΄ λμνλ€.
μμ μμ μμ λ€μκ³Ό κ°μ΄ λμνλ€.
testlist= [1,2,3,4]
sum(testlist) # expect 1+2+3+4 10
# sum(testlist) λ μ€μ λ‘λ sum(testlist,start=0) μΌλ‘λμ
def exampleSum(testlist,start): # μ€λͺ
μ λκΈ°μν ν¨μ
start=start
for number in testlist:
start=+number
return start
sum μ κΈ°λ³Έμ μΌλ‘ numeric iterableμ ν©μ ꡬνκΈ°μν΄ μ¬μ©λλ€.
νμ§λ§ sumμ μμ©ν΄μ λ€λ₯Έ λ°©λ²μΌλ‘λ μ¬μ©ν μμλ€.
# sum μ μ΄μ©νμ¬ 2μ°¨μ λ°°μ΄μ 1μ°¨μλ°°μ΄λ‘ λ°κΎΈκΈ°
testlist=[[1,2],[3,4]]
sum(testlist,start=[])# expect :[1,2,3,4]
μ μ΄λ κ² λ κΉ ?
sum ν¨μμ λμκ³Ό startμΈμλ‘μΈν΄ λ€μ κ³Ό κ°μ μ μ°¨λ₯Ό ννλ€.
# μ΄κΈ°κ° []
start=[]
for v in testlist:
start+=v
return start
#
# 1. [] + [1,2] -> [1,2]
# 2. (1μκ²°κ³Ό) [1,2] + [3,4] ->[1,2,3,4]
# return [1,2,3,4]
μ΄λ κ² μμκ° numericμ΄ μλλλΌλ sumν¨μκ° λμν μ μλ€.
λ€λ§ sum ν¨μκ° κ²°κ³Όμ μμ ν λ°νμ 보μ₯νμ§λ μλλ€.
μλ₯Όλ€μ΄ μννλ iterableμ΄ λ€μν μλ£νμ΄ μλ€λ©΄ μ΄λ€μ€ add ν¨μκ° λμν¨μ 보μ₯ν μ μκ³ κ°λ°μμ μλμ λ€λ₯΄κ² λμν μλ μκΈ° λλ¬Έμ΄λ€.
testlist=['1',2]
sum(testlist) # -> TypeError str + int λ λν μμμ x(
testlist=[1,True,False] #
sum(testlist) # -> 2 int μ bool ν©μ κ³μ°νλ€λ©΄ True λ 1λ‘ False λ 0μΌλ‘ λ³νλ€. μ¦ 1+1(True)+0(False) λ‘ λμνλ€.