0% found this document useful (0 votes)
16 views54 pages

Class 10 - Functions - Part II

Uploaded by

temparonaldo7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views54 pages

Class 10 - Functions - Part II

Uploaded by

temparonaldo7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 54

PYTHON Key stage IV Class X

དཔལ་ལྡན་འབྲུག་གཞུང་། ཤེས་རིག་དང་རིག་རྩལ་གོང་
འཕེལ་ལྷན་ཁག།
Department of School Education
Ministry of Education & Skills Development

Python Coding
Class X ICT Curriculum

January 2024

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Key Concept #
4
FUNCTIONS
Part II

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Concept Overview

Main concepts Sub - concepts


● Variable scope
○ Local, Global,Nonlocal
● Arguments in Function
Function ○ Positional, Keyword, Default, Variable
length
● Return statement in a function
● Recursive function

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Objectives

● Explain the scope of variables within and outside of functions.


● Define four types of function argument with examples.
● Explain the significance of return statement in functions.
● Write a Python functions with return statement to solve problems.
● Explain the concept of recursion in functions.
● Use recursive function to solve problems such as calculating
factorial, fibonacci series, sum of natural numbers, countdown, etc.

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

ACTIVITIES
1. Understanding the Variable Scope
2. Demo 1 - Scope of Variable
3. Activity 1 - Check Your
Understanding
4. Demo 2 - Checking Pythagorean
Triple
VARIABLE SCOPE
5. Activity 2 - Subtracting Two
Numbers
6. Demo 3 - Checking Pythagorean
Triple
7. Activity 3 - Squaring a Number’
8. Demo 4 - Checking Pythagorean
Triple

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

ACTIVITIES

9. Activity 4 - Checking the


Remainder

10.Demo 5 - Adding Numbers

11.Activity 5 - Calculating Distance

12.Activity 6 - Counting Number of


VARIABLE SCOPE Characters

13.Activity 7 - Displaying Student


Biodata

14.Activity 8 - Drawing Asterisk

15.Activity 9 - Drawing Colourful


Flowers

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Variable Scope in Functions


● Variable scope in functions refers to the visibility and accessibility of
variables within different parts of a program, particularly within
functions.
● The scope of a variable determines where it can be referenced or
modified.
Types of Variable Scope

Global Nonlocal
Variable Local Variable
Variable

January 2024
PYTHON Key stage IV Class X

Variable Scope
● A variable declared outside of the function is
1. Global known as a global variable.
variables ● This means that a global variable can be accessed
inside or outside of the function.
● A variable declared inside a function have a scope
within that function only.
2. Local
● It is not accessible beyond a function's scope, but
variables
it can be made available by using the global
keyword.
● Nonlocal variables are used in nested functions to
3. Nonlocal assign values to variables in the outer function.
variables ● Use the nonlocal keyword to create nonlocal
variables.
January 2024
PYTHON Key stage IV Class X

Example of Variable Scope

Code
global
1 global_variable = 10 variable
2 def outer_function():
local
3 local_variable = 5
variable
4 def inner_function():
5 nonlocal local_variable
6 local_variable = 15 nonlocal
7 inner_function() variable
8 outer_function()

January 2024
PYTHON Key stage IV Class X

Demo 1 - Scope of Variable


Study the code given below and
identify the function name, Function name is add_numbers.
parameters, and global and local
Parameters are a and b.
variables.
Global variables are num_1 &
Code
num_2 .
1 def add_numbers(a,b): Local variable is sum.
2 sum = a + b
3 print(sum)
4 num_1 = 5
Output
5 num_2 = 4
6 add_numbers(num_1,num_2) 9
January 2024
PYTHON Key stage IV Class X

Activity 1 - Check Your Understanding


Write the answer of the following questions in your notebook.
1. Which of the following is true about local variables?
a. Accessible throughout the program
b. Accessible in all functions
c. Accessible only in that function
d. Accessible only in the similar functions

2. What is a global variable in programming?


