logo

Python da chiziqli, tarmoqlanuvchi va takrorlanuvchi jarayonlarni hisoblash

Yuklangan vaqt:

16.11.2024

Ko'chirishlar soni:

0

Hajmi:

6960.12109375 KB
Mavzu:   Python   da   chiziqli,   tarmoqlanuvchi   va   takrorlanuvchi
jarayonlarni hisoblash
Python dasturlash tili bilan chiziqli jarayonlarni hisoblash uchun siz  matplotlib  
kutubxonasidan foydalanishingiz mumkin. Ushbu kutubxona chiziqli grafiklar yaratish, 
datani vizualizatsiya qilish, statistika ko'rsatkichlarni chizish va boshqa chiziqli tahlil 
jarayonlarini amalga oshirish uchun ishlatiladi.
Quyidagi kodda, ikki o'lchamdagi chiziqli jarayon yaratish uchun oddiy misolni ko'rish 
mumkin. Bu misolning asosiy qismi  matplotlib  va  numpy  kutubxonalarini ishlatadi. Agar sizda 
bu kutubxonalar o'rnatilmasa, ularni o'rnatish uchun  terminalda yoki kompyuterda 
quyidagi buyruqlarni ishga tushiring:
pip install matplotlib numpy
Keyin esa, quyidagi kodni Python dasturiga joylashtiring:
import matplotlib.pyplot as plt
import numpy as np
# X o'qiga mos keladigan qiymatlar
x = np.linspace(0, 10, 100)
# Y o'qiga mos keladigan qiymatlar (masalan, y = x ning kvadrati)
y = x**2
# Chiziqli jarayonni yaratish
plt.plot(x, y)
# Grafikni nomlash
plt.title('Chiziqli Jarayon')
# X va Y o'qlarini nomlash
plt.xlabel('X o\'qi')
plt.ylabel('Y o\'qi')
# Chiziqli jarayonni ko'rsatish
plt.show() Bu kod, chiziqli jarayonni yaratadi va uning o'qlarini nomlash uchun foydalanuvchiga
batafsil   ma'lumotlar   beradi.   Siz   o'zingizning   chiziqli   jarayoningizni   yaratish   uchun   x
va  y  o'qlariga mos keladigan qiymatlarni o'zgartirishingiz mumkin
Misol: ikki son berilgan, va siz o'sish va 
kamayishlarini topish uchun to'ldiruva dasturini toping 
def oshish_kamayish(x, y):
    if x < y:
        return "Kamayish"
    elif x > y:
        return "O'shish"
    else:
        return "Teng"
son1 = int(input("Birinchi sonni kiriting: "))
son2 = int(input("Ikkinchi sonni kiriting: "))
natija = oshish_kamayish(son1, son2)
print(f"{son1} va {son2} o'sish yoki kamayish: {natija}")
                        Natija:
Misol:  Chiziqli jarayon vaqti olish:
import time
start_time = time.time()
# Chiziqli jarayon...
end_time = time.time()
execution_time = end_time - start_time
print("Jarayon vaqti:", execution_time, "sekund")
                  Natija: Misol:  Random sonlar generatsiya qilish:
import random
random_number = random.random() # 0 ~ 1 oraliqdagi tasodifiy son
print("Tasodifiy son:", random_number)
 
                                   Natijasi:
TARMOQLANUVCHI
Python dasturlash tilida chiziqli jarayonlar buyruqlar ketma-ketligi asosida 
bajariladi, tarmoqlanuvchi jarayonlarni dasturlashda esa, buyruqlar ma’lum bir 
shartlar asosida tarmoqlanish bo‘yicha bajariladi. Python dasturlash tilida 
tarmoqlanuvchi(shartli) jarayonlarni bir necha turlarga bo‘lingan holda amalga 
oshirish mumkin.
Qisqa shartli operator va uning umumiy ko‘rinishi
Tarmoqlanuvchi jarayonlarni amalga oshiruvchi operatorlarni qisqacha qilib shartli
operatorlar deb yuritamiz. Shartli operatorlar ham qisqa, to‘liq va umumiy shartli 
operator ko‘rinishlarida, tarmoqlanishni amalga oshiradi.  
if operatori
Tarmoqlanuvchi jarayonlarni python dasturlash tilida amalga oshirish uchun, 
albatta, tarmoqlanuvchi algoritmlar asosida bajariladi. Algoritm bajarilish vaqtida 
ma’lum bir shartlar asosida algoritmning u yoki bu qismi bajarilishini ta’minlash 
maqsadida shartli operatorlardan foydalaniladi. 
Tarif:  Algoritm tarkibidagi shart asosida algoritmning tarmoqlarga bo‘linishiga 
xizmat qiluvchi operatorlar  shartli operatorlar  deyiladi. 
Hayotdagi asosiy ko‘p masalalarni dasturlash vaqtida, albatta, tarmoqlanuvchi 
algoritmlar asosida bajariladi. Tarmoqlanuvchi algoritmlar ham ikki xil holatni o‘z 
ichiga oladi, ya’ni shart rost bo‘lganda ma’lum bir vazifani yolg‘on bo‘lganda hech
qanday vazifani bajarmaydi va shart rost bo‘lganda ma’lum bir vazifani yolg‘on  bo‘lganda boshqa vazifani bajaradi. Demak, yuqoridagi ikki holatni e’tiborga olib, 
shartli operatorlar ham qisqa va to‘liq ko‘rinishga ega. Qisqa shartli operatorning 
umumiy ko‘rinishi quyidagicha 
if <mantiqiy ifoda>:
operatorlar  
if operatori tarkibida shartlar ikki va undan ortiq bo‘lsa oldingi bobdagi mantiqiy 
ifodalar asosida birlashtiriladi. if operatori tarkibidagi shart faqat chin 
bo‘lgandagina : dan keyingi opertorlar bajariladi.
Misol:
#1 dan 10 gacha sonlar takrorlanishi
for i in range(1, 11):
      print(i)
                      Natijasi
