JAVOBLAR
GitHub
GitHub - anvarnarz/python-darslar: Dasturlash asoslari darslari
GitHub
Repl.it
#23 MODULLAR
Dasturni modullarga bo'lishni o'rganamiz
MODUL NIMA?
Funksiyaning qulayliklaridan biri, ko'p takrorlanadigan kodlarni funksiya ichida yashirishimiz va kerak bo'lgan murojat qilishimiz mumkinligida. Maqsadimiz dasturimizni ixcham va tushunarli qilib, kelajakda o'zimiz yoki boshqalar uchun ham "toza" kod qoldrisih. Bu yo'nalishda yana bir qadam qo'yib, dasturimizni modullarga ajratimshimiz mumkin.
Modul bu loyihamiz ichidagi alohida fayl bo'lib, dasturimiz davomida ishlatiladigan funskyalarni (va o'zgaruvchilarni) mana shu faylga joylab, ko'zdan yashirib qo'yishimiz mumkin. Bu bizga asosiy dasturimizdan chalg'imasdan kod yozish imkoniyatini beradi.
Modul va uning ichidagi funksiyalarni istalgan payt asosiy dasturimizga yuklab olishimiz, modullarni boshqa dasturchilar bilan ulashishimiz yoki kelajakda o'zimizning boshqa loyihalarimizda foydalanishimiz mumkin.
Umuman olganda katta dasturlar bir nech o'nlab modullardan iborat bo'lishi tabiiy hol.
MODUL YARATAMIZ
Modul yaratish uchun asosiy dasturimizdagi funksiyalarni yangi faylga ko'chiramiz xolos. Modulga oson murojat qilishimiz uchun, faylimiz asosiy dasturimiz bilan bitta papkada bo'lgani afzal. Bunda adashib ketmaslik uchun, loyihangizning (dasturning) asosiy faylini main.py deb nomlash o'rinli.
Keling, biz ham avto_info_mod.py degan fayl yaratamiz va ichiga quyidagi 3 ta funksiyalarni joylaymiz:
1
def avto_info(kompaniya, model, rangi, korobka, yili, narhi=None):
2
"""Avtomobil haqidagi ma'lumotlarni lug'at ko'rinishida qaytaruvchi funksiya"""
3
avto = {'kompaniya':kompaniya,
4
'model':model,
5
'rang':rangi,
6
'korobka':korobka,
7
'yil':yili,
8
'narh':narhi}
9
return avto
10
11
def avto_kirit():
12
"""Foydalanuvchiga avto_info funksiyasi yordamida bir nechta avtolar haqida ma'lumotlarni bitta ro'yxatga joylash imkonini beruvchi funksiya"""
13
avtolar=[] # salondagi avtolar uchun bo'sh ro'yxat
14
while True:
15
print("\nQuyidagi ma'lumotlarni kiriting",end='')
16
kompaniya=input("Ishlab chiqaruvchi: ")
17
model=input("Modeli: ")
18
rangi=input("Rangi: ")
19
korobka=input("Korobka: ")
20
yili=input("Ishlab chiqarilgan yili: ")
21
narhi=input("Narhi: ")
22
#Foydalanuvchi kiritdan ma'lumotlardan avto_info yordamida
23
#lug'at shakllantirib, har bir lug'atni ro'yxatga qo'shamiz:
24
avtolar.append(avto_info(kompaniya, model, rangi, korobka, yili, narhi))
25
# Yana avto qo'shish-qo'shmaslikni so'raymiz
26
javob = input("Yana avto qo'shasizmi? (yes/no): ")
27
if javob=='no':
28
break
29
return avtolar
30
31
def info_print(avto_info):
32
"""Avtomobillar haqida ma'lumotlar saqlangan lug'atni konsolga chiqaruvchi funksiya"""
33
print(f"{avto_info['rang'].title()} {avto_info['kompaniya'].upper()} "
34
f"{avto_info['model'].upper()}, {avto_info['korobka']} korobka, "
35
f"{avto_info['yil']}-yil, {avto_info['narh']}$")
Copied!
Yuqoridagi funksiyalarga asosiy dasturdan murojat qlishning bir necha usuli bor.
Do'stlaringiz bilan baham: |