a. A variable that is only accessible within a specific function
b. A variable that is accessible from any part of the program
c. A variable that is defined inside a loop
d. A variable that is passed as an argument to a function

January 2024
PYTHON Key stage IV Class X

Activity 1 - Check Your Understanding


3. Study the code given below and explain the output that will be
generated by the code.

Code
1 def display_name():
2 name="Sonam"
3 print(name)

Ans - The program will display the NameError: name 'name' is not
defined because the variable name is a local variable defined within
display_name function. To display the name Sonam, we have to make
the variable name global (outside of the function).
January 2024
PYTHON Key stage IV Class X

Activity 1 - Check Your Understanding


4. Differentiate between a local variable and a global variable.

Local variable Global variable

A local variable is declared inside A global variable is declared


a function or block and is outside any function or block and
accessible only within that is accessible throughout the
function or block. entire program.

def display_num( ): x=5 #Global variable


x=5 #Local variable def display_num( ):
print(x) print(x)

January 2024
PYTHON Key stage IV Class X

Arguments in Function
● When calling a function, it is important to provide the exact number
of arguments expected by its parameters to prevent errors.
● The different ways of passing argument to the function are as
follows:
Positional Keyword
Arguments Arguments
1 2 3 4

Default Variable -
Arguments length
Arguments

January 2024
PYTHON Key stage IV Class X

1. Positional Arguments
● During a function call, values passed should be in the order of
parameters in the function definition.
● The position of the argument matters, as it determines which
parameter in the function receives which value.

Code Value of x and y are 3


1 def add_numbers(x,y): and 5 respectively
2 print( x + y) because x is positioned
3 add_numbers(3,5) #calling function before y.

January 2024
PYTHON Key stage IV Class X

Demo 2 - Checking Pythagorean Triple


Write a Python program to check if three values entered by the user
makes a Pythagorean triple. Hint: Pythagorean triple → a2+b2 = c2

Code
1 def pythagorean_triple(a, b, c):
2 if a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2:
3 print(f"{a},{b},and{c} is Pythagorean triple.")
4 else:
5 print(f"{a},{b},and{c} not Pythagorean triple.")
6 # Input three integers from the user
7 a = int(input("Enter the first integer: "))
8 b = int(input("Enter the second integer: "))
9 c = int(input("Enter the third integer: "))
10 pythagorean_triple(a, b, c)

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Demo 2 - Checking Pythagorean Triple


Output

Enter the first integer: 2


Enter the second integer: 4
Enter the third integer: 16
2,4,and 16 not Pythagorean triple.
=========================================================
Enter the first integer: 3
Enter the second integer: 4
Enter the third integer: 5
3,4,and 5 is Pythagorean triple.

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 2 - Subtracting Two Numbers


Write a Python program to subtract two numbers entered by the user.
Use functions witharguments.
Code
1 def subtraction(a, b): #a,b are parameters
2 diff = a - b
3 print(f’Difference of {a} and {b} is {diff}’)
4 x = float(input(“Enter value of x:”))
5 y = float(input(“Enter value of y:”))
6 addition(x, y) #x, y are arguments

Output
Enter value of x:25
Enter value of y:45
Difference of 25.0 and 45.0 is -20.0
January 2024
PYTHON Key stage IV Class X

2. Default Arguments
● Sometimes the value of the parameters can be preassigned
depending on the need of the program. Such predefined values are
called default arguments.
● These default values are used when an argument for that
parameter is not provided during the function call.

Code The value of y has been


1 def add_numbers(x,y=5): predefined as 5 while
2 print( x + y) the value of x is passed
3 #calling function during the function call.
4 add_numbers(3)

January 2024
PYTHON Key stage IV Class X

Demo 3 - Checking Pythagorean Triple


Write a Python program to check if three predefined integers are
Pythagorean triple or not. Hint- Use functions with default arguments.
Code
1 def pythagorean_triple(a=3, b=4, c=5):
2 if a**2+b**2==c**2 or a**2+c**2 == b**2 or b**2+c**2==a**2:
3 print(f"{a},{b},and{c} is Pythagorean triple.")
4 else:
5 print(f"{a},{b},and{c} not Pythagorean triple.")
6 pythagorean_triple(2,4)#value of parameter c is missing