Misol :   Berilgan sonning juft yoki toq ekanligini aniqlang . Misol Berilgan son juft bo‘lsa 2 ga ko‘paytirib juft so‘zini aks holda toq 
bo‘lsa 3 ga ko‘paytirib toq so‘zini ekranga chop eting.
Natija: Misol:istalgan sonning darajasini hisoblash
# Foydalanuvchidan son kiritish
son = float(input("Istalgan sonni kiriting: "))
daraja = int(input("Darajani kiriting: "))
# Darajani hisoblash
if daraja > 0:
    natija = son ** daraja
    print(f"{son} ning {daraja}-chi darajasi: {natija}")
elif daraja == 0:
    print(f"{son} ning 0-chi darajasi: 1")
else:
print("Manfiy darajalar uchun hisoblash mavjud emas.") Natijasi
Misol: Kiritilgan sonning ishorasini aniqlash 
# Foydalanuvchidan son kiritish
son = float(input("Istalgan sonni kiriting: "))
# Sonni tekshirish va baholash
if son > 0:
    print("Siz kiritgan son musbat.")
elif son < 0:
    print("Siz kiritgan son manfiy.")
else:
    print("Siz kiritgan son nolga teng.")
Natijasi:
Misol:   Yoshga bog'liq retseptni aniqlash
# Foydalanuvchidan yosh kiritish
yosh = int(input("Yoshingizni kiriting: "))
# Yoshga bog'liq retsept
if yosh < 0:
    print("Nimadir noto'g'ri ketmoqda.")
elif 0 <= yosh < 3:
    print("Siz balaga teng bo'lgansiz, steril ichingiz mumkin.")
elif 3 <= yosh < 7:
    print("Siz bolabon bo'lgansiz, choy ichingiz mumkin.")
elif 7 <= yosh < 18:
    print("Siz yosh katta bolabonsiz, kofe ichingiz mumkin.") else:
    print("Siz balog'atsiz, istalgan ichimlikni tanlang.")
Natijasi: TAKRORLANUVCHI
Dastur tuzish jarayonida ba’zi bir masalalarni algoritmlari tarkibidagi buyruqlar 
ikki va undan ortiq marta bajarilishiga to‘g‘ri keladi. Agar algoritm tarkibidagi bir 
necha marta takrorlanishi kerak bo‘lgan buyruqlarni takrorlanuvchi jarayonlar 
asosida dasturlash tillarida tasvirlanmasa, bu buyruqlarni barchasini bajarish 
murakkablashadi. Elektron hisoblash mashinalarini insoniyatdan farqi shundaki, 
insoniyatda bir nechta buyruqlarni bajarish davomida toliqish holatlari bo‘lishi 
mumkin, elektron hisoblash mashinalariga takrorlanishni qanchaligini ma’lum bir 
buyruqlar asosida berilsa, ular barchasini charchamasdan bajaradi. Ba’zi bir 
takrorlanuvchi jarayonlarni, takrorlanish formulasini chiqarib oddiy hisoblash 
mumkin, lekin ixtiyoriy ketma ketliklar yig‘indisini hisoblash oddiy usullar bilan 
hal etilmaydi, bunday holatlarda takrorlanuvchi jarayonlardan foydalaniladi. 
Tarif:  Algoritmning qandaydir qismidagi buyruqlar ikki va undan ortiq 
bajarilishiga  takrorlanuvchi jarayonlar  deyiladi.
 Yuqoridagi ta’rifga etibor qaratsak, demak algoritmning qandaydir qismi ikki va 
undan ortiq bajarilishi mumkin bo‘lgan holatlar ham mavjud. Bunda dasturchiga 
shunday vazifa qo‘yiladiki takrorlanish holatini bir yaxlit buyruq asosida 
kompyuterga qulay usulda berish kerak. 
Takrorlanuvchi jarayonlarni quyidagi blok sxema ko‘rinishda ixtiyoriy dasturlash 
tilida tasvirlash mumkin.
Yuqoridagi blok sxema shaklida shart toki chin bo‘lgunga qadar takrorlanish 
bajarilaveradi, aks holda takrorlanish to‘xtatiladi. Python dasturlash tillarida takrorlanuvchi jarayonlarni quyidagi usullar yordamida 
tasvirlash mumkin.
 -Parametr bo‘yicha takrorlash(for); 
-Shart bo‘yicha takrorlash(while, do while).
for(sikl) operatori
  Takrorlanuvchi jarayonlarni takrorlanish soni aniq bo‘lgan holatlardagina 
parameter bo‘yicha takrorlash usulidan foydaliniladi. Takrorlanuvchi jarayonlarni 
parametr bo‘yicha Python dasturlash tilida tasvirlash uchun, albatta, takrorlanish 
soniga e’tibor berish kerak. Parametr bo‘yicha takrorlanuvchi jarayonlarga, 
masalan, birdan n gacha sonlarning kvadratlarini yig‘indisini topish kabi misollar 
kiradi. Bunda takrorlanish soni aniq, ya’ni birdan dan n gacha deb berilyapti. 
Parametr bo‘yicha takrorlanuvchi jarayonlar takrorlanish oshishi yoki 
kamayishiga qarab ikki turga bo‘linadi: 
- noldan boshlab qadam 1 ga teng bo‘lgan takrorlanish(1-tur); 
- a dan boshlab qadam 1 ga teng bo‘lgan takrorlanish(2-tur); 
- a dan boshlab b gacha qadam x ga teng bo‘lgan takrorlanish(3-tur). 
Takrorlanuvchi jarayonlarni dasturlash vaqtida takrorlanish qadami birga oshib 
borilsa, birinchi turdan foydaliniladi. 1-tur takrorlanish qadami noldan boshlanib 
birga oshib boruvchi parameter bo‘yicha sikl operatorining umumiy ko‘rinishi 
quyidagicha.  Misol:  . 1 dan n gacha sonlarning kublari yig‘indisini 
hisoblash dast urini t uzing.
def kublar_yigindisi(n):
    yigindi = 0
    for i in range(1, n + 1):
        yigindi += i ** 3
    return yigindi
# Foydalanuvchidan son olish
n = int(input("n ni kiriting: "))
# Kublar yig'indisini hisoblash
natija = kublar_yigindisi(n)
# Natijani chiqarish
print(f"1 dan {n} gacha sonlarining kublari yig'indisi: {natija}")
Natiasi:
Misol: Berilgan sonlarning juft va toqlarini aniqlash.
def juft_toqlarini_aniqlash(sonlar):
    juftlar = []
    toqlar = []
    for son in sonlar:
        if son % 2 == 0:
            juftlar.append(son)         else:
            toqlar.append(son)
    return juftlar, toqlar
