Defining a function
def percentage(marks, total):
result = marks / total * 100
return result
print(percentage(45, 50))
print(percentage(180, 200))Output
90.0 90.0
Arguments
def greet(name, greeting="Namaste"): # A default value
print(greeting, name)
greet("Riya")
greet("Aman", "Hello")
greet(greeting="Hi", name="Sara") # By name
def add_all(*numbers): # Any number of values
return sum(numbers)
print(add_all(1, 2, 3, 4))
def show(**details): # Any named values
print(details)
show(name="Riya", age=14)Output
Namaste Riya
Hello Aman
Hi Sara
10
{'name': 'Riya', 'age': 14}Scope: where a variable lives
count = 10 # Global: visible everywhere
def demo():
count = 99 # A separate variable, inside the function only
print("inside:", count)
demo()
print("outside:", count)Output
inside: 99 outside: 10
Lambda and recursion
# Lambda: a tiny function with no name
square = lambda x: x * x
print(square(5))
students = [("Riya", 78), ("Aman", 92), ("Sara", 65)]
print(sorted(students, key=lambda s: s[1])) # Sort by marks
# Recursion: a function that calls itself
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
print(factorial(5))Output
25
[('Sara', 65), ('Riya', 78), ('Aman', 92)]
120Code challenge
Write is_even(n) that returns True or False.
def is_even(n): return n % 2 == 0
Write average(numbers) for a list.
def average(numbers): return sum(numbers) / len(numbers)
Finished reading?