Output
Default c value 5 is taken in
2,4,and 5 not Pythagorean triple. place of missing arguments.

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 3 - Squaring a Number


Write a Python program to find the square of a number entered
by the user. Use function with default argument.
Code
1 def square(x,exponent=2):
2 y = x**exponent
3 print(f’{x} to the power {exponent} is {y}’)
4 num = float(input(“Enter value of any number:”))
5 square(num)

Output
Enter value of any number:4
4.0 to the power 2 is 16.0
January 2024
PYTHON Key stage IV Class X

3. Keyword Arguments
● Keyword arguments passes arguments to a function using the
parameter names explicitly.
● It specifies argument along with its corresponding parameter name.
● The order of arguments is not important, but the number of
arguments must be matched.

Code Value of x and y will be 3


1 def add_numbers(x,y): and 5 respectively. Here, the
2 print( x + y) order of argument does not
3 add_numbers(y=5,x=3) matter.

January 2024
PYTHON Key stage IV Class X

Demo 4 - Checking Pythagorean Triple


Write a Python program to check if three integers entered by the user
are Pythagorean triple or not. Use function with keyword arguments.

Code
1 def pythagorean_triple(a, b, c):
2 if a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2:
3 print(f"{a},{b},and{c} form a Pythagorean triple.")
4 else:
5 print(f"{a},{b},and{c} are not Pythagorean triple.")
6 n_1 = int(input("Enter the first integer: "))
7 n_2 = int(input("Enter the second integer: "))
8 n_3 = int(input("Enter the third integer: "))
9 pythagorean_triple(a=n_1, b=n_3, c=n_2)

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 4 - Checking the Remainder


Code
Write a Python
program to find the 1 def remainder(a,b):
remainder from the 2 if a==0 or b==0:
division of two 3 print("number enter is Zero")
4 elif a>=b:
numbers.
5 rem = a%b
6 print(f"Remainder(a/b) is {rem}")
7 else:
Output
8 rem = b%a
Enter first number:5 9 print(f"Remainder(b/a)is {rem}")
Enter second number:6 10 num_1 = float(input("Enter first number:"))
Remainder(a/b) is 1.0 11 num_2 = float(input("Enter second number:"))
12 remainder(a=num_2, b=num_1)

January 2024
PYTHON Key stage IV Class X

4. Variable Length Arguments


● Functions can accept a variable number of arguments using *args
(for positional arguments) and **kwargs (for keyword arguments).
● If the number of arguments is unknown, add a * before the
parameter name. These arguments are packed into a tuple named
usually args.
● If the number of keyword arguments is unknown, add a double **
before the parameter name. These arguments are packed into a
dictionary named usually kwargs,
Syntax Syntax
def function_name(*args): def function_name(**kwargs):
# Function body # Function body

January 2024
PYTHON Key stage IV Class X

Example on Positional Argument


Code
1 def my_function(*args):
2 print("The youngest child is " + args[2])
3 my_function("Pema", "Tashi", "Lhamo")

Output "Pema", "Tashi", and "Lhamo" are


passed as positional arguments to
The youngest child is Lhamo
the function and collected into
the args tuple. So, args becomes
("Pema", "Tashi", "Lhamo").

January 2024
PYTHON Key stage IV Class X

Examples on Keyword Argument


Code
1 def my_function(**kwarg):
2 print("His last name is " + kwarg["lname"])
3 my_function(fname = "Tashi", lname = "Dawa")

Output
"Tashi" and "Dawa" are passed
His last name is Dawa as keyword arguments to the
function and collected into the
kwargs dictionary. So, kwargs
becomes {"fname": "Tashi",
"lname": "Dawa"}.

January 2024
PYTHON Key stage IV Class X

Demo 5 - Adding Numbers


