1-sahifa 2-sahifa
Download 363.98 Kb.
|
Python
- Bu sahifa navigatsiya:
- 73-bet Chiziqlar 73
- 9.2. Satrlar sintaksisini formatlash
- 75-bet 9.2. Satrlar sintaksisini formatlash 75
- Maydon Tarif
- Butun turlari Tarif
- Suzuvchi turlari nuqta Tarif
- 77-bet 9.3. Formatlash misollari 77 9.3. Formatlash misollari
- 79-bet 9.6. Mashqlar 79 9.5. Xulosa
- 80-bet 10 dir., Yordam va pdb
- 81-bet 10.1. Maxsus usullar 81
- 83-bet 10.3. pdb 83
- Jamoa Tarif
Qalqon ketma-ketlik Xulosa \\ Orqa chiziq \ ' Bitta narx \ " Ikkita kotirovka \ b ASCII orqaga qaytish belgisi \ n Yangi qator \ t Yorliq
\ u12af 16-bitli unikodli belgi \ U12af89bc 32-bitli unikodli belgi \ N {SNAKE} Unicode belgisi \ o84 Oktal belgi \ xFF O'n oltilik belgi MASLAHAT Agar foydalanish ekranlamaya uchun istamasangiz, foydalanish xom nye (xom) qator, r qatorini qo'yishdan oldin . Davolanmagan torlar odatda ikkita joyda bo'ladi. Ular muntazam ravishda ishlatiladi ifodalar teskari egri chiziq bo'lishi ham sifatida ishlatiladi qaysi qochish xarakteri. Doimiy iboralar qidirish uchun ishlatiladi. naqshdagi belgilar (masalan, telefon raqamlari, ismlar va boshqalar). Python standart kutubxonasidagi qayta modul qo'llab-quvvatlaydi
Chiziqlar 73 muntazam iboralar. Bundan tashqari, xom iplar ham ishlatiladi. orqa chiziq talqin qilingan deraza oynalarida ishlatiladi ajratuvchi sifatida. Xom satrlarda belgilar tom ma'noda talqin qilinadi (ya'ni. ekranlashsiz). Quyidagi misol farqlarni namoyish etadi. muntazam va muntazam chiziqlar o'rtasida: >>> slash_t = r '\ tText \\' >>> chop etish (slash_t) \ tTeshn \\ >>> normal = '\ tText \\' >>> chop etish (oddiy) Matn \ Python shuningdek, aniqlash uchun uch tomonlama kotirovka mexanizmini taqdim etadi dangasa chiziqlar. Uchburchaklar bilan ajratilgan satrlarni yaratish uchun foydalidir xatboshilarga. Bundan tashqari, uch tirnoqli iplar ko'pincha ishlatiladi yilda hujjatlar chiziqlar . Hujjatlar chiziqlari ko'rib chiqiladi. funktsiyalari bobida. Quyida uchburchaklar qatoriga misol keltirilgan. qo'shtirnoq belgisi: >>> paragraf = "" "Lorem ipsum dolor ... o'tir amet, consectetur semirish ... elit, sed do eiusmod tempor incididunt ... va juda ko'p mehnat qilish kerak. Ut ... enimad minim veniam, nostrudni bos ... jismoniy mashqlar ullamco laboris nisi ut ... aliquip ex ea tovar natijasi. Duis ... ichida reprehenderitda yoqimli dabdabali dollar ... volittate velit esse cillum dolore eu ... fugiat nulla pariatur. Istisno sint ... occaecat cupidatat non proident, sunt ... bu erda ... anim id est laborum. "" " Uch tirnoqdagi satrlar qulay, chunki ularni qo'yish mumkin qochib qolmasdan bitta va ikki kishilik tirnoq: >>> "" "Ushbu qator ikkita" va bitta ... ichida "" "tirnoq 'Ushbu satrda ikki baravar va uning ichida bitta \ nquotes \' mavjud.
74 9-bob. Chiziqlar Ammo, agar tirnoq satr oxirida bo'lsa, oxirgi tirnoq matnda siz qochishingiz kerak: >>> "" "U" salom "" "" dedi " "" "U" Salom "" "" dedi ^ SyntaxError: Matnni skanerlash paytida EOL >>> "" U aytdi: "Salom \" "" " U: «Salom», dedi. 9.1. Qator formatlash O'zgaruvchilarda satrlarni saqlash qulay, ammo sizda ham bo'lishi kerak boshqa chiziqlardan chiziqlarni yig'ish va kerakli narsalarni bajarish qobiliyati manipulyatsiya. Buning uchun siz mexanizmidan foydalanishingiz mumkin mat iplar. Python 3-da, afzal formatlash usuli ko'rib chiqiladi .format usulidan foydalanib . Quyidagi misolda biz buyruq beramiz Python {} (to'ldiruvchini) ism o'zgaruvchisining tarkibiga o'zgartiradi , ya'ni Mat chizig'i : >>> name = 'Matt' >>> chop etish ('Salom {}'. format (nom)) Salom mat Boshqa foydali formatlash xususiyati bu Satrsiz ob'ektlar ham formatlanishi mumkin - masalan, raqamlar: >>> chop etish ('I: {} R: {} S: {}'. format (1, 2.5, 'foo')) I: 1 R: 2.5 S: foo 9.2. Satrlar sintaksisini formatlash Format satrlarida maydonlar uchun maxsus sintaksis mavjud - to'ldiruvchilar . Agar ob'ekt formatlash satriga o'tkazilsa, qidirish uchun atributlari .name _ attribute sintaksisidan foydalanishlari mumkin . Bundan tashqari indekslanadigan elementlarni olish qobiliyati yozuvlar yordamida [indeks] . Python hujjatlarida ular deyiladi
9.2. Satrlar sintaksisini formatlash 75 maydon nomlari . Maydon nomlari bo'sh bo'lishi mumkin, va argument nomini o'z ichiga olishi mumkin kalit so'z, pozitsion argument raqami yoki indeks ro'yxat yoki lug'atda (kvadrat qavs ichida): >>> 'Ism: {}'. Formati ('Pol') "Ism: Pol" >>> 'Ism: {ism}'. Format (name = 'John') 'Ismi: Jon' >>> 'Nomi: {[nomi]}'. Formati ({'name': 'George'}) 'Ismi: Jorj' Butun sonni jingalak qavslarga ham qo'shish mumkin ( { va } ). .Format (raqamlash) ga berilgan argumentning o'rnini aniqlaydi noldan boshlanadi). Quyidagi misolda raqamlardan foydalaniladi pozitsion dalillar. Birinchi argument, .format , «Pol» , deb 0 holatida; ikkinchisi, "Jorj" 1-pozitsiyada; nihoyat "john" 2-pozitsiyada: >>> 'Oxirgi: {2} Birinchisi: {0}'. Format ('Pol', 'Jorj', ... "Jon") 'Nihoyat: Birinchi Yuhanno: Pavlus' Satrlarni formatlashning butun tili mavjud. Yo'g'on ichakni qo'yish maydon nomidan keyin siz qo'shimcha formatga o'tishingiz mumkin ma `lumot. Format quyida tasvirlangan. Hammasi kvadrat qavslar ixtiyoriy. : [[to'ldirish] tekislash] [belgi] [#] [0] [kenglik] [guruhlash_option] [. aniqlik] [tur] Quyidagi jadvalda maydonlar va ularning ma'nolari keltirilgan. Maydon Ta'rif to'ldiring Tarkibni to'ldirishda ishlatiladigan belgi (asl bo'sh joy ny)
tekislang Chiqish moslamasi turi: < (chapda), > (o'ngda), ^ (o'rtada) yoki = (belgidan keyin qo'shimcha qo'shing) belgisi
Raqamlar uchun: + (musbat uchun ham, harfi uchun ham belgini ko'rsatish salbiy raqamlar), (sukut bo'yicha, faqat bitta belgini ko'rsatish manfiy sonlar) yoki bo'sh joy (ijobiy uchun etakchi bo'shliqlar ) haqiqiy raqamlar, manfiy raqamlarni belgilash)
76 9-bob. Chiziqlar Maydon Ta'rif # Butun sonlar uchun qo'shimchalar: 0b (ikkilik), 0o (sakkiz) yoki 0x (o'n oltilik) 0 Nollarni to'ldirish kengligi Maydonning minimal kengligi guruhlash_ variant
Raqamlarda Separatörler: , (vergul bilan ajratilgan minglab), _ (ming pastki chiziqlar bilan ajratilgan) .rejissiya Suzuvchi nuqta raqamlari uchun (kasr qismdagi belgilar soni), raqamli bo'lmagan ma'lumotlar uchun (maksimal uzunlik) turi
Raqamli tur yoki s (standart satr formati); jadvallarga qarang butun sonlar va suzuvchi nuqta raqamlarini formatlash Quyidagi jadvallarda turli xil formatlash vositalari keltirilgan. butun va suzuvchi nuqta raqamlari. Butun turlari Ta'rif b Ikkilik v Belgilar - Unicode belgilariga o'zgartiradi d O‘nlik (standart) n Mahalliy kontekst uchun ajratilgan o'nlik o Oktal
x O'n oltilik (kichik harf) X O'n oltilik (katta harf) Suzuvchi turlari nuqta Ta'rif e / e
Eksponensial belgi (pastki yoki yuqori registrda "e" harfi) str)
f Ruxsat etilgan nuqta g / g Umumjahon rekord. Ruxsat etilgan yoki eksponensial raqamiga ko'ra yozib olish (asl qiymati g) n g mahalliy kontekst uchun ajratilgan % Foiz (100 ga ko'paytiriladi)
9.3. Formatlash misollari 77 9.3. Formatlash misollari Quyida .format- dan foydalanishning ba'zi misollari keltirilgan . Kimga 12 ta belgili maydon markazida chiziqni formatlash belgilar * , quyidagi koddan foydalaning. Bu erda * belgilar uchun plomba, ^ - hizalama maydoni, va 12 - kenglik maydoni: >>> "Ism: {: * ^ 12}". Formati ("Ringo") 'Ism: *** Ringo ****' Keyin raqamni foiz kengligida 10, bitta belgi bilan formatlang kasr qismida va kenglikni qo'shishdan oldin belgi. Mana = maydon hizalanish, + formatlangan qiymat har doim bo'lishini ta'minlaydi Ha, belgi ko'rsatiladi (manfiy ham, musbat uchun ham) raqamlar), 10.1 - kenglik va aniqlik maydonchalari va % - o'zgartirish uchun foizlar soni: >>> "foiz: {: = + 10.1%}". Formati (-44/100) 'Foiz: - 44.0%' Quyida ikkilik va o'n oltilik hisoblashlarning misollar keltirilgan. An integer turi maydon bo'ladi qiymatlari tayinlangan B va x, o'z navbatida: >>> "Ikkilik: {: b}". Format (12) 'Ikkilik: 1100' >>> "Hex: {: x}". Format (12) 'Hex: c'
Satrlar uchun .format usuli % operatori uchun alternativani taqdim etadi , Cf funktsiyasiga o'xshash printf . % Operatori ham mavjud va ba'zilari foydalanuvchilar buni afzal ko'rishadi, chunki oddiy holatlarda yozib olish u qisqaroq, shuningdek, C. joylashtiruvchilari % s , % d va % x ga o'xshashligi sababli ularning satrlari, butun va o'n oltilik qiymatlari bilan almashtirildi navbati bilan Bir nechta misollar: >>> "Raqam:% d Hex:% x"% (12, 13) 'Raqam: 12 Hex: d' >>> "% s% s"% ('salom', 'dunyo') 'Salom Dunyo'
78 9-bob. Chiziqlar MASLAHAT Formatlash bo'yicha ma'lumotlarning ajoyib manbai o'rnatilgan yordamdir Barcha hujjatlar REPL da mavjud. Enter buyrug'i >>> yordam () Buyruq yordam rejimini yoqadi va so'rovni ko'rsatadi yordam> . Enter buyrug'i yordam> FORMATTING Chiqishga qarang - unda ko'plab misollar topasiz. Agar siz shunchaki cheritsangiz Kiriting da yordam> tezkor , siz odatiy tezkor qaytadi. Bundan tashqari, juda ko'p foydali ma'lumotlarni https: // pyformat- da topish mumkin . ma'lumot / . Formatlashtirishga oid ko'plab misollar bu erda foydalanish sifatida keltirilgan vaniem .format , va eski operator % bilan . String formatlash haqida ma'lumot shuningdek, STRINGS bo'limida keltirilgan . ma'lumotnoma. 9.4. F chiziqlar Python 3.6 deb nomlangan yangi turdagi simlarni taklif qiladi f-chiziqlar . Agar siz f prefiksini satr oldida qo'ysangiz, uni to'ldiruvchiga qo'yishingiz mumkin kodni yoqadi. Oddiy misol: >>> name = 'mat' >>> mening ismim {name} ' 'Mening ismim mat' Python to'ldiruvchini tekshiradi va undagi kodni hisoblaydi. Siz funktsional qo'ng'iroqlar, usul qo'ng'iroqlari yoki boshqa har qanday ixtiyoriy kod: >>> mening ismim {name.capitalize ()} ' "Mening ismim Matt" Format satrlarini yo'g'on ichakdan keyin ham uzatish mumkin ( :) : >>> f 'Ikkala asosiy ildiz: {2 **. 5: 5.3f}' 'Ikkala kvadratning ildizi: 1.414'
9.6. Mashqlar 79 9.5. Xulosa Ushbu bobda biz chiziqlarni tanishtirdik. Satrlar bilan aniqlash mumkin cheklovchilar. Boshqa tillardan farqli o'laroq qo'shtirnoq ichida " va bitta tirnoq " bilan ishlash mumkin turli yo'llar bilan, Pythonda ularning xatti-harakatlari farq qilmaydi. Biroq, uchta raqamlar Raqamli tirnoq bir nechta fizik qatorlardan (paragraflardan) iborat bo'lishi mumkin. Biz shuningdek .format usuliga qaradik va bir nechta misollarni tahlil qildik . formatlash satrlari. Birinchi bob oxirida Python 3.6 ning yangi xususiyatlari - bu f-satrlar.
1. Ismingizga ishora qiladigan o'zgaruvchini yarating . Yaratmoq boshqa bir o'zgaruvchi - yosh - mos keladigan butun son bilan yoshingiz. Formatlangan simni ikkalasi bilan birga chop eting qiymatlar. Masalan, Fred nomi va 23 yoshda bo'lishi kerak chiqish liniyasi: Fred 23 yoshda 2. Paragraf o'zgaruvchisini quyidagi matnni o'z ichiga olgan holda yarating : "Python - bu ajoyib til!", Dedi Fred. "Men emas har doim bundan oldin juda xursand bo'lganingizni eslang. " 3. https://unicode.org saytiga tashrif buyuring va yunon jadvalidan toping ho'kiz "omega" harfi. Belgidan iborat satr yarating "Omega", Unicode kod nuqtasi (form \ u ) sifatida foydalanadi va hokazo va Unicode-dagi belgi nomi (forma N ). Kod nuqtasi - o'n olti Jadvaldagi raqam, ism qalin qilib ko'rsatiladi kod nuqtasi yonida. Masalan, "teta" harfi kodga mos keladi nuqta 03f4 va nomi GREEK CAPITAL THETA SYMBOL . 4. "car" satriga ishora qiladigan element o'zgaruvchisini yarating . 13499.99 ni ko'rsatadigan xarajat o'zgaruvchisini yarating . Element qiymati chap hizalanadigan chiziqni chop eting. 10 belgidan sohasida va chetiga qiymati - sohasidagi o'ng chekkasida 10 ta belgi, ikkita raqam bilan kasr qismida va minglarni ajratish bilan beshinchi. Natija quyidagicha ko'rinishi kerak (tirnoqsiz): 'mashina
13,499.99 '
10 dir., Yordam va pdb Bizning chiziqlar bilan tanishligimiz yuzaki, ammo hozir ikkita muhim narsani muhokama qilish uchun bir zum to'xtab turish kerak funktsiyalari va Python-ga kiritilgan bitta kutubxona. Birinchidan funktsiya - dir - qanchalik kuchli va foydali vositani namoyish etadi Bu REPL. Dir funktsiyasi ob'ektning xususiyatlarini qaytaradi. Agar Siz Python tarjimoni ochiq va siz satr atributlarini bilishni xohlaysiz, bu Funktsiya quyidagi natijani beradi: >>> dir ('Matt') ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__m____', '__ne__', '__yangi__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'kapitallashtirish', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'indeks', 'isalnum', 'ispha', 'isdecimal', 'isdigit', 'identifikator', 'islower', 'noma'lum', 'isprintable', 'isspace', 'istitle', 'isupper', 'qo'shilish', 'sozlash', 'pastki', 'lstrip', 'maketrans', "bo'lim", "almashtirish", "rfind", "rindex", "to'g'rilash", 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'boshlash', 'chiziq', 'almashtirish', 'sarlavha', 'tarjima qilish', 'yuqori', 'zfill']
10.1. Maxsus usullar 81 dir o'tgan ob'ektning barcha xususiyatlarini ko'rsatadi. Yildan dir vazifasi edi 'Matt' satrini o'tdi, funktsiya satrning xususiyatlarini ko'rsatadi. Bu qulay Pythonning qobiliyati uning falsafasini printsip asosida namoyish etadi "Batareyalar kiritilgan": Python oddiy mexanizmni ta'minlaydi har qanday ob'ektning atributlarini qabul qilish. Boshqa tillarda bunday funktsiyalarga kirish maxsus talab qilinishi mumkin saytlar, hujjatlar yoki IDE, lekin Python-da REPL tufayli bu ma'lumotni tez va oson olish mumkin. Atributlar ro'yxati alifbo tartibida saralanadi; birinchi juft xususiyatlar bo'yicha, __ dan boshlab , odatda buni e'tiborsiz qoldirishingiz mumkin. Keyinchalik sizga kabi sifatlari mavjud bo'ladi xarfdan (Katta bilan bir mag'lubiyatga yozish harflar), format (yuqorida ko'rsatilgan chiziq formatlash) yoki pastki (satrni kichik harfga aylantirish). Bu sifatlar bo'lgan usullar ob'ektlar bilan bog'liq vazifalari -. Kimga funktsiyani chaqiring, ob'ektdan keyin nuqta qo'ying, usul nomini ko'rsating va qavslarni qo'ying. Usul chaqiruvlariga uchta misol: >>> chop etish ('matt'.capitalize ()) Mat
>>> chop etish ('Salom {}' formati ('u erda')) salom
>>> chop etish ('YIKES'.lower ()) hazil
10.1. Maxsus usullar Sizni __ bilan boshlanadigan atributlar qiziqtirishi mumkin . Aytgancha yuqorida, bu xususiyatlar usullarga mos keladi; odamlar ularni maxsus deb atashadi
usullar ichki amalga oshirishda nima bo'lishini aniqlaydi ob'ektlar bilan operatsiyalarni bajarish. Masalan, + yoki % operatoridan foydalanganda navbati bilan .__ add__ yoki .__ mod__ usuli chaqiriladi . Not- tajribali Python dasturchilari odatda maxsus usullarni unutishadi. Ammo siz o'z darslaringizni amalga oshirishni boshlaganingizda va xohlaganingizda ular + yoki % kabi operatsiyalarga munosabat bildirishdi , siz ularni belgilashingiz mumkin.
82 10-bob. Dir, yordam va pdb MASLAHAT Yordam () hujjatlarida SPECIALMETHODS mavzusi bo'lib, unda tavsif berilgan usullari. Ta'riflar Python veb-saytida ham mavjud. Hujjatlar bo'limini oching, Til uchun ma'lumotnoma, ma'lumotlar modeli - ular shu erda.
Yordam - bu REPL bilan birgalikda ishlatiladigan yana bir o'rnatilgan funksiya. Kitobda yordam chaqirish haqida () qo'ng'iroq qilish uchun dalillarsiz aytilgan ma'lumotnoma hujjatlari. Yordam funktsiyasi shuningdek metod, modul, sinf uchun hujjatlarni ko'rsatadi yoki argumentda berilgan funktsiya. Masalan, sizni qiziqtirayotgan bo'lsa, satrlarning yuqori atributi nima qiladi , ma'lumot olish mumkin quyidagi qo'ng'iroq: >>> yordam ('some string'.upper) O'rnatilgan funktsiyaning yuqori qismidagi yordam: buildins.str nusxasining yuqori (...) usuli S.upper () -> str Bosh harfga aylantirilgan S nusxasini qaytaring. Yordam funktsiyasi REPL bilan birgalikda mavjud bo'lmagan hujjatlarni o'qishga imkon beradi brauzerni ochish va hatto Internetga ulanmasdan ham. Agar siz ham cho'l oroliga tushib ketdi, siz Python-ni hali ham o'rganishingiz mumkin - uchun sizga faqat Python versiyasi o'rnatilgan kompyuter kerak bo'ladi va quvvat manbai. 10.3. pdb Python kodni bosqichma-bosqich bajarish uchun tuzatuvchini ham o'z ichiga oladi. U pdb deb nomlangan modulda joylashgan . Ushbu kutubxona atrofida qurilgan Gdb- ning C tilidagi kutubxonasiga o'ting. Tuzatuvchidan istalgan joyda chiqish uchun Python dasturiga quyidagi kodni qo'ying: import pdb; pdb.set_trace ()
10.3. pdb 83 Bu erda aslida ikkita jamoa bor, lekin men ularni bittasiga joylashtiraman nuqta-vergul bilan ajratilgan chiziq ( ; ) - shuning uchun disk raskadrovka tugagandan so'ng har ikkala buyruq ham tahrirlovchini bir marta bosish bilan o'chirilishi mumkin re Ehtimol, bu men foydalangan yagona vaziyat Python kodidagi nuqta-vergul (bitta satrda ikkita buyruq). Amalga oshirilganda, masalan, ushbu satrda (pdb) so'rov ochiladi kutilayotgan taklifni qaytarish Undagi kodni ham bajarishingiz mumkin. ob'ektlar va o'zgaruvchilarni ko'rish. Bunga qo'shimcha ravishda siz o'rnatishingiz mumkin keyinchalik tahlil qilish uchun tanaffuslar. Quyida foydali pdb buyruqlari berilgan jadval keltirilgan :
h, yordam bering Mavjud buyruqlarni ro'yxati. n, keyingisi Keyingi qatorni ishga tushiring c, cont, davom eting Bajarishni keyingi tanaffusgacha davom ettiring w, qayerda, bt Oqim haqida ma'lumot bilan stack izini chop eting ijro lavozimi u, yuqoriga Stakanda tekislang d, pastga Stakanda pastga tushiring l, ro'yxat Joriy chiziqning dastlabki kodini chop eting ESLATMA Dasturlash marvaridlarida Jon Bentli shunday yozadi: “Men biron bir joyda ichak algoritmini tuzatishga to'g'ri kelganida Katta dasturda men ba'zan nosozliklarni tuzatish vositalarini ishlataman ... buyruqlarga qaramay nosozliklarni tuzatish odatda tezroq va samaraliroq amalga oshiriladi aqlli debyutchilar ». Python yaratuvchisi Gido van Rossumning ham shu fikrni aytganini eshitdim: u disk raskadrovka usulini afzal ko'radi . Nosozliklarni tuzatish printsipi oddiy: siz dasturda nima sodir bo'lishini tushuntirib beradigan bosib chiqarish funktsiyalarini joylashtiring . Ko'pincha bu muammoni aniqlash uchun etarli. Unutmang tuzatish buyruqlarini olib tashlang yoki ularni log buyruqlariga o'zgartiring kodni qo'yishdan oldin. Agar siz jiddiyroq tahlilga muhtoj bo'lsangiz, har doim foydalanishingiz mumkin pdb moduli .
84 10-bob. Dir, yordam va pdb 10.4. Xulosa Python soddalashtiradigan ko'plab yordamchi vositalarni taqdim etadi ishlab chiqaruvchining hayotida yashash. Agar siz REPL bilan ishlashni o'rgangan bo'lsangiz, unda mumkin ulardan foydalanadiganlar. Dir funktsiyasi qaysi haqida ma'lumotni ko'rsatadi atributlar ob'ektga ega. Yordam funktsiyasi tahlil qilishga yordam beradi bu atributlar hujjatlar uchun. Ushbu bobda pdb moduli ham joriy etildi . Ushbu modul ruxsat beradi kodni bosqichma-bosqich bajaring, bu disk raskadrovka paytida foydali bo'lishi mumkin. Download 363.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling