Back to blog

Python nima?
- Python — yuqori darajadagi, tarjimonli dasturlash tili bo‘lib, dinamik semantikaga ega, o‘rganish va tushunish osonligi bilan tanilgan.
Pythonning asosiy xususiyatlari qanday?
- Pythonning asosiy xususiyatlariga o‘qilishi oson sintaksis, dinamik tiplashtirish, xotira boshqaruvi va keng qamrovli standart kutubxona kiradi.
Python’da xotira qanday boshqariladi?
- Python’da xotira Python xotira boshqaruvchisi tomonidan boshqariladi. Ob’ektlar va ma’lumot tuzilmalari maxsus xotira maydonida saqlanadi, ishlatilmayotgan xotira esa chiqindi yig‘uvchi (garbage collector) tomonidan qayta ishlanadi.
import gc
gc.collect() # Chiqindi yig'uvchini qo'lda chaqirish
Python’dagi dekoratorlar nima?
- Dekoratorlar Python’da funksiyalar yoki sinflar xatti-harakatini o‘zgartirish imkonini beruvchi dizayn (pattern)naqshidir.
def decorator(func):
def wrapper():
print("Dekoratsiya qilyapman!")
func()
return wrapper
@decorator
def salom_ber():
print("Salom!")
salom_ber()
PEP 8 nima?
- PEP 8 — Python kodini yozish bo‘yicha qo‘llanma va eng yaxshi amaliyotlarni taqdim etuvchi Python Yaxshilash Taklifi (Python Enhancement Proposal).
Python’dagi lambda funksiyasi nima?
- Lambda funksiyasi kichik anonim funksiyadir. U istalgan miqdordagi argumentlarni qabul qilishi mumkin, lekin faqat bitta ifodaga ega bo‘ladi.
kvadrat = lambda x: x**2
print(kvadrat(4)) # Natija: 16
List va tuple orasidagi farq nima?
- Asosiy farqi shundaki, listlar o‘zgartiriladigan (mutable), tuplelar esa o‘zgartirilmaydigan (immutable) ma’lumot tuzilmalaridir.
my_list = [1, 2, 3] # O'zgartiriladigan
my_tuple = (1, 2, 3) # O'zgartirilmaydigan
my_list[0] = 10
my_tuple[0] = 10 # Xatolik beradi!
Python’da xotira ajratish qanday amalga oshiriladi?
- Python’da ichki chiqindi yig‘uvchi mavjud bo‘lib, u ishlatilmayotgan xotirani qayta ishlaydi va xotira maydoni uchun qayta foydalanish imkonini beradi.
x = [1, 2, 3]
del x # Xotirani bo'shatadi
Python’da slicing nima?
- Slicing — bu Python’da list, tuple, string kabi ketma-ketlik turlaridan ma’lum bir oraliqdagi elementlarni tanlash mexanizmidir.
my_list = [0, 1, 2, 3, 4, 5]
print(my_list[1:4]) # Natija: [1, 2, 3]
Python modullari nima?
- Python modullari — bu Python kodini o‘z ichiga olgan .py fayllardir. Har qanday Python fayli modul sifatida ishlatilishi mumkin.
Python array va list o‘rtasidagi farq nima?
- Array faqat bitta ma’lumot turidagi elementlarni saqlashi mumkin, list esa turli ma’lumot turlaridagi elementlarni saqlay oladi.
import array
arr = array.array('i', [1, 2, 3]) # Faqat integer
lst = [1, "ikki", 3.0] # Har xil turlar
Deepcopy va copy o‘rtasidagi farq nima?
- deepcopy asl obyektning barcha qismlarini rekursiv nusxa ko‘chirib yangi obyekt yaratadi, copy esa yangi obyekt yaratib, unda faqat asl obyektning havolalarini saqlaydi.
import copy
original = [[1, 2], [3, 4]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[0][0] = 99
print(shallow) # [ [99, 2], [3, 4] ]
print(deep) # [ [1, 2], [3, 4] ]
Python’da namespace nima?
- Namespace — bu nomlarning yagona bo‘lishini ta’minlaydigan nomlash tizimi bo‘lib, nomlar ziddiyatini oldini oladi.
x = 10 # Global namespace
def funksiya():
x = 5 # Lokal namespace
print(x)
funksiya() # Natija: 5
print(x) # Natija: 10
Python’da dictionary nima?
- Dictionary — bu Python’da ma’lumotlarni xarita ko‘rinishida saqlash uchun ishlatiladigan tartibsiz ma’lumotlar to‘plamidir.
Python’da range va xrange o‘rtasidagi farq nima?
- Python 2 versiyasida range va xrange mavjud edi, lekin Python 3 da faqat range mavjud.
- Python 3: xrange o‘rniga faqat range mavjud bo‘lib, u Python 2 ning xrange ga o‘xshaydi, ya’ni xotiradan samarali foydalanadi.
- Python 2 -V
# range - ro'yxat qaytaradi
r = range(5)
print(r) # Natija: [0, 1, 2, 3, 4]
# xrange - range obyektini qaytaradi (kam xotira ishlatadi)
xr = xrange(5)
print(xr) # Natija: xrange(5)
- Python 3 -V
r = range(5)
print(r) # Natija: range(0, 5)
# Xotira va samaradorlikni tekshirish uchun
for i in r:
print(i) # Natija: 0, 1, 2, 3, 4
Pickling va unpickling nima?
- Pickling — bu Python obyekti iyerarxiyasini bayt oqimiga aylantirish jarayoni, unpickling esa uning teskari operatsiyasidir.
import pickle
data = {"ism": "Ali", "yosh": 25}
# Pickling
with open("data.pkl", "wb") as file:
pickle.dump(data, file)
# Unpickling
with open("data.pkl", "rb") as file:
yangi_data = pickle.load(file)
print(yangi_data)