Write a Python program using function to add all the numbers passed as
an argument.
Hint: Use variable length argument(*args) .
Code Output
1 def sum(*args): 15
2 total = 0
3 for num in args:
4 total += num
5 return total
6 print(sum(1, 2, 3, 4, 5))

January 2024
PYTHON Key stage IV Class X

Activity 5 - Calculating Distance


Write a Python program using functions to calculate distance when the
value of speed and time are entered by the user. Hint: Distance = speed
x time .
Code
1 def distance(speed,time):
2 dist = speed * time
3 print(f’The distance covered is {dist}km/hr’)
4 s = float(input(“Enter speed in km/hr:”))
5 t = float(input(“Enter time in hour:”))
6 distance(s,t)

Output
Enter speed in km/hr:50
Enter time in hour:4
The distance covered is 200.0 km/hr
January 2024
PYTHON Key stage IV Class X

Activity 6 - Counting Number of Characters


Write a Python program using function to count the numbers of
characters in a string(s). If the string(s) has more than 17 characters,
display the message “This is a long text”, otherwise display the message
“This is a short text”.
Code Output
1 def decision(n): Enter any string:Hello
2 if len(n)>17: everyone
3 print("This is a long text") This is a long string
4 else: =======================
5 print("This is a short text") Enter any string:Hi
6 This is a short string
7 string = input("Enter any text:")
decision(string)

January 2024
PYTHON Key stage IV Class X

Activity 7 - Displaying Student Biodata


Write a Python program using function to display the student biodata
where details of name, age, and address are entered by the user.

Code Output
1 def biodata(name, age, address): enter your name: Dema
2 enter your age: 16
3 print(f’Name:{name}’) enter your address: Paro
4 print(f’Age:{age}’) Name:Dema
5 print(f’Address:{address}’) Age:16
6 n = input(“enter your name: ”) Address:Paro
7 a = int(input(“enter your age:”))
8 ad = input(“enter your address: ”)
biodata(name=n,age=a,address=ad)

January 2024
PYTHON Key stage IV Class X

Activity 8 - Drawing Colourful Asterisks


Write a Python program using turtle module to draw colourful asterisk
as shown below. Use functions to optimize the code.

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 8 - Drawing Colourful Asterisks


Code 10 backward(100)
11 right(45)
1 from turtle import*
12 i=i+1
2 shape("turtle")
13 penup()
3 pensize(5)
4 def asterisk(pen_color="green"): 14 asterisk()
5 pencolor(pen_color) 15 goto-200,200)
6 i=1 16 asterisk("blue")
7 while i<=8: 17 goto(200,200)
8 pendown() 18 asterisk(pen_color="red")
9 forward(100)

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 9 - Drawing Colourful Flowers


Write a Python program using turtle module to draw colourful flower
patterns as shown below. Use functions to optimize the code.

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Activity 9 - Solution
Code 10 circle(50,90)
11 lt(30)
1 from turtle import* 12 end_fill()
2 shape("turtle") 13 up()
3 speed(0) 14 #calling function()
4 def flower(petal_color="cyan"): 15 flower(petal_color="red")
5 for i in range(6): 16 goto(100,100)
6 down() 17 flower("blue")
7 begin_fill() 18 goto(-100,100)
8 fillcolor(petal_color) 19 flower()
9 20 hideturtle()
10 circle(50,90)
lt(90)

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

ACTIVITIES
1. Understanding the Return
Statement
2. Demo 1 - Checking Even or
Odd Number
3. Activity 1 - Calculating Area of
RETURN STATEMENT
Rectangle
4. Activity 2 - Determining the
Multiple of 5
5. Activity 3 - Calculating
Perimeter of a Rectangle (BCSE
trial)

January 2024 © ICT Curriculum, MoESD


PYTHON Key stage IV Class X

Return Statement in Functions


● In Python, a return statement is used within a function to send
back a value or a result to the code that called the function.
● The line after the return statements are not executed.
● Return statement can not be used outside the function.

Syntax
Keyw
def function_name (parameters):
ord
#statement Body of
return statement
statement
Function
returns
January 2024
PYTHON Key stage IV Class X

Example The add_numbers function


takes parameters a and b,
Code calculates their sum, and
1 def add_numbers(a, b): returns the result, which is
2 result = a + b then stored in sum_result and
3 return result
4 print(f"sum is {result}") printed.
5 sum_result = add_numbers(3, 5)
6 print("Total is: ",sum_result)

This line number 4 will not be


Output executed as it is after the
Total is: 8 return statement.

January 2024
PYTHON Key stage IV Class X

Demo 1 - Checking Even or Odd Number


Write Python program using functions to check if the number entered by
the user is even or odd.

Code
1 def even_or_odd(number):
2 if number % 2 == 0:
3 return f"The number {number} is even."
4 else:
5 return f"The number {number} is odd."
6 user_number=int(input("Enter an integer:"))
7 print(even_or_odd(user_number))

January 2024
PYTHON Key stage IV Class X

Activity 1 - Calculating Area of Rectangle


Write a Python program using functions to calculate the area of a
rectangle where the length and width are entered by the user.
Code
1 def calculate_Area(length, width):
2 if length <= 0 or width <= 0:
3 print("Dimension should be positive no.")
4 else:
5 area = length * width
6 return area
7 len = float(input("Enter the length: "))
8 wid = float(input("Enter the width: "))
9 area = calculate_Area(len, wid)
10 print(f"The area of the rectangle is {area}")

January 2024
PYTHON Key stage IV Class X

Activity 1 - Calculating Area of Rectangle


Output
Enter the length: -4
Enter the width: 5
Dimension should be positive no.
The area of the rectangle is None
================================================
Enter the length: 5
Enter the width: 6
The area of the rectangle is 30.0

January 2024
PYTHON Key stage IV Class X

Activity 2 - Determining the Multiple of 5


Write a Python program using function to check if a number
entered by the user is a multiple of 5.
Code
1 def multiple_of_five(number):
2 if number % 5 == 0:
3 return f"{number} is a multiple of 5."
4 else:
5 return f"{number} is not a multiple of 5."
6 user_number = int(input("Enter an number: "))
7 result_message = multiple_of_five(user_number)
8 print(result_message)
Output
Enter a number: 50
50 is a multiple of 5.

January 2024
PYTHON Key stage IV Class X

Activity 3 - Calculating Perimeter of Rectangle


Write a Python program using functions to calculate the
perimeter of a rectangle. The function should take two
parameters: width and length respectively. The value of width is
5Code
and the length is 10.

1 def perimeter(w=5,l=10): #default argument


2 return 2*(l+w)
3 result=perimeter()
4 print(f‘Perimeter of a rectangle is {result}’)

Output
Perimeter of a rectangle is 30
January 2024
PYTHON Key stage IV Class X

ACTIVITIES

1. Understanding Recursive function

2. Demo 1 - Sum of nth number

3. Activity 1 - Sum of first 5 Natural


Numbers

4. Activity 2 - Finding Factorial of a


RECURSIVE FUNCTION Number

5. Activity 3 - Generating Fibonacci


series

6. Activity 4 - Counting Vowels in a


String

7. Activity 5 - Counting Consonants in


a string
January 2024 © ICT Curriculum, MoESD
PYTHON Key stage IV Class X

Recursive Function

● A recursive function in Python Syntax


is a function that calls itself
def function_name():
within its own definition.
statements Recursiv
● This allows the function to
e call
function_name()
solve problems by breaking
them down into smaller, Function
function_name() Call
similar subproblems.

January 2024
PYTHON Key stage IV Class X

Example - New Year Counting Down


Write a Python program using functions to create a new year countdown
timer where the countdown begins from 10.
Code Output
Base case is the
10
1 def countdown(n): condition when
2 # Base case 9
the function stops 8
3 if n <= 0:
calling itself. 7
4 print("\nHappy New Year!")
5 else: 6
6 print(n) 5
7 # Recursive case Recursive case calls 4
8 countdown(n - 1) function with 3
2
9 #Function call modified
10 countdown(10) 1
parameters and use 0
the result to Happy New Year!
compute final result.

