Функцүүд
Нэг ажлыг програмын олон газар хийх шаардлага гарах үед кодыг дахин дахин бичих нь алдаатай, уйтгартай. Function (функц) нь нэг удаа бичээд, хүссэн газраа дуудаж ашиглах боломж олгодог — програмчлалын хамгийн чухал ойлголтуудын нэг.
Функц зарлах ба дуудах
# Функц зарлах — def түлхүүр үг
def мэндчилэх():
print("Сайн уу, дэлхий!")
print("Python дээр функц ажиллаж байна.")
# Функц дуудах
мэндчилэх()
мэндчилэх() # дахин ашиглах боломжтой
# Сайн уу, дэлхий!
# Python дээр функц ажиллаж байна.
# Сайн уу, дэлхий!
# Python дээр функц ажиллаж байна.
Бүтэц:
def— функц зарлах түлхүүр үгмэндчилэх— функцийн нэр (snake_case)()— параметрүүд орох хаалт:— блок эхлэх тэмдэг- Функцийн биеийн код 4 зайгаар догол оруулагдана
Параметр (parameter) ба аргумент (argument)
Функцт өгөгдөл дамжуулахад параметр ашигладаг:
def мэндчилэх(нэр):
print(f"Сайн уу, {нэр}!")
мэндчилэх("Болд") # Сайн уу, Болд!
мэндчилэх("Сарнай") # Сайн уу, Сарнай!
мэндчилэх("Төгс") # Сайн уу, Төгс!
Хэд хэдэн параметр:
def нэмэх(а, б):
нийлбэр = а + б
print(f"{а} + {б} = {нийлбэр}")
нэмэх(5, 3) # 5 + 3 = 8
нэмэх(100, 250) # 100 + 250 = 350
return — үр дүн буцаах
Функц зөвхөн хэвлэхээс гадна утга буцааж болно — ингэснээр үр дүнг дараа нь ашиглаж болно:
def нэмэх(а, б):
return а + б
# Үр дүнг variable-д хадгалах
нийлбэр = нэмэх(10, 20)
print(нийлбэр) # 30
# Шууд ашиглах
print(нэмэх(5, 3) * 2) # 16
# Функцийн үр дүнг өөр функцэд дамжуулах
print(f"Нийлбэр: {нэмэх(7, 8)}") # Нийлбэр: 15
return мөр ажиллахад функц тэр даруй зогсдог:
def шалгах(тоо):
if тоо < 0:
return "Сөрөг тоо" # энд зогсоно
if тоо == 0:
return "Тэг" # энд зогсоно
return "Эерэг тоо" # дээрх хоёр биш бол
print(шалгах(-5)) # Сөрөг тоо
print(шалгах(0)) # Тэг
print(шалгах(7)) # Эерэг тоо
Өгөгдмөл параметр (default parameter)
Параметрт өгөгдмөл утга өгч болно — аргумент дамжуулаагүй үед ашиглагдана:
def мэндчилэх(нэр, хэл="Монгол"):
if хэл == "Монгол":
print(f"Сайн уу, {нэр}!")
elif хэл == "Англи":
print(f"Hello, {нэр}!")
else:
print(f"Привет, {нэр}!")
мэндчилэх("Болд") # Сайн уу, Болд! — өгөгдмөл хэрэглэнэ
мэндчилэх("Alice", "Англи") # Hello, Alice!
мэндчилэх("Иван", "Орос") # Привет, Иван!
Keyword argument
Аргументуудыг нэрээр нь дамжуулж болно — дараалал хамаагүй:
def профайл(нэр, нас, хот):
print(f"{нэр} ({нас} нас) — {хот}")
# Байршлаар
профайл("Болд", 25, "Улаанбаатар")
# Нэрээр — дараалал хамаагүй
профайл(хот="Дархан", нэр="Анар", нас=30)
Бодит жишээ — оноо шинжлэгч
def дүгнэлт(нэр, оноо):
if оноо >= 90:
үсэг = "A"
тайлбар = "Маш сайн"
elif оноо >= 80:
үсэг = "B"
тайлбар = "Сайн"
elif оноо >= 70:
үсэг = "C"
тайлбар = "Дунд зэрэг"
elif оноо >= 60:
үсэг = "D"
тайлбар = "Хангалттай"
else:
үсэг = "F"
тайлбар = "Тэнцсэнгүй"
return f"{нэр}: {оноо} оноо — {үсэг} ({тайлбар})"
оюутнууд = [("Болд", 92), ("Сарнай", 74), ("Анар", 55)]
for нэр, оноо in оюутнууд:
print(дүгнэлт(нэр, оноо))
Гаралт:
Болд: 92 оноо — A (Маш сайн)
Сарнай: 74 оноо — C (Дунд зэрэг)
Анар: 55 оноо — F (Тэнцсэнгүй)
JavaScript-тэй харьцуулбал
// JavaScript
function нэмэх(а, б) {
return а + б;
}
const үр_дүн = нэмэх(5, 3);
# Python
def нэмэх(а, б):
return а + б
үр_дүн = нэмэх(5, 3)
Гол ялгаа: function биш def, { } биш догол мөр (indentation), return хэрэглэх хэлбэр адилхан.
Дараагийн хичээлд:
Функц зарлаж, дуудаж, утга буцаах аргыг сурлаа! Дараа нь lambda функц — нэг мөрөнд бичигддэг товч функцийн хэлбэрийг судална. Жагсаалт боловсруулахад маш тохиромжтой.