ν¨μ (Functions)
1. ν¨μ μ μ (Defining a Function)
ν¨μλ λ°λ³΅μ μΈ μμ μ λͺ¨λννμ¬ μ½λ μ¬μ¬μ©μ±μ λμ΄λ λ°©λ²μ΄λ€. def ν€μλλ₯Ό μ¬μ©ν΄ ν¨μλ₯Ό μ μνλ©°, ν¨μ μ΄λ¦κ³Ό κ΄νΈ μμ 맀κ°λ³μλ₯Ό μμ±ν μ μλ€. ν¨μλ νΈμΆλμμ λμλ§ μ€νλλ€.
def greet(name):
print(f"μλ
νμΈμ, {name}λ!")
greet("μ² μ") # μΆλ ₯: μλ
νμΈμ, μ² μλ!
2. 맀κ°λ³μμ μΈμ (Parameters and Arguments)
ν¨μλ 맀κ°λ³μλ₯Ό μ¬μ©ν΄ μΈλΆμμ κ°μ μ λ¬λ°μ μ μλ€. ν¨μ νΈμΆ μ μ λ¬λλ κ°μ μΈμλΌκ³ νλ€. 맀κ°λ³μλ ν¨μ λ΄λΆμμ λ³μλ₯Ό μ μΈν κ²κ³Ό κ°μ μν μ νλ€.
def add(a, b):
return a + b
result = add(3, 4)
print(result) # μΆλ ₯: 7
3. κΈ°λ³Έ 맀κ°λ³μ (Default Parameters)
ν¨μλ₯Ό μ μν λ κΈ°λ³Έκ°μ μ€μ ν μ μλ€. ν¨μ νΈμΆ μ ν΄λΉ μΈμκ° μ λ¬λμ§ μμΌλ©΄ κΈ°λ³Έκ°μ΄ μ¬μ©λλ€.
κΈ°λ³Έ 맀κ°λ³μλ 맀κ°λ³μμ μμκ° μ€μνλ©°, κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ³΄λ€ λ€μ μμΉν΄μΌ νλ€.
def greet(name="μΉκ΅¬"):
print(f"μλ
νμΈμ, {name}λ!")
greet() # μΆλ ₯: μλ
νμΈμ, μΉκ΅¬λ!
greet("μν¬") # μΆλ ₯: μλ
νμΈμ, μν¬λ!
1. κΈ°λ³Έ 맀κ°λ³μ μ μ λ° κ·μΉ
κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ λ¨Όμ μμ±λκ³ , κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ λ€μ μμ±ν΄μΌ νλ€.
κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ λ°λμ κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ³΄λ€ μμ μμΉν΄μΌ ν©λλ€.
def add(a, b=3):
return a + b
# a κ°λ§ μ λ¬νλ©΄ bλ κΈ°λ³Έκ° 3μ μ¬μ©
print(add(2)) # μΆλ ₯: 5
μ΄ ν¨μλ aλ νμ 맀κ°λ³μλ‘ λ°κ³ , bλ κΈ°λ³Έκ° 3μ κ°μ§λ€. ν¨μ νΈμΆ μ b κ°μ μ 곡νμ§ μμΌλ©΄ κΈ°λ³Έκ°μ΄ μ¬μ©λλ€.
μλͺ»λ 맀κ°λ³μ μ¬μ© μμ:: κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ λ°λμ κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μλ³΄λ€ μμ μμΉν΄μΌ νλ€.
def add(a=1, b):
return a + b
print(add(b=3))
# μ€λ₯ λ°μ: κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μ bκ° κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μ a λ€μ μμΉν΄ μμ΄ μ€λ₯κ° λ°μ.
# κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μ bλ κΈ°λ³Έκ°μ΄ μλ 맀κ°λ³μ a μμ μμΉν΄μΌ ν¨.
# μμ λ ν¨μ
def add(b, a=1):
return a + b
print(add(b=3)) # μΆλ ₯: 4
4. λ°νκ° (Return Value)
ν¨μλ return ν€μλλ₯Ό μ¬μ©ν΄ κ°μ λ°νν μ μλ€. returnμ λ§λλ©΄ ν¨μλ μ€νμ μ’ λ£νκ³ , κ°μ λ°ννλ€. λ°νλ κ°μ ν¨μ νΈμΆ μ λ³μμ μ μ₯λκ±°λ λ€λ₯Έ κ³μ°μ μ¬μ©ν μ μλ€.
def multiply(a, b):
return a * b
result = multiply(5, 6)
print(result) # μΆλ ₯: 30
5. κ°λ³ μΈμ (Variable-length Arguments)
κ°λ³ μΈμλ ν¨μκ° λͺ κ°μ μΈμλ₯Ό λ°μμ§ λ―Έλ¦¬ μ μ μμ λ μ¬μ©λλ€.
*argsλ μμΉ κΈ°λ°μ κ°λ³ μΈμλ₯Ό, **kwargsλ ν€μλ κΈ°λ°μ κ°λ³ μΈμλ₯Ό μλ―Ένλ€.
νλμ ν¨μμμ μ¬λ¬ κ°μ μΈμλ₯Ό λ°μ μ μλ€.
*args
- *argsλ μ¬λ¬ κ°μ μμΉ μΈμλ₯Ό νλμ ννλ‘ λ°λλ€.
- μΈμ κ°μκ° μ ν΄μ Έ μμ§ μμ λ μ¬μ©νλ€.
def sum_all(*args):
return sum(args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # μΆλ ₯: 15
**kwargs
- **kwargsλ μ¬λ¬ κ°μ ν€μλ μΈμλ₯Ό νλμ λμ λλ¦¬λ‘ λ°λλ€.
- kwargs.items()λ λμ λ리μ ν€μ κ°μ κ°μ Έμ¬ λ μ¬μ©νλ€.
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="μν¬", age=30)
# μΆλ ₯:
# name: μν¬
# age: 30
+) JavaScriptμμλ μ μ¬νκ² κ°λ³ μΈμλ₯Ό μ¬μ©ν μ μλ€.
μ€νλ λ μ°μ°μ(...)λ Pythonμ *argsμ μ μ¬νκ² λμνλ©°, κ°μ²΄λ‘ λ°μ μΈμλ kwargsμ λΉμ·νλ€.
// JavaScriptμμ κ°λ³ μΈμ
function sumAll(...args) {
return args.reduce((acc, cur) => acc + cur, 0);
}
console.log(sumAll(1, 2, 3, 4, 5)); // μΆλ ₯: 15
// JavaScriptμμ κ°μ²΄ ν€-κ° λ°κΈ°
function printInfo(obj) {
for (let key in obj) {
console.log(`${key}: ${obj[key]}`);
}
}
printInfo({ name: "μν¬", age: 30 });
// μΆλ ₯:// name: μν¬// age: 30
6. λλ€ ν¨μ (Lambda Functions)
λλ€ ν¨μλ μ΅λͺ ν¨μλ‘, μ΄λ¦ μμ΄ μ¬μ©ν μ μλ κ°λ¨ν ν¨μμ΄λ€. μ£Όλ‘ μΌνμ± ν¨μλ μ½λκ° μ§§μ λ μ¬μ©νλ€. lambda ν€μλλ₯Ό μ¬μ©νλ©°, ν¨μμ 맀κ°λ³μμ λ°νκ°μ κ°λ¨ν μ μν μ μλ€.
# λλ€ ν¨μ μμ
square = lambda x: x ** 2
print(square(5)) # μΆλ ₯: 25
# μΌλ° ν¨μλ‘ μμ±ν κ²½μ°
def square_fn(x):
return x ** 2
print(square_fn(5)) # μΆλ ₯: 25
- lambda x : xλ 맀κ°λ³μ. ν¨μμ μΈμλ₯Ό μλ―Ένλ€.
- x ** 2 : **λ μ κ³± μ°μ°μλ‘, xμ μ κ³±μ κ³μ°νλ€. λ°λΌμ xκ° 5λΌλ©΄ x ** 2λ 5 ** 2κ° λμ΄ 25κ° λλ€.
- x ** 3μ xμ μΈμ κ³±μ μλ―Έν©λλ€. μ¦, xλ₯Ό 3λ² κ³±ν κ²°κ³Όλ₯Ό λ°νν©λλ€. x**3μ 125(5μ μΈμ κ³±)κ° λλ€.
'π©βπ» hello, world! > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ΄μ¬ κΈ°μ΄ 05 - λͺ¨λ, ν¨ν€μ§ (1) | 2024.11.01 |
---|---|
νμ΄μ¬ κΈ°μ΄ 04 - ν΄λμ€ (0) | 2024.11.01 |
νμ΄μ¬ κΈ°μ΄ 02 - μ μ΄λ¬Έ(ifλ¬Έ / forλ¬Έ/ whileλ¬Έ) (0) | 2024.10.17 |
νμ΄μ¬ κΈ°μ΄ 01 - μλ£ν(λ°μ΄ν° νμ ) (0) | 2024.10.17 |
νμ΄μ¬ μλ£ν(list, tuple, set, dict) κ° μΆκ°/μμ /μμ (0) | 2024.10.04 |