January 2024
PYTHON Key stage IV Class X

Demo 1 - Sum of nth Number


Write a Python program using recursive function to calculate
the sum of nth natural numbers.
Code
1 def sum_of_nth_number(n):
2 if n == 1: #Base case Output
3 return 1 Enter the number :3
4 else: Sum of the numbers is 6
5 #Recursive case
6 return n + sum_of_nth_number(n - 1)
7 num =int(input('Enter the number : '))
8 print(“Sum of the numbers is”,sum_of_nth_number(num))

January 2024
PYTHON Key stage IV Class X

Activity 1 - Sum of first 5 Natural Numbers


Write a Python program using recursive function to find the sum
of the first five natural numbers.

Code - Example
1 def sum_of_natural_numbers(n):
2 if n == 1:#base case
3 return 1
4 else:
5 return n + sum_of_natural_numbers(n-1)#recursive call
6 result = sum_of_natural_numbers(5)
7 print(f"sum of first 5 natural no. is {result}")

Output
sum of first 5 natural no. is 15
January 2024
PYTHON Key stage IV Class X

Activity 2 - Finding Factorial of a Number


Write a Python program using recursive function to calculate the
factorial of a number entered by the user.
Code
1 def factorial(n):
2 if n == 0 or n==1:
3 return 1
4 else:
5 return n * factorial(n - 1)
6 n=int(input(“Enter number to find factorial:”))
7 result = factorial(n)
8 print(f"The factorial of {n} is {result}")

Output
Enter number to find factorial:5
The factorial of 5 is 120

January 2024
PYTHON Key stage IV Class X

Activity 3 - Generating Fibonacci series


Write a Python program using recursive function to display the Fibonacci
series upto the number entered by the series. Hint: Fibonacci series is 1, 1,
2, 3, 5, 8…
Code Output
1 def fibo(n): Enter a number:6
2 if n<=1: 1 1 2 3 5
3 return n
4 else:
5 return fibo(n-1) + fibo(n-2)
6 n=int(input(“Enter a number:”))
7 for i in range(1,n):
8 print(fibo(i),end=' ')

January 2024
PYTHON Key stage IV Class X

Activity 4 - Counting Vowels in a String


Write a Python program using recursive function to count the number of
vowels in a string entered by the user.
Code
1 def countVowels(text):
2 if text == "":
3 return 0 Output
4 elif text[0].lower() in "aeiou": Enter string:Hello!
5 return 1 + countVowels(text[1:]) There are 2 vowels
6 else:
7 return countVowels(text[1:])
8 user_input=input("Enter string:")
9 result = countVowels(user_input)
10 print(f"There are {result} vowels")

January 2024
PYTHON Key stage IV Class X

Activity 5 - Counting Consonants in a string


Write a Python program using recursive function to count the
number of consonants in a string entered by the user.
Code
1 def countConsonants(text):
2 if text == "":
3 return 0
4 elif text[0].isalpha() and text[0].lower() not in "aeiou":
5 return 1 + countConsonants(text[1:])
6 else:
7 return countConsonants(text[1:]) Output
8 user_input = input("Enter string: ") Enter string:Som Chokey
9 result = countConsonants(user_input) There are 6 consonants
10 print(f"There are {result} consonants")

January 2024
PYTHON Key stage IV Class IX

Key
Points
● Variable scope in functions refers to the visibility and accessibility of
variables within different parts of a program, particularly within functions.
● Local, global and nonlocal variables are three types of variables scope in
Python.
● Positional, default, keyword and variable-length arguments are different
ways to assign arguments to a function parameter.
● The return statement is used within a function to send back a value or a
result to the code that called the function.
● A recursive function in Python is a function that calls itself within its own
definition.
● A recursive function is a way of solving a problem by breaking it down into
smaller, more manageable subproblems.
January 2024
PYTHON Key stage IV Class IX

བཀྲིན་ཆེ།
THANK YOU

January 2024

You might also like