λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

파이썬46

[Python] ν•¨μˆ˜ - ν•¨μˆ˜ μ•ˆμ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜μ˜ 효λ ₯ λ²”μœ„ 결괏값은 1이 λ‚˜μ˜¨λ‹€. ν•¨μˆ˜ μ•ˆμ—μ„œ μƒˆλ‘œ λ§Œλ“  λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜ μ•ˆμ—μ„œλ§Œ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜μ΄κΈ° λ•Œλ¬Έμ΄λ‹€. -ν•¨μˆ˜ μ•ˆμ—μ„œ ν•¨μˆ˜ λ°–μ˜ λ³€μˆ˜λ₯Ό λ³€κ²½ν•˜λŠ” 방법 vartestλΌλŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄μ„œ ν•¨μˆ˜ λ°–μ˜ λ³€μˆ˜ aλ₯Ό 1만큼 μ¦κ°€μ‹œν‚¬ 수 μžˆλŠ” 방법은 μ—†μ„κΉŒ? μ—¬κΈ°μ—” 2가지 ν•΄κ²° 방법이 μžˆλ‹€. 1. return μ‚¬μš©ν•˜κΈ° (가급적이면 이 방법을 μ‚¬μš©ν•  것) vartest ν•¨μˆ˜λŠ” μž…λ ₯으둜 λ“€μ–΄μ˜¨ 값에 1을 λ”ν•œ 값을 λŒλ €μ€€λ‹€. λ”°λΌμ„œ a = vartest(a)라고 λŒ€μž…ν•˜λ©΄ aκ°€ vartest ν•¨μˆ˜μ˜ κ²°κ΄κ°’μœΌλ‘œ 바뀐닀. 2. global λͺ…λ Ήμ–΄ μ‚¬μš©ν•˜κΈ° global λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•¨μˆ˜ μ•ˆμ—μ„œ ν•¨μˆ˜ λ°–μ˜ λ³€μˆ˜λ₯Ό λ³€κ²½ν•  수 μžˆλ‹€. vartest ν•¨μˆ˜ μ•ˆμ˜ global a λ¬Έμž₯은 ν•¨μˆ˜ μ•ˆμ—μ„œ ν•¨μˆ˜ λ°–μ˜ a λ³€μˆ˜λ₯Ό 직접 μ‚¬μš©ν•˜κ² λ‹¨.. 2021. 3. 21.
[Python] ν•¨μˆ˜ - λ§€κ°œλ³€μˆ˜μ— μ΄ˆκΉƒκ°’ 미리 μ„€μ •ν•˜κΈ° def say_myself(name, old, man=True): print("λ‚˜μ˜ 이름은 %sμž…λ‹ˆλ‹€." % name) print("λ‚˜μ΄λŠ” %dμ‚΄μž…λ‹ˆλ‹€." % old) if man: print("λ‚¨μžμž…λ‹ˆλ‹€.") else: print("μ—¬μžμž…λ‹ˆλ‹€.") man=True처럼 λ§€κ°œλ³€μˆ˜μ— 미리 값을 λ„£μ–΄μ£ΌλŠ” 것이 ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ μ΄ˆκΉƒκ°’μ„ μ„€μ •ν•˜λŠ” 법이닀. ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ— λ“€μ–΄κ°ˆ 값이 항상 λ³€ν•˜λŠ” 것이 아닐 κ²½μš°μ—λŠ” μ΄λ ‡κ²Œ ν•¨μˆ˜μ˜ μ΄ˆκΉƒκ°’μ„ 미리 μ„€μ •ν—€ 두면 μœ μš©ν•˜λ‹€. 이제 μ΄ˆκΉƒκ°’μ΄ μ„€μ •λœ 뢀뢄을 False둜 λ°”κΏ” λ³Έλ‹€. β˜… μ΄ˆκΈ°ν™”μ‹œν‚€κ³ μ‹Άμ€ λ§€κ°œλ³€μˆ˜λŠ” 항상 λ’€μͺ½μ— 놓아야 함!!!! 예) 2021. 3. 21.
[Python] ν•¨μˆ˜ - ν•¨μˆ˜μ˜ 결괏값은 μ–Έμ œλ‚˜ ν•˜λ‚˜μ΄λ‹€ ν•¨μˆ˜λ₯Ό ν•˜λ‚˜ λ§Œλ“ λ‹€. >>> def add_and_mul(a,b): ... return a+b, a*b # 2개의 λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ•„ λ”ν•œ κ°’κ³Ό κ³±ν•œ 값을 λŒλ €μ€€λ‹€ ν•¨μˆ˜λ₯Ό λ‹€μŒκ³Ό 같이 ν˜ΈμΆœν•œλ‹€. >>> result = add_and_mul(3,4) 결괏값은 a+b와 a*b 2개인데 결괏값을 λ°›μ•„λ“€μ΄λŠ” λ³€μˆ˜λŠ” result ν•˜λ‚˜λ§Œ μ“°μ˜€μœΌλ‹ˆ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šμ„κΉŒ? ν•˜μ§€λ§Œ 였λ₯˜λŠ” λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. κ·Έ μ΄μœ λŠ” ν•¨μˆ˜μ˜ 결괏값은 2κ°œκ°€ μ•„λ‹ˆλΌ μ–Έμ œλ‚˜ 1개이기 λ•Œλ¬Έμ΄λ‹€. add_and_mul ν•¨μˆ˜μ˜ 결괏값 a+b와 a*bλŠ” νŠœν”Œκ°’ ν•˜λ‚˜μΈ (a+b, a*b)둜 λŒλ €μ€€λ‹€. λ”°λΌμ„œ result λ³€μˆ˜λŠ” λ‹€μŒκ³Ό 같은 값을 κ°–κ²Œ λœλ‹€. result = (7, 12) λ§Œμ•½ 이 ν•˜λ‚˜μ˜ νŠœν”Œ 값을 2개의 κ²°κ΄κ°’μ²˜λŸΌ λ°›κ³  μ‹Άλ‹€λ©΄ λ‹€μŒκ³Ό .. 2021. 3. 20.
[Python] ν•¨μˆ˜ - μž…λ ₯값이 λͺ‡ κ°œκ°€ 될지 λͺ¨λ₯Ό λ•Œ νŒŒμ΄μ¬μ€ 이런 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 방법을 μ œκ³΅ν•œλ‹€. 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_.. 2021. 3. 20.
[Python] ν•¨μˆ˜ - μž…λ ₯κ°’κ³Ό 결괏값에 λ”°λ₯Έ ν•¨μˆ˜μ˜ ν˜•νƒœ ν•¨μˆ˜λŠ” λ“€μ–΄μ˜¨ μž…λ ₯값을 λ°›μ•„ μ–΄λ–€ 처리λ₯Ό ν•˜μ—¬ μ μ ˆν•œ 결괏값을 λŒλ €μ€€λ‹€. -일반적인 ν•¨μˆ˜ μž…λ ₯값이 있고 결괏값이 μžˆλŠ” ν•¨μˆ˜κ°€ 일반적인 ν•¨μˆ˜μ΄λ‹€. 결괏값을 받을 λ³€μˆ˜ = ν•¨μˆ˜μ΄λ¦„(μž…λ ₯인수 1, μž…λ ₯인수 2, …) -μž…λ ₯값이 μ—†λŠ” ν•¨μˆ˜ >>> def say(): ... return 'Hi' ... >>> >>> a = say() >>> print(a) Hi 결괏값을 받을 λ³€μˆ˜ = ν•¨μˆ˜μ΄λ¦„() -결괏값이 μ—†λŠ” ν•¨μˆ˜ >>> def add(a, b): ... print("%d, %d의 합은 %dμž…λ‹ˆλ‹€." % (a, b, a+b)) ... >>> >>> add(3, 4) 3, 4의 합은 7μž…λ‹ˆλ‹€. >>> a = add(3, 4) 3, 4의 합은 7μž…λ‹ˆλ‹€. >>> print(a) None 결괏값은 였직 return .. 2021. 3. 19.
[Python] ν•¨μˆ˜ - 맀개 λ³€μˆ˜μ™€ 인수 λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜μ— μž…λ ₯으둜 μ „λ‹¬λœ 값을 λ°›λŠ” λ³€μˆ˜λ₯Ό μ˜λ―Έν•˜κ³  μΈμˆ˜λŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ μ „λ‹¬ν•˜λŠ” μž…λ ₯값을 μ˜λ―Έν•œλ‹€. def add(a, b): # a, bλŠ” λ§€κ°œλ³€μˆ˜ return a + b print(add(3, 4)) # 3, 4λŠ” 인수 2021. 3. 19.
λ°˜μ‘ν˜•