# Foydalanuvchidan sonlar olish
sonlar = list(map(int, input("Bir nechta sonlarni kiring (bo'sh joy orqali 
ajratib yozing): ").split()))
# Juft va toqlarini aniqlash
juftlar, toqlar = juft_toqlarini_aniqlash(sonlar)
# Natijalarni chiqarish
print(f"Kiritilgan sonlar: {sonlar}")
print(f"Juft sonlar: {juftlar}")
print(f"Toq sonlar: {toqlar}")
Natiasi:
Misol:Sonning natural bo‘luvchilar soni va natural bo‘luvchilar yigindisini
hisoblash dasturi tuzilsin.
def natural_boluvchilar_soni_va_yigindisi(son):
    natural_boluvchilar = []
    yigindi = 0
    for i in range(1, son + 1):
        if son % i == 0:
            natural_boluvchilar.append(i)
            yigindi += i     return natural_boluvchilar, yigindi
# Foydalanuvchidan son olish
son = int(input("Istalgan sonni kiriting: "))
# Natural bo'luvchilar soni va ularning yig'indisini hisoblash
natural_boluvchilar, yigindi = natural_boluvchilar_soni_va_yigindisi(son)
# Natijalarni chiqarish
print(f"{son} ning natural bo'luvchilar soni: {natural_boluvchilar}")
print(f"{son} ning natural bo'luvchilar yig'indisi: {yigindi}")
Natiasi:
Laboratoriya mashg’uloti_2
Mavzu:  Pythonda sinflar bilan ishlash.
Python Sinflari va Obyektlari
Python dasturlash tili obyekt ga yo'naltirilgan dasturlash tili hisoblanib 
undagi deyarli hamma narsa o'zining xususiyatlari  va usullari bilan 
obyektdir. 
Sinf (class) yaratish
Sinf yaratish uchun  class  ko'makchi so'zidan foydalanishingiz mumkin. 
misol uchun quyidagi misolni keltiramiz.
class   MyClass:
  x  =   " Uzbek   Devs "
Obyekt yaratish Biz obyekt yaratishimiz uchun yuqorida yaratgan  MyClass  sinfimizdan 
foydalanishimiz mumkin.
p1 =  MyClass ()
print (p1.x)
Natija:
Uzbek Devs
__init __( )   funksiyasi
Yuqorida keltirilgan misollar eng oddiy sinf va obyekt hisoblanib 
ko'pchilik vaqtda qo'llanilmaydi. Sinflarning ma'nosini  tushunishimiz 
uchun biz avvalambor __init__() funksiyasini  tushunib olishimiz zarur 
hisoblanadi. Barcha funksiyalarda __init__() funksiyasi  mavjud bo'lib, u 
har doim sinf ishga tushganda bajariladi.
class   Person:
    def   __init__ (self, name, age):
        self.name = name
       self.age = age
p1 = Person( "Furqat" ,   26 )
print (p1.name) print (p1.age)
Natija:
Furqat
26
Eslatma:  Funksiya __init__() har safar yangi obyekt yaratish uchun sinfdan
foydalanganda avtomatik ravishda chaqiriladi.
Obyekt parametrlarni o'zgartirish
Siz quyidagicha obyekt parametrlarini o'rgartirishingiz mumkin.
p1.age  =   40
Obyekt parametrlarni o'chirish
del   p1 .age                                      Misollar
#1.Sinf nomli class yarating.Classda talaba1,talaba2 nomli 
atributlari bo`lsin.
class Sinf:
    def __init__(self, ism, yosh, baholangan_fanlar):
        self.ism = ism
        self.yosh = yosh
        self.baholangan_fanlar = baholangan_fanlar
    def tanishtirish(self):
        print(f"Ism: {self.ism}, Yosh: {self.yosh}, Baholangan fanlar: 
{self.baholangan_fanlar}")
# Sinfdan obyektlar yaratish
talaba1 = Sinf("Azizbek Daminov", 20, ["Matematika", 
"Informatika", "Fizika"])
talaba2 = Sinf("Mehroj Latifov", 22, ["Informatika", "Ingliz tili", 
"Kimyo"])
# Obyektlarni chiqarish
talaba1.tanishtirish()
talaba2.tanishtirish()
 
Natijasi: #2 ю  Dog  sinfi yarating va uning ichida  species  nomli klassning umumiy 
qiymati ( Canis familiaris ) bo`lsin.
Bu misolda  Dog  sinfi yaratilgan va uning ichida  species  nomli klassning
umumiy qiymati ( Canis familiaris ) bor. Obyekt yaratilganda uning
ichidagi  name  va  age  atributlari ma'lum qiymatlar bilan to'ldiriladi.  bark  nomli
metod esa "Woof!" degan so'zni chiqaradi.
Laboratoriya mashg’uloti_3
Mavzu: Python da matn va satrlar bilan ishlash
Satrlar
Python   dasturlash   tilida   satr   turi   va   ulardan   foydalanish   usullari   va
tamoyillarini   qarab   o‘tamiz.   Satr   turi   bu   belgilardan   tashkil   topgan   ma’lumotlar
majmuasi hisoblanadi. Satrlarning uzunligini aniqlash, satrlarni nusxalash, satrlarni
kerakli joyga o‘rnatish kabi amallarni bajarish uchun Python dasturlash tilida keng
imkoniyatlar mavjud. Python dasturlash tilida satrlar ham boshqa turlar kabi oldin
dastur   tarkibida   e’lon   qilinishi   ta’lab   etilmaydi.   Python   dasturlash   tilida   ixtiyoriy tur ma’lumotlaridan foydalanish va ular ustida amallar bajarish mimkin, dasturlash
muhitida   boshqa   turlar   kabi   satrli   turlar   ham   mavjud.   Python   dasturlash   tilida
satrlarni belgilar massivi sifatida ishlatish imkoniyati mavjud. 
Ta’rif:   Alohida   nom   bilan   saqlanuvchi   bir   nechta   belgilardan   tashkil   topgan
belgilar majmuasi satr deyiladi.
Satrlarni belgilar massivi sifatida qarab ular ustida amallar bajarish mumkin.
Python dasturlash tilida satrlar nol(‘\0’) terminatori bilan tugaydi. Nol terminatori
bilan tugaydigan satrlar ASCIIZ –satrlari deyiladi.
  Satrlardan   foydalanish   va   ular   ustida   amallar   bajarish   uchun   albatta   oldin
ularni   shakllantirish   kerak.   Satr   turiga   mansub   bo‘lmagan   o‘zgaruvchilarni   str()
funksiyasi   orqali   satr   turiga   aylantiriladi.   Satrlar,   belgilar   massivi   bo‘lganligi
sababli   uning   elementlariga   indeks   bo‘yicha   murojaat   qilinadi.   Satrlarni
shakllantirish uchun quyidagi dasturlarga etibor bering.
Python dasturlash tilida satrlarning elementlari 0-tartibdan boshlanadi va satr
tarkibida   ixtiyoriy   turdagi   belgilarni   qayta   ishlash   imkoniyati   mavjud.   Dasturlash
texnologiyalarida   shunday   holatlar   bo‘ladiki,   bunda   sonli   ma’lumotlar   va   satrli
ma’lumotlarni bir biriga almashtirish kerak bo‘ladi. Bunday almashtirishlarni int(),
float()   va   str()   funksiyalari   amalga   oshiradi   bu   funksiyalarni   qo‘llanmaning   I-
boboda   keltirib   o‘tganmiz.   int(),   float()   va   str()   funksiyalarni   ishlash   jarayoni
quyidagi dasturda keltirilgan. Satr elementlariga teskaridan ham murojaat qilish imkoniyati mavjud, bunda
indeks manfiy tartibda beriladi. S[-1] – bu eng oxirgi element hisoblanadi.
  Python dasturlash tilida har bir belgining maxsus kodi(key)ni va bu kodga
mos belgini aniqlash imkoniyati mavjud. 
ord()  – bu funksiya ixtiyoriy belgini maxsus kodini aniqlaydi 
chr()  – bu funksiya maxsus kodga mos belgini aniqlaydi 
ord()  va  chr()  funksiyalarni ishlash jarayoni quyidagi dasturda keltirilgan. Python dasturlash tilida string turdagi satrlar ustida bir nechta qo‘shimcha amallar
bajarish   mumkin.   Python   dasturlash   tilida   string   satrlari   ustida   quyidagi
qo‘shimcha amallarni bajarish mumkin. Misol. S satr tarkibida x belgi sonini aniqlash dasturini tuzing.
def x_belgilari_soni(satr):
    x_soni = satr.count('x')
    return x_soni
# Foydalanuvchidan satr olish
satr = input("Istalgan satrni kiriting: ")
# Satrda x belgilari sonini hisoblash
x_soni = x_belgilari_soni(satr)
# Natijani chiqarish
print(f"Satrda 'x' belgilari soni: {x_soni}")
Natijasi: Misol:   . S satr tarkibida so‘zlar sonini aniqlash dasturini tuzing.
def sozlar_soni(satr):
    sozlar = satr.split()
    sozlar_soni = len(sozlar)
    return sozlar_soni
# Foydalanuvchidan satr olish
satr = input("Istalgan satrni kiriting: ")
# Satrda so'zlar sonini hisoblash
sozlar_soni = sozlar_soni(satr)
# Natijani chiqarish
print(f"Satrda so'zlar soni: {sozlar_soni}")
Natijasi:
Misol:   . Berilgan satrda nechta raqam borligini aniqlash dasturini tuzing
def raqamlar_soni(satr):
    raqamlar_soni = sum(c.isdigit() for c in satr)
    return raqamlar_soni
# Foydalanuvchidan satr olish satr = input("Istalgan satrni kiriting: ")
# Satrda raqamlar sonini hisoblash
raqamlar_soni = raqamlar_soni(satr)
# Natijani chiqarish
print(f"Satrda raqamlar soni: {raqamlar_soni}")
Natijasi:
Laboratoriya mashg’uloti_4
Mavzu:   Tkinter,   Trutle,   PyQt   kutubxonalari   yordamida
foydalanuvch dinamik interfeysini yaratish 
Pythonning   Tkinter   kutubxonasi   yordamida   biz   Pythonda   yozilgan
dasturlarni   interfeys   bilan   ta'minlaymiz.Tkinter   nafaqat   interfeys   bIlan
balki   vidjetlar   bilan   ta'minlovchi   kutubxonadir.   Vidjetlarga   tugmalar
(button),   Nishonlar   (Label)   va   boshqalar   kiradi.Demak   Tkinter   birinchi
dasturni tuzishni boshlaymiz.
from  Tkinter  import  Label , mainloop
 Label (text= " has to be the\nsimplest bit of code" ).pack ()
 mainloop ()
Endi kodni tushuntirishni boshlayman.
1. from Tkinter import Label, mainloop
Ushbu qatorda Tkinter kutubxonasidan Label va mainloop vidjetlarni 
ishlatish uchun ruxsat so'ramoqdamiz. Agar so'zma so'z tarjima qilinsa  ham shunday bo'ladi, ya'ni, Tkinterdan Label va mainloopni olib kel. Bu
yerda mainloop asosiy oyna (oddiy tilda aytganda kompyuterdan bizga 
ko'rinib turgan oyna, yuqorisida nomi va - □ × bo'lgan oyna. Label esa 
rasmdagi so'zlar )
2. Label(text='This has to be the\nsimplest bit of code').pack()
Bu qatorda Labelni Text funksiyasi orqali "This has to be the\nsimplest 
bit of code" gapini mainloop ga (ekranga ) chiqarmoqdamiz. Gap 
o'rtasida turgan \n belgisi so'z bir qatorga sig'magani uchun keyingi 
qatorga o'tishini
 ta'minlaydi.pack () orqali Labelni joylashtirmoqdamiz.
3.  mainloop ()
Hammasi tayyor bo'lgandan so'ng asosiy oynani tugaganini bildirmoqda 
miz.Bo'ldi hamma ishni qilib bo'ldim oynani endi ko'rsat demoqdamiz. 
Kompyuter kodingizni ko'rib chiqayotgan vaqtda mainloop () ga to'g'ri 
kelsa tekshirishni tugatib kodda nima yozilgan bo'lsa shularni ekranga 
chiqaradi.
Aksariyat dasturlash tillarida foydalanuvchi bilan o‘zaro aloqani 
o‘rnatish uchun boshqaruv elementlari: oyna, matnlar maydoni va 
tugmachalar ishlatiladi.  Bular umumiy nom bilan foydalanuvchining 
grafik interfeysi (GUI – graphical user interface) deb ataladi.
Barcha elementlar joylashadigan oyna GUIning asosi hisoblanadi. Oyna 
va uning
elementlari (vijetlar)ni yaratish uchun Python standart kutubxonasining 
Tkinter modulidan foydalaniladi.
Tkinter – Pythondagi standart grafik kutubxona. Pythonni o‘rnatganda 
kutubxona
dasturning ichida birga taqdim etiladi. Python o‘rnatilishi bilan GUIga 
ega ajoyib ilovalarni yaratish uchun zarur obyekt va usullardan 
foydalanish imkoniyati vujudga keladi. GUI ilovalarni yaratish uchun:
• Tkinter modulini import qilish;
• Tkinter asosiy oynasini yaratish;
• ilovaga bir yoki bir necha vijetni qo‘shish;
• foydalanuvchi bajaradigan jarayonlarni tushunadigan va ularga javob 
aytaradigan asosiy siklli kodga kirish lozim.
Pythonda Tkinter modulini 2 usulda import qilish mumkin:
1-usul
import tkinter
top = tkinter.Tk()
# Vidjetlarni qo'shish uchun kod bu yerga yoziladi ...
top.mainloop ()
Bu ikkila yozgan kodimiz quyidagi oynani yaratadi:
2-usul
from tkinter import *
top = Tk()
# Vidjetlarni qo'shish uchun kod bu yerga yoziladi ...
top.mainloop ()  
Tkinterni   import   qilishda   bu   ikki   usulning   bir-biridan   farqi   shundaki,
agar   biz   1-usul   ko’rinishida   Tkinter   modulini   import   qilsak:   biz   dastur
kodini   yozayotganimizda   har   bir   tkinter   metodi   oldidan   tkinter   so’zini
yozishga   majburmiz.   Ikkinchi   usulda   esa   bunday   majburiyatdan   halos
bo’lamiz va kodimiz qisqa va aniq ko’rinishdan iborat bo’ladi.
TKINTER WIDGETS (“Tkinter vidjetlari”)
Tkinter GUI dasturida ishlatiladigan tugmalar, yorliqlar va matn qutilari
kabi   turli   xil   boshqaruv   elementlarini   taqdim   etadi.   Ushbu   boshqaruv
elementlari odatda vidjetlar deb nomlanadi.
№ Operatorlar Tavsif
1 Button 
(“Tugma”) Button vidjeti sizning ilovangizdagi 
tugmalarni ko'rsatish uchun ishlatiladi.
2 Canvas 
(“Kanvas”) Canvas vidjeti sizning ilovangizda 
chiziqlar, tasvirlar, ko'pburchaklar va 
to'rtburchaklar kabi shakllarni chizish  uchun ishlatiladi.
3 Checkbutton
(“Tekshirish 
tugmasi”) Checkbutton vidjeti bir qator parametrlarni
tasdiqlash qutisi sifatida ko'rsatish uchun 
ishlatiladi.  Foydalanuvchi bir vaqtning 
o'zida bir nechta variantni tanlashi 
mumkin.
4 Entry 
(“Kirish) Entry vidjeti foydalanuvchidan qiymatlarni
qabul qilish uchun bitta qatorli matn 
maydonini ko'rsatish uchun ishlatiladi.
5 Frame 
(“Kvadrat”) Frame vidjeti boshqa vidjetlarni tartibga 
solish uchun konteyner vidjeti sifatida 
ishlatiladi.
6 Label 
(“Yorliq”) Label vidjeti boshqa vidjetlar uchun bitta 
qatorli sarlavha bilan ta'minlash uchun 
ishlatiladi.  Unda tasvirlar ham bo'lishi 
mumkin.
7 Listbox Listbox vidjeti foydalanuvchiga 
imkoniyatlar ro'yxatini taqdim etish uchun 
ishlatiladi.
8 Menubutton 
(“Menyu 
tugmasi”) Menubutton vidjeti sizning ilovangizda 
menyularni ko'rsatish uchun ishlatiladi.
9 Menu 
(“Menyu”) Menu vidjeti foydalanuvchiga turli xil 
buyruqlar berish uchun ishlatiladi.  Ushbu  buyruqlar Menubutton-da joylashgan 
bo’ladi.
10 Message 
(“Xabar”) Message vidjeti foydalanuvchidan 
qiymatlarni qabul qilish uchun ko'p satrli 
matn maydonlarini ko'rsatish uchun 
ishlatiladi.
11 Radiobutton 
(“Radion 
tugmasi”) Radiobutton vidjeti bir qator parametrlarni 
radio tugmalari sifatida ko'rsatish uchun 
ishlatiladi. Bunda foydalanuvchi bir 
vaqtning o'zida faqat bitta variantni 
tanlashi mumkin bo’ladi.
12 Scale 
(“Miqyosi”) Scale vidjeti slayder vidjetini ta'minlash 
uchun ishlatiladi.
13 Scrollbar 
(“Otkazish 
paneli”) Scrollbar vidjeti turli xil vidjetlarga, 
masalan, ro'yxat qutilariga o'tish 
imkoniyatini qo'shish uchun ishlatiladi.
14 Text (“Matn”) Text vidjeti matnni bir necha qatorda aks 
ettirish uchun ishlatiladi.
15 Toplevel 
(“Uchinchi 
daraja”) Toplevel vidjeti alohida oyna idishini 
ta'minlash uchun ishlatiladi.
16 Spinbox Spinbox vidjeti - bu standart Tkinter Entry 
vidjetining bir varianti bo'lib, u 
belgilangan qiymatlar orasidan tanlash  uchun ishlatilishi mumkin.
17 PanedWindow PanedWindow - bu gorizontal yoki 
vertikal holda joylashtirilgan har qanday 
oynani o'z ichiga oladigan konteyner 
vidjeti.
18 Labelframe Labelframe - bu oddiy konteyner vidjeti. 
Uning asosiy maqsadi - oynalarning 
murakkab joylashuvi uchun oraliq yoki 
konteyner vazifasini bajarish.
19 Messagebox tkMessageBox - Ushbu modul sizning 
ilovalaringizda xabarlar qutilarini 
ko'rsatish uchun ishlatiladi.
1. Tkinter -ni import qilamiz va unga nom beradigan oyna yaratamiz:    
Oxirgi   qator   mainloop   funksiyasini   chaqiradi.   Bu   funksiya   oynaning
cheksiz   aylanishiga   olib   keladi,   shuning   uchun   u   yopilguncha
foydalanuvchi har qanday o'zaro ta'sirini kutadi. Agar   siz   mainloop   funktsiyasini   chaqirishni   unutgan   bo'lsangiz,
foydalanuvchiga hech narsa ko'rsatilmaydi.
2. Label vidjetini yaratish
Oldingi   misolimizga   matn   qo'shish   uchun   Label   sinfidan   foydalanib
label1 yaratamiz, masalan:
label1= Label(window, text="Salom dasturchi")
Keyin biz grid funktsiyasidan foydalanib oynadagi o'rnini o'rnatamiz va
uni quyidagicha belgilaymiz:
label1.grid(column=0, row=0)  
  Agar grid funktsiyasi chaqirilmasa, label matni ko'rsatilmaydi.
Siz   matn   shriftini   va   hajmini   sozlashingiz   mumkin.   Siz   shrift   metodini
ham   o'zgartirishingiz   mumkin.   Buning   uchun   shrift   parametrini
quyidagicha o'zgartiramiz:
label1   =   Label(window,   text="Salom   dasturchi",   font=("Times   New
Roman", 30))
Shuni   esda   tutingki,   shrift   parametrini   har   qanday   vidjetga   o'tkazish
mumkin, uning shriftini o'zgartirish uchun u faqat Labelga tegishli emas. 3.   Ilova oynasining hajmini sozlash
geometriya   funksiyasidan foydalanib, biz oynaning standart hajmini 
quyidagicha sozlashimiz mumkin:Ilova oynasining hajmini sozlash
window.geometry('350x150')
Yuqoridagi   satr   oynani   kengligi   350   piksel   va   balandligi   150
pikselgacha o'rnatadi.
from tkinter import *        
4.   Button   vidjetini   qo'shishOynaga   button   qo'shishdan   boshlaylik.
Button xuddi Labeldagi kabi yaratiladi va oynaga qo'shiladi:  
5.   Matn   rangini   va   tugma   fonini   o'zgartirishSiz   Button   yoki   boshqa
vidjet   matnining   rangini   fg   xususiyatidan   foydalanib   o'zgartirishingiz
mumkin.Bundan   tashqari,   bg   xususiyati   yordamida   istalgan   vidjetning
fon rangini o'zgartirishingiz mumkin.
button1 = Button(window, text="Natija", bg="yellow", fg="blue"))
Agar   siz   tugmani   bosmoqchi   bo'lsangiz,   hech   narsa   bo'lmaydi,   chunki
tugmani bosish hodisasi hali yozilmagan. Laboratoriya   mashg ’ uloti _5
Mavzu :     Matplotlib   kutubxonasi   orqali   2   va   3-o`lchamli
grafiklar hosil qilish
Matplotlib,   Python   dasturlash   tilida   grafiklar,   diagrammalar   va
chizmalar   yaratish   uchun   foydalaniladigan   kuchli   va   mashhur
kutubxonadir.   Ushbu   kutubxona   grafiklar   va   tasvirlarni   hosil   qilish,
tahlil   qilish,   ma'lumotlar   vaqtincha   ko'rsatilishi,   matematik
funksiyalarini   vizualizatsiyalash,   ilova   interfeyslarini   tasvir   qilish   va
boshqa   bir   qator   vizual   tahlil   va   tasvirlar   yaratishda   juda   samarali
bo'ladi.
Quyidagi   asosiy   xususiyatlar   Matplotlib   kutubxonasini   tushuntirish
uchun muhim:
1.  Plot   yaratish:   Matplotlib   orqali,   plot()   funktsiyasi   yordamida
xususiy   ma'lumotlar   bo'yicha   grafiklar   hosil   qilish   mumkin.   Ushbu
metod   orqali   liniyali,   nuqta,   va   boshqa   turdagi   grafiklar   yaratish
mumkin.
2.  Diagrammalar:   bar() ,   barh() ,   pie()   va   boshqa   metodlar
orqali istalgan turlarda diagrammalar yaratish mumkin.
3.  3D   Grafiklar:   Matplotlib   3-o'lchamli   grafiklar   (3D   plots)   yaratish
uchun imkoniyatlar ta'minlaydi.   plot_surface() ,   scatter() , va
boshqa metodlar orqali 3-o'lchamli obyektlarni hosil qilish mumkin.
4.  Diagramma   tuzish:   Matplotlib   orqali   diagramma   tuzish   uchun
foydalanuvchiga   yuzlab   turdagi   parametrlarni   belgilash   imkoniyatini
beradi. 5.  Customizatsiya:   Matplotlib   orqali   yaratilgan   grafiklar   va   tasvirlarni
boshqa   kutubxonalar   bilan   integratsiya   qilish,   ranglarni   o'zgartirish,
labellar   va   yorliqlarni   qo'shish,   sahifaga   chiqarish   va   boshqa   ko'plab
ko'rinishlarni oz ichiga oladi.
2- o'lchamli Grafik (Line Plot): 3- o'lchamli Grafik (Scatter Plot):  Bu   misollarda,   matplotlib.pyplot   modulidan   foydalanilgan.
Birinchi   misolda,   plot()   funksiyasi   orqali   2-o'lchamli   grafik   hosil
qilinadi.   Ikkinchisida   esa,   scatter()   funksiyasi   yordamida   3-
o'lchamli   (scatter)   grafik   hosil   qilinadi.   xlabel ,   ylabel ,   va   title
funksiyalari   yordamida   diagrammaning   x,   y   o'qlarini   va   sarlavhalarni
belgilash mumkin . show()  funksiyasi esa grafikni ekranga chiqaradi. Foydalanilgan adabiyotlar:
1.  Лутц М. Изучаем Python. 4-е издание. –Пер. с англ. / –СПб.: Символ-Плюс, 2011. –
1280 с., ил. ISBN:978-5 -93286-1 59-2
2.  Саммерфилд М. Pythonна практике. –  Пер. с англ. / –М.: ДМК Пресс, 2014. – 338 с., 
ил. ISBN:978-5 -97060-095-5.
3.  Álvaro Scrivano. (2019). Coding with Python. Minneapolis: Lerner Publications
4.  Bill Lubanovic. (2019). Introducing Python : Modern Computing in Simple Packages. 
[N.p.]: O’Reilly Media.
5.  Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. 
Гуриков. — М. : ФОРУМ : ИНФРА-М, 2017. — 343 с. — (Высшее образование: 
Бакалавриат)

Mavzu: Python da chiziqli, tarmoqlanuvchi va takrorlanuvchi jarayonlarni hisoblash Python dasturlash tili bilan chiziqli jarayonlarni hisoblash uchun siz matplotlib kutubxonasidan foydalanishingiz mumkin. Ushbu kutubxona chiziqli grafiklar yaratish, datani vizualizatsiya qilish, statistika ko'rsatkichlarni chizish va boshqa chiziqli tahlil jarayonlarini amalga oshirish uchun ishlatiladi. Quyidagi kodda, ikki o'lchamdagi chiziqli jarayon yaratish uchun oddiy misolni ko'rish mumkin. Bu misolning asosiy qismi matplotlib va numpy kutubxonalarini ishlatadi. Agar sizda bu kutubxonalar o'rnatilmasa, ularni o'rnatish uchun terminalda yoki kompyuterda quyidagi buyruqlarni ishga tushiring: pip install matplotlib numpy Keyin esa, quyidagi kodni Python dasturiga joylashtiring: import matplotlib.pyplot as plt import numpy as np # X o'qiga mos keladigan qiymatlar x = np.linspace(0, 10, 100) # Y o'qiga mos keladigan qiymatlar (masalan, y = x ning kvadrati) y = x**2 # Chiziqli jarayonni yaratish plt.plot(x, y) # Grafikni nomlash plt.title('Chiziqli Jarayon') # X va Y o'qlarini nomlash plt.xlabel('X o\'qi') plt.ylabel('Y o\'qi') # Chiziqli jarayonni ko'rsatish plt.show()

Bu kod, chiziqli jarayonni yaratadi va uning o'qlarini nomlash uchun foydalanuvchiga batafsil ma'lumotlar beradi. Siz o'zingizning chiziqli jarayoningizni yaratish uchun x va y o'qlariga mos keladigan qiymatlarni o'zgartirishingiz mumkin Misol: ikki son berilgan, va siz o'sish va kamayishlarini topish uchun to'ldiruva dasturini toping def oshish_kamayish(x, y): if x < y: return "Kamayish" elif x > y: return "O'shish" else: return "Teng" son1 = int(input("Birinchi sonni kiriting: ")) son2 = int(input("Ikkinchi sonni kiriting: ")) natija = oshish_kamayish(son1, son2) print(f"{son1} va {son2} o'sish yoki kamayish: {natija}") Natija: Misol: Chiziqli jarayon vaqti olish: import time start_time = time.time() # Chiziqli jarayon... end_time = time.time() execution_time = end_time - start_time print("Jarayon vaqti:", execution_time, "sekund") Natija:

Misol: Random sonlar generatsiya qilish: import random random_number = random.random() # 0 ~ 1 oraliqdagi tasodifiy son print("Tasodifiy son:", random_number) Natijasi: TARMOQLANUVCHI Python dasturlash tilida chiziqli jarayonlar buyruqlar ketma-ketligi asosida bajariladi, tarmoqlanuvchi jarayonlarni dasturlashda esa, buyruqlar ma’lum bir shartlar asosida tarmoqlanish bo‘yicha bajariladi. Python dasturlash tilida tarmoqlanuvchi(shartli) jarayonlarni bir necha turlarga bo‘lingan holda amalga oshirish mumkin. Qisqa shartli operator va uning umumiy ko‘rinishi Tarmoqlanuvchi jarayonlarni amalga oshiruvchi operatorlarni qisqacha qilib shartli operatorlar deb yuritamiz. Shartli operatorlar ham qisqa, to‘liq va umumiy shartli operator ko‘rinishlarida, tarmoqlanishni amalga oshiradi. if operatori Tarmoqlanuvchi jarayonlarni python dasturlash tilida amalga oshirish uchun, albatta, tarmoqlanuvchi algoritmlar asosida bajariladi. Algoritm bajarilish vaqtida ma’lum bir shartlar asosida algoritmning u yoki bu qismi bajarilishini ta’minlash maqsadida shartli operatorlardan foydalaniladi. Tarif: Algoritm tarkibidagi shart asosida algoritmning tarmoqlarga bo‘linishiga xizmat qiluvchi operatorlar shartli operatorlar deyiladi. Hayotdagi asosiy ko‘p masalalarni dasturlash vaqtida, albatta, tarmoqlanuvchi algoritmlar asosida bajariladi. Tarmoqlanuvchi algoritmlar ham ikki xil holatni o‘z ichiga oladi, ya’ni shart rost bo‘lganda ma’lum bir vazifani yolg‘on bo‘lganda hech qanday vazifani bajarmaydi va shart rost bo‘lganda ma’lum bir vazifani yolg‘on

bo‘lganda boshqa vazifani bajaradi. Demak, yuqoridagi ikki holatni e’tiborga olib, shartli operatorlar ham qisqa va to‘liq ko‘rinishga ega. Qisqa shartli operatorning umumiy ko‘rinishi quyidagicha if <mantiqiy ifoda>: operatorlar if operatori tarkibida shartlar ikki va undan ortiq bo‘lsa oldingi bobdagi mantiqiy ifodalar asosida birlashtiriladi. if operatori tarkibidagi shart faqat chin bo‘lgandagina : dan keyingi opertorlar bajariladi. Misol: #1 dan 10 gacha sonlar takrorlanishi for i in range(1, 11): print(i) Natijasi Misol : Berilgan sonning juft yoki toq ekanligini aniqlang .

Misol Berilgan son juft bo‘lsa 2 ga ko‘paytirib juft so‘zini aks holda toq bo‘lsa 3 ga ko‘paytirib toq so‘zini ekranga chop eting. Natija: