Skip to content

9-dars: Modullar, paketlar va pip

Dars

Davomiyligi: 90 daqiqa Maqsad: Modul import, standart kutubxonalar, pip orqali yangi kutubxonalar o'rnatish.

1. Modul nima?

Modul.py fayl.

Boshqa fayldan import qilib funksiyalarini ishlatish mumkin.

python
# math_utils.py
def square(n):
    return n ** 2

def cube(n):
    return n ** 3
python
# main.py
import math_utils

print(math_utils.square(5))   # 25
print(math_utils.cube(3))     # 27

2. Import variantlari

python
# To'liq modul
import math
print(math.pi)

# Boshqa nom (alias)
import numpy as np

# Faqat ba'zi funksiyalar
from math import pi, sqrt
print(pi)
print(sqrt(16))

# Hammasini (yomon uslub)
from math import *
print(pi, e, tau)

# Boshqa nom bilan
from math import sqrt as kvadrat_ildiz
print(kvadrat_ildiz(25))

3. Asosiy standart kutubxonalar

Hammasi bepul va o'rnatilgan.

4. math

python
import math

math.pi              # 3.14159...
math.e               # 2.71828...
math.sqrt(25)        # 5.0
math.pow(2, 10)      # 1024.0
math.factorial(5)    # 120
math.gcd(48, 18)     # 6
math.log(10)         # natural log
math.log2(8)         # 3.0
math.log10(100)      # 2.0
math.sin(math.pi)    # ~0
math.floor(3.7)      # 3
math.ceil(3.1)       # 4
math.inf             # cheksizlik
math.nan             # not a number

5. random

python
import random

random.random()              # 0.0–1.0
random.randint(1, 100)        # 1–100 (inclusive)
random.uniform(1.0, 10.0)     # float
random.choice([1, 2, 3])      # birini tanlash
random.sample([1,2,3,4,5], 3) # 3 ta noyob
random.shuffle([1,2,3])       # aralashtirish
random.seed(42)               # takrorlanadigan

6. datetime

python
from datetime import datetime, date, time, timedelta

now = datetime.now()
print(now)                       # 2026-05-15 14:30:00

today = date.today()
print(today)                     # 2026-05-15

# Format
print(now.strftime("%Y-%m-%d"))  # 2026-05-15
print(now.strftime("%H:%M:%S"))  # 14:30:00
print(now.strftime("%d/%m/%Y %H:%M"))

# Parse
d = datetime.strptime("2026-05-15", "%Y-%m-%d")

# Arithmetic
tomorrow = today + timedelta(days=1)
last_week = today - timedelta(days=7)

# Farq
diff = datetime(2030, 1, 1) - datetime.now()
print(diff.days)

Format codes

CodeMa'no
%YYil (2026)
%mOy (05)
%dKun (15)
%HSoat 24 (14)
%ISoat 12 (02)
%MDaqiqa
%SSekund
%AHafta kuni (Friday)
%BOy nomi (May)

7. os

python
import os

os.getcwd()                  # hozirgi katalog
os.listdir(".")              # papka tarkibi
os.mkdir("new")              # papka yaratish
os.remove("file.txt")
os.rename("old.txt", "new.txt")

os.path.exists("file.txt")
os.path.isfile("file.txt")
os.path.isdir("folder")
os.path.join("a", "b", "c")  # "a/b/c"
os.path.basename("/path/file.txt")  # "file.txt"
os.path.splitext("file.txt")        # ("file", ".txt")

os.environ.get("HOME")       # env variable

8. sys

python
import sys

print(sys.argv)              # command line argumentlar
print(sys.version)           # Python versiyasi
print(sys.platform)          # 'darwin', 'linux', 'win32'

sys.exit(0)                  # dasturni tugatish
sys.exit(1)                  # xato bilan
bash
$ python3 script.py arg1 arg2 arg3
python
# script.py
import sys
print(sys.argv)
# ['script.py', 'arg1', 'arg2', 'arg3']

9. time

python
import time

start = time.time()           # sekundlarda
time.sleep(2)                 # 2 sekund kutish
end = time.time()
print(f"Vaqt: {end - start}")

time.ctime()                  # readable string

10. collections

python
from collections import Counter, defaultdict, deque, OrderedDict

# Counter — chastota
text = "abacabad"
c = Counter(text)
print(c.most_common(3))    # [('a', 4), ('b', 2), ('c', 1)]

# defaultdict — default value
d = defaultdict(int)
d["a"] += 1
d["b"] += 5
print(d)   # {'a': 1, 'b': 5}

# deque — double-ended queue
q = deque([1, 2, 3])
q.appendleft(0)
q.append(4)
print(q)  # deque([0, 1, 2, 3, 4])

11. itertools

python
from itertools import combinations, permutations, product

# Kombinatsiya
list(combinations([1, 2, 3], 2))
# [(1,2), (1,3), (2,3)]

# Permutatsiya
list(permutations([1, 2, 3], 2))
# [(1,2), (1,3), (2,1), (2,3), (3,1), (3,2)]

# Decart ko'paytma
list(product([1, 2], ['a', 'b']))
# [(1,'a'), (1,'b'), (2,'a'), (2,'b')]

12. pip — paket menejer

pip — Python uchun standart paket menejer.

bash
$ pip install requests        # o'rnatish
$ pip uninstall requests       # o'chirish
$ pip list                     # o'rnatilganlar
$ pip show requests            # ma'lumot
$ pip install --upgrade requests
$ pip install requests==2.28.0  # aniq versiya

Yoki pip3 Mac/Linux'da.

13. Virtual environment

Loyihalar uchun alohida muhit. Versiyalar to'qnashmasligi uchun.

bash
# Yaratish
$ python3 -m venv venv

# Yoqish
$ source venv/bin/activate   # Mac/Linux
$ venv\Scripts\activate      # Windows

# Endi pip — faqat shu loyihaga
$ pip install requests

# Chiqish
$ deactivate

Har loyiha — alohida venv.

14. requirements.txt

Loyihaning kutubxonalari ro'yxati:

requests==2.31.0
numpy==1.26.0
pandas==2.1.0

O'rnatish:

bash
$ pip install -r requirements.txt

Yaratish:

bash
$ pip freeze > requirements.txt

15. Mashhur tashqi kutubxonalar

16. requests — HTTP

python
import requests

# GET
response = requests.get("https://api.github.com/users/torvalds")
data = response.json()
print(data["name"])

# POST
response = requests.post("https://api.example.com/users", 
                          json={"name": "Akmal"})

# Status
print(response.status_code)
print(response.headers)

O'rnatish: pip install requests

17. Yangi modul yaratish

my_module.py:

python
"""My helpful module."""

PI = 3.14159

def square(n):
    return n ** 2

def cube(n):
    return n ** 3

class Circle:
    def __init__(self, r):
        self.r = r
    
    def area(self):
        return PI * self.r ** 2

# Faqat to'g'ridan-to'g'ri ishga tushganda
if __name__ == "__main__":
    print(square(5))
    print(Circle(3).area())

main.py:

python
import my_module
# yoki
from my_module import square, Circle

print(my_module.square(5))
print(my_module.Circle(3).area())

18. Package — papka asoslangan modul

mypackage/
├── __init__.py
├── module1.py
└── module2.py

__init__.py — bo'sh bo'lishi mumkin, paketni belgilaydi.

Ishlatish:

python
import mypackage.module1
from mypackage import module2

Topshiriqlar

1 — Standart modullar

stdlib.py — math, random, datetime bilan tajriba.

10 ta turli funksiyani sinab ko'ring.

2 — O'z modulingiz

math_utils.py:

python
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

def factorial(n):
    return 1 if n <= 1 else n * factorial(n - 1)

# va h.k.

main.py:

python
from math_utils import is_prime, factorial

print(is_prime(17))
print(factorial(5))

3 — Datetime

datetime_demo.py:

python
from datetime import datetime, timedelta

now = datetime.now()
birthday = datetime(1995, 5, 15)

age_days = (now - birthday).days
print(f"Sizning yoshingiz: {age_days // 365} yil")
print(f"Kunlar: {age_days}")

# 1000 kun keyin
future = now + timedelta(days=1000)
print(f"1000 kundan keyin: {future.strftime('%d-%b-%Y')}")

4 — Random

random_demo.py:

python
import random

# 6 raqamli random kod
code = ''.join(random.choices('0123456789', k=6))
print(f"OTP: {code}")

# Karta o'yini
suits = ['♠', '♥', '♦', '♣']
ranks = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']
deck = [r + s for r in ranks for s in suits]
random.shuffle(deck)

print("5 ta karta:")
for card in deck[:5]:
    print(card)

5 — sys.argv

cli.py:

python
import sys

if len(sys.argv) != 3:
    print("Foydalanish: python cli.py <ism> <yosh>")
    sys.exit(1)

name = sys.argv[1]
age = int(sys.argv[2])

print(f"Salom, {name}! Sen {age} yoshda ekansan.")
bash
$ python3 cli.py Akmal 22

6 — pip

Virtual env yarating:

bash
$ mkdir python-loyiha
$ cd python-loyiha
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install requests
$ pip list
$ pip freeze > requirements.txt

requirements.txtni Drive'ga.

7 — requests

github_info.py:

python
import requests

response = requests.get("https://api.github.com/users/torvalds")
data = response.json()

print(f"Ism: {data['name']}")
print(f"Bio: {data.get('bio')}")
print(f"Followers: {data['followers']}")
print(f"Repos: {data['public_repos']}")

8 — Counter

word_freq.py:

python
from collections import Counter

text = """
Python — kuchli dasturlash tili. Python — boshlovchi uchun.
Python keng tarqalgan. Dasturlash qiziqarli.
"""

words = text.lower().split()
freq = Counter(words)

print(freq.most_common(5))

9 — Loyiha tuzilmasi

my-package/ papka yarating:

my-package/
├── __init__.py
├── math_utils.py
├── string_utils.py
└── main.py

Har modulda 3-5 ta funksiya. main.py — barchasini ishlatadi.

10 — GitHub

bash
$ mkdir 6-oy-dars-9
$ git add . && git commit -m "feat: dars 9 - modules" && git push

Lug'at

TerminIzoh
Module.py fayl
PackagePapka + __init__.py
importModul yuklash
from ... importBa'zilarini olish
pipPaket menejer
virtualenv / venvIzolyatsiya
requirements.txtLoyiha kutubxonalari
math / random / datetimeStandart
requestsHTTP klient
Counter / defaultdictcollections

Keyingi dars

10-dars: Yakuniy loyiha — 1-qism →

Master IT o'quv markazi — o'qitish rejasi