def see_methods(klass):
return [method for method in dir(klass) if method.startswith('')
klass o'rniga berilgan clasning metodlarini tashlab yuborib faqat dasturchi tomonidan yaratilgan metodlar chiqariladi.
return [method for method in dir(klass) if method.startswith('')
klass o'rniga berilgan clasning metodlarini tashlab yuborib faqat dasturchi tomonidan yaratilgan metodlar chiqariladi.
Masala shartini batafsil tushuntirish
Bizga matnni "8 dan 7 ga" zichlash usuli bo‘yicha kodlash va dekodlash algoritmini yaratish vazifasi berilgan. Bu usul faqat ASCII (0-127) kodli belgilarda ishlaydi, ya'ni matndagi har bir belgi 7-bitli bo‘lishi kerak.
1. "8 dan 7 ga" zichlash usuli qanday ishlaydi?
Zichlashning asosiy g‘oyasi – har bir 8-baytlik blokdagi har bir baytning 8-razryadi (eng chap bit, MSB - Most Significant Bit) ishlatilmaydi.
Biz bu ishlatilmaydigan bitlarni foydali ma’lumotga aylantiramiz, ya’ni:
1-baytning (MSB) 7 ta bitini keyingi 7 baytning 7-razryadli bitlari o‘rniga yozamiz.
Shunday qilib, 8 baytdan 7 bayt hosil bo‘ladi, ya’ni matn 12.5% (1/8) ga qisqaradi.
2. Kodlash (zichlash) jarayoni
Berilgan matn 8-baytlik bloklarga bo‘linadi. Agar matn uzunligi 8 ga bo‘linmasa, u probel (ASCII 32, " ") bilan to‘ldiriladi.
Har bir 8-baytli blokdan 7 baytli blok hosil qilish uchun:
1-baytning (MSB) 7 ta bitini ajratib olamiz.
Ularni keyingi 7 baytning 7-chi bitlariga joylaymiz.
1-baytdan qolgan 7-bit ma’lumot yangi 1-baytga aylanadi.
Natijada 7 baytli zichlashtirilgan blok hosil bo‘ladi.
Misol (Bit darajasida)
Berilgan 8 baytli matn bloki:
Bayt Ikkilik (Binary)
1-bayt 0111 0101
2-bayt 1111 1101
3-bayt 0111 1101
4-bayt 1010 0011
5-bayt 0010 0011
6-bayt 1101 0110
7-bayt 0101 0110
8-bayt 1111 1001
🔹 1-baytning MSB bitlari (0111010)
🔹 Ushbu bitlar 2-baytdan 8-baytgacha bo‘lgan baytlarga 7-razryad sifatida joylashtiriladi
Hosil bo‘lgan zichlashtirilgan 7 baytli blok
Yangi Bayt Ikkilik (Binary)
1-bayt 0111 0101
2-bayt 0111 1101
3-bayt 0010 0011
4-bayt 0101 0110
5-bayt 0001 0000
6-bayt 0110 1101
7-bayt 0010 1010
3. Dekodlash (zichlangan matnni qayta tiklash)
Kodlangan (zichlangan) matndan 8 baytlik blokni qayta tiklash uchun:
1-baytning MSB bitlarini topamiz va 8-baytlik blok hosil qilamiz.
Har bir 7-baytdan 1-baytning 7-razryadli bitlarini qaytarib joylashtiramiz.
1-baytning 7-bitli qismi to‘ldiriladi.
4. Xulosa
✅ Kodlashda: 8 baytdan 7 bayt hosil qilinadi (12.5% siqilish)
✅ Dekodlashda: 7 baytdan 8 baytli matn tiklanadi
✅ Probel bilan to‘ldirish: Matn uzunligi 8 ga bo‘linmasa, oxiriga " " qo‘shiladi
Bizga matnni "8 dan 7 ga" zichlash usuli bo‘yicha kodlash va dekodlash algoritmini yaratish vazifasi berilgan. Bu usul faqat ASCII (0-127) kodli belgilarda ishlaydi, ya'ni matndagi har bir belgi 7-bitli bo‘lishi kerak.
1. "8 dan 7 ga" zichlash usuli qanday ishlaydi?
Zichlashning asosiy g‘oyasi – har bir 8-baytlik blokdagi har bir baytning 8-razryadi (eng chap bit, MSB - Most Significant Bit) ishlatilmaydi.
Biz bu ishlatilmaydigan bitlarni foydali ma’lumotga aylantiramiz, ya’ni:
1-baytning (MSB) 7 ta bitini keyingi 7 baytning 7-razryadli bitlari o‘rniga yozamiz.
Shunday qilib, 8 baytdan 7 bayt hosil bo‘ladi, ya’ni matn 12.5% (1/8) ga qisqaradi.
2. Kodlash (zichlash) jarayoni
Berilgan matn 8-baytlik bloklarga bo‘linadi. Agar matn uzunligi 8 ga bo‘linmasa, u probel (ASCII 32, " ") bilan to‘ldiriladi.
Har bir 8-baytli blokdan 7 baytli blok hosil qilish uchun:
1-baytning (MSB) 7 ta bitini ajratib olamiz.
Ularni keyingi 7 baytning 7-chi bitlariga joylaymiz.
1-baytdan qolgan 7-bit ma’lumot yangi 1-baytga aylanadi.
Natijada 7 baytli zichlashtirilgan blok hosil bo‘ladi.
Misol (Bit darajasida)
Berilgan 8 baytli matn bloki:
Bayt Ikkilik (Binary)
1-bayt 0111 0101
2-bayt 1111 1101
3-bayt 0111 1101
4-bayt 1010 0011
5-bayt 0010 0011
6-bayt 1101 0110
7-bayt 0101 0110
8-bayt 1111 1001
🔹 1-baytning MSB bitlari (0111010)
🔹 Ushbu bitlar 2-baytdan 8-baytgacha bo‘lgan baytlarga 7-razryad sifatida joylashtiriladi
Hosil bo‘lgan zichlashtirilgan 7 baytli blok
Yangi Bayt Ikkilik (Binary)
1-bayt 0111 0101
2-bayt 0111 1101
3-bayt 0010 0011
4-bayt 0101 0110
5-bayt 0001 0000
6-bayt 0110 1101
7-bayt 0010 1010
3. Dekodlash (zichlangan matnni qayta tiklash)
Kodlangan (zichlangan) matndan 8 baytlik blokni qayta tiklash uchun:
1-baytning MSB bitlarini topamiz va 8-baytlik blok hosil qilamiz.
Har bir 7-baytdan 1-baytning 7-razryadli bitlarini qaytarib joylashtiramiz.
1-baytning 7-bitli qismi to‘ldiriladi.
4. Xulosa
✅ Kodlashda: 8 baytdan 7 bayt hosil qilinadi (12.5% siqilish)
✅ Dekodlashda: 7 baytdan 8 baytli matn tiklanadi
✅ Probel bilan to‘ldirish: Matn uzunligi 8 ga bo‘linmasa, oxiriga " " qo‘shiladi
CV.pdf
52.7 KB
Xato kamchiliklar bo'lsa aytinglar
python_crash_course (2nd edition).pdf
6.7 MB
Shulardan foydalanamiz kurs davomida
Python dasturchi uchun yo'riqnoma.pdf
150.3 KB
Python orqali Backend dasturchi uchun yo'riqnoma
Python+Web