1-sahifa 2-sahifa
Download 363.98 Kb.
|
Python
- Bu sahifa navigatsiya:
- 100-bet 100 ga
- Kvaziy haqiqat Kvazi soddaligi
- 101-bet 12.3. Yoq 101
- 103-bet 12.5. Mashqlar 103
- 105-bet 13 Shartlar va belgilarni kiritish
- Operator Tarif
- 107-bet 13.1. Shartli iboralarni birlashtirish 107 MASLAHAT
- 13.1. Shartli iboralarni birlashtirish
- 109-bet 13.3. Boshqa buyruqlar 109
- 13.2. Agar buyruqlar bolsa
- 111-bet 13.5. Boshliqlar 111
MASLAHAT Oldindan bo'lishi kerak bo'lgan tarkibni tahlil qilishda ehtiyot bo'ling. mantiqiy qadriyatlarga shakllangan. Bo'sh bo'lmagan chiziqlar quyidagicha talqin qilinadi
100 ga 12-bob. Izohlar, buklar va yo'q To'g'ri The . Masalan, kutilmagan kutilmagan "False" qatorini berishingiz mumkin , bu haqiqat deb talqin qilinadi : >>> bool ("Noto'g'ri") Rost
Quyida kvazi-haqiqiy va kvazi-kompleks qiymatlar jadvali keltirilgan. Kvaziy haqiqat Kvazi soddaligi Rost
Yolg'on Ko'pgina ob'ektlar Yo'q 1
3.2 0,0
[12] [] (bo'sh ro'yxat) {'a': 1, 'b': 2} {} (bo'sh lug'at) 'string' "" (bo'sh satr) "Yolg'on" '0'
MASLAHAT Ular bo'lsa, ko'rish uchun Bağlaçlar tekshirish qilmang To'g'ri . Agar Agar bor qilingan kattalik bir mantiqiy, etarli olgan quyidagi dizayn: agar bajarilgan bo'lsa: # ...
Boshqa tomondan, quyidagi tekshirish ortiqcha bo'ladi: agar bajarilgan bo'lsa == To'g'ri: # ... Ushbu tasdiq yoqdi: agar bool (tugagan): # ...
Xuddi shunday, agar sizda ro'yxat bo'lsa va sizga kerak bo'lsa bo'sh va bo'sh bo'lmagan ro'yxat uchun turli xil amallarni bajarish uchun bu etarli bo'ladi quyidagi parcha:
12.3. Yo'q 101 a'zolar = [] agar a'zolar: # Agar a'zolar bo'lsa harakatlar # qiymatlarni o'z ichiga oladi yana:
# A'zolar ro'yxati bo'sh Va keyingi tekshirish ortiqcha bo'ladi. Kvaz haqiqatni tekshirishning hojati yo'q. Ro'yxat uzunligi bo'ylab: agar len (a'zolar)> 0: # Agar a'zolar bo'lsa harakatlar # qiymatlarni o'z ichiga oladi yana: # A'zolar ro'yxati bo'sh ESLATMA Agar siz ob'ektlar uchun yashirin kvaz haqiqatni aniqlamoqchi bo'lsangiz, foydalanuvchi tomonidan baham ko'rilsa , bu xatti-harakatlar .__ bool__ usuli bilan aniqlanadi . Usul " True" yoki " False" ni qaytarishi mumkin . Agar bu maxsus bo'lsa Usul aniqlanmaganligi sababli .__ len__ usuli nolga teng bo'lmagan qiymat uchun tekshiriladi. Agar ushbu usul aniqlanmasa, ob'ekt sukut bo'yicha talqin qilinadi. kabi haqiqiy : >>> sinf Nope: ... def __bool __ (o'zi): ...
return false >>> n = Yo'q () >>> bool (n) Yolg'on
Agar bularning barchasi sizni chalkashtirib yuborsa, keyingi misolga qayting bu sinflar haqida qanday o'qish kerak. 12.3. Yo'q Hech biri NoneType namunasi emas . Boshqa tillar ham mavjud. nil , NULL yoki aniqlanmagan shunga o'xshash konstruktsiyalar . Topshiriq ivaya o'zgaruvchini Hech biri , demak siz bu o'zgaruvchini hali ham ko'rsatasiz
102 12-bob. Izohlar, buklar va yo'q real qiymat belgilanmagan. Hech biri mantiqiy jihatdan Noto'g'ri deb talqin qilinadi : >>> bool (Yo'q) Yolg'on
ESLATMA Agar qaytish buyrug'i sukut bo'yicha qaytarilmasa, Python funktsiyasi Hech biri : >>> def salom (): ... bosib chiqarish ("salom") >>> natija = salom () salom >>> chop etish (natija) Yo'q ESLATMA Hech bir (bo'lgan mayka tafsirida) holat (ya'ni, None- ning faqat bitta nusxasi har doim Python torus-da saqlanadi ). ID qiymatlar doimo bir xil bo'lib qoladi: >>> a = Yo'q >>> id (a) 140575303591440 >>> b = Yo'q >>> id (b) 140575303591440 Shunday qilib, None o'z ichiga olgan har qanday o'zgaruvchi bir xil narsani ko'rsatmaydi Hech qanday boshqa o'zgarmaydigan ob'ekt kabi ob'ekt . Odatda bundaylar uchun o'zgaruvchilar tenglik tekshirish ishlatiladi tomonidan bo'lgan operator o'rniga == operatori bilan tenglikni tekshirish : >>> a b Rost
>>> a emas b Yolg'on
Deb operator hisoblanadi tezroq == va programcısı, deb eslatadi aniqlash emas, balki qadriyatlar. Shuningdek, ifoda hisoblanadi siz qo'yish mumkin if buyrug'iga :
12.5. Mashqlar 103 >>> agar yo'q bo'lsa: ... bosib chiqarish ("A o'rnatilmagan!") A o'rnatilmagan! Yildan hech mantiqiy nuqtai nazardan sifatida talqin etiladi Soxta ham, ehtimol shunday yechim: >>> agar bo'lmasa: ... bosib chiqarish ("A o'rnatilmagan!") A o'rnatilmagan! Biroq, boshqa qadriyatlarga ham ehtiyot bo'ling bo'lishga ayyorlik Soxta - kabi 0 , [] , yoki ' (bo'sh satrni). Tekshirish haqida hech ochiq amalga oshirilishi lozim. 12.4. Xulosa Ushbu bo'limda siz Python tilidagi sharhlar haqida bilib oldingiz. Izohlar boshlanadigan belgi # va barcha keyingi belgilar qatorning oxirigacha e'tiborga olinmaydi. Ko'p qatorli sharhlar qo'llab-quvvatlanmaydi. Ushbu bobda shuningdek " To'g'ri" , " Yolg'on" va "Konversiya" haqida so'z boradi. mantiqiy turga Ko'p qiymatlar ichida haqiqiy deb talqin qilinadi kontekst (masalan, if buyrug'ida ishlatilganda ). Qanday Noto'g'ri nollarni, Yo'q va bo'sh qatorlarni izohlaydi . Bo'lim None ob'ekti tavsifi bilan yakunlanadi . Bu bitta ob'ekt qiymati belgilanishi kerak bo'lgan o'zgaruvchilarni belgilaydi kelajakda. Bu, shuningdek, bajarmaydigan funktsiyaning natijasidir qiymatni aniq aylantiradi. 12.5. Mashqlar 1. Yoshga oid o'zgaruvchini yarating va unga yoshingizni belgilang. Yaratmoq boshqa bir o'zgaruvchisi eski bo'lib , unga shartdan foydalaniladi 18 yoshdan oshganingizga ishonch. Qadimgi ma'nosi teng bo'lishi kerak To'g'ri yoki noto'g'ri . 2. Ism o'zgaruvchisini yarating va unga ismingizni bering. Boshqasini yarating Ikkinchi o'zgaruvchan bo'ladi second_half qaysi cheklar bo'lsa,
104 12-bob. Izohlar, buklar va yo'q alfavit ikkinchi yarmida birinchi harf nomi . Nima kerak taqqoslash uchun? 3. Sinfdagi odamlar nomlari bilan ismlar ro'yxatini yarating . Kodni yozing unda "Sinf bo'sh!" degan xabar paydo bo'ladi. yoki 'Class bor yozuvlar ismlarning kamida bittasini o'z ichiga olganligiga qarab qiymati. (Ushbu bo'limda maslahatlarni topasiz.) 4. O'zgaruvchan mashinani yarating va unga None tayinlang . Kodni yozing unda "Taksi siz uchun!" degan xabar aks etgan . yoki "Sizda mashina bor!" ichida qarab mashina ichiga kamida bir qiymati. ( Yo'q, yo'q) mashinaning nomi.)
13 Shartlar va belgilarni kiritish Ushbu bo'limda siz Python-dagi taqqoslash haqida ko'proq ma'lumotga ega bo'lasiz. Kodda ko'pincha yugurish yo'lini tanlash to'g'risida qaror qabul qilishingiz kerak, shuning uchun Endi biz buni qanday amalga oshirilishini bilib olamiz. Mantiqiy literalleri tashqari To'g'ri va Soxta mantiqiy olish Python-dagi qadriyatlar ham iboralarni ishlatishi mumkin. Agar Siz ikkita raqam bor, siz ularni taqqoslashingiz va birinchi og'riqning mavjudligini tekshirishingiz mumkin ikkinchi yoki aksincha. Ushbu muammoni operatorlar > va < soot- shuning uchun: >>> 5> 9
Yolg'on Quyidagi jadvalda tuziladigan taqqoslash operatorlari keltirilgan mantiqiy qiymatlar:
> Ko'proq < Kamroq
> = Ko'proq yoki teng <= Kamroq yoki teng == Teng
! = Teng emas hisoblanadi Ob'ektlar bir-biriga o'xshash emas Ob'ektlar bir xil emas
106 13-bob. Shartlar va belgilarni kiritish Ushbu operatsiyalar ko'pgina turlari bilan ishlatilishi mumkin. Va agar siz mos keladiganni aniqlaydigan o'z sinfingizni yarating usullar bo'lsa, sizning sinfingiz ham ulardan foydalanishi mumkin: >>> name = 'Matt' >>> name == 'Matt' Rost
>>> name! = 'Fred' Rost
>>> 1> 3 Yolg'on
ESLATMA Maxsus taqqoslash usullari __gt__ , __lt__ , __ge__ , __le__ , __eq__ va __ne__ mos ravishda > , < , > = , <= , == va ! = ga mos keladi. Bularning barchasini aniqlang Usullar juda zerikarli va monotondir. Odatda qaysi sinflar uchun bu taqqoslashlar ishlatiladi, functools.total_ordering sinf dekoratori ta'rifga muvofiq taqqoslashning barcha funktsional imkoniyatlarini ta'minlaydi __eq__and__le__ usullari . Dekorator qolgan qismini avtomatik ravishda ishlab chiqaradi taqqoslash usullari. Aks holda, siz oltitasini amalga oshirishingiz kerak usullari: >>> import funktsiyalari >>> @ functools.total_ordering ... sinf Abs (ob'ekt): ... def __init __ (o'zini, num): ...
self.num = abs (num) ... def __eq __ (o'zini, boshqasini): ... return self.num == abs (boshqa) ... def __lt __ (o'zi, boshqalar): ...
return self.num >>> to'rt = Abs (-4) >>> besh> to'rtta # "kam" holati ishlatilmaydi! Rost Dekorativlar o'rta murakkablik mavzusi deb hisoblanadi. Kirish darajasidagi kitobda ular hisobga olinmaydi.
13.1. Shartli iboralarni birlashtirish 107 MASLAHAT Identifikatsiyani taqqoslash uchun operator hisoblanadi va mavjud emas . (ya'ni, ikkita ob'ekt bir xil identifikatorga va haqiqiyga ega ular aynan bitta ob'ekt (va nafaqat bir xil ma'noga ega). Chunki hech biri bitta ob'ekt emas va faqat bitta identifikatorga ega. Kator, deb va emas bilan foydalanish mumkin Bo'sh : >>> agar ism yo'q bo'lsa: ... # Initsializatsiya nomi
Shartli ifodalar bilan birlashtirilishi mumkin mantiqiy operatorlar va , yoki va emas .
x va y
Agar ifoda to'g'ri bo'lsa, faqat haqiqiydir ikkala operand ham x yoki y Agar ifoda kamida bo'lsa, to'g'ri bo'ladi operandalardan biri x emas
X ni mantiqiy ravishda rad etish ( Haqiqiy noto'g'ri tomonga burilish , va teskari) Quyidagi oddiy misolda topshiriqlarni baholash amalga oshiriladi to'plangan ballar soniga qarab - ifoda tekshiradi To'plangan ballar soni berilgan raqamli diapazonga to'g'ri keladimi: >>> ball = 91 >>> agar ball> 90 va <= 100 bo'lsa: ... bahosi = 'A' ESLATMA Bunday holatlarda Python sizga masofaviy tekshirishdan foydalanishga imkon beradi : >>> agar 90 ... bahosi = 'A' 13-bob. Shartlar va belgilarni kiritish Ikkala tekshirish uslubi ham ishlaydi, lekin boshqa dasturlash tillarida,
tarmoqli tekshiruvi kamdan-kam hollarda qo'llab-quvvatlanadi. Quyidagi misolda ism berilgan guruhda ekanligini tekshiradi :
>>> name = 'Pol' >>> beatle = noto'g'ri
>>> if == 'Jorj' yoki \ ... name == 'Ringo' yoki \
... name == 'John' yoki \ ... ism == 'Pol':
... beatle = To'g'ri ... yana:
... beatle = noto'g'ri Ushbu misolda, \ 'Jorj' yoki \ satr oxirida buyruq ko'rsatilgan keyingi qatorda davom etadi. Ko'plab dasturlash tillarida bo'lgani kabi
Pythonda shartli iboralar Qavslar ichiga joylashtirilishi mumkin. Qavslar Pythonda ixtiyoriy bo'lganligi sababli, ko'p marta
Ishchilar ularni zaruriy hollar bundan mustasno deb tashlamaydilar operatorlarning ustuvorligini belgilash. Biroq, qavslar boshqasiga ega
nuance: ular tarjimonga buyruq hali to'liq emasligini aytadilar va keyingi qatorda davom etadi. Bu keyingi narsada degan ma'noni anglatadi
Masalan, \ belgi kerak emas: >>> name = 'Pol'
>>> beatle = noto'g'ri >>> if (name == 'George' yoki
... name == 'Ringo' yoki ... name == 'John' yoki
... ism == 'Pol'): ... beatle = To'g'ri
... yana: ... beatle = noto'g'ri
Quyida ko'rib chiqilayotgan mulkni tasdiqlash versiyasi Python-ning asosiy idiomalaridan biri. Qiymat kiritilganligini tekshirish
to'plamga kiriting, to'plamning elementlarini to'plamga birlashtiring va foydalaning Radiator bilan :
>>> beatles = {'Jorj', 'Ringo', 'Djon', 'Pol'} >>> beatl = ismni beatles-da Ko'pchilik keyingi bobda batafsilroq muhokama qilinadi. Yordamida misol emas, balki kalit so'z shartli qo'mondonlik: >>> last_name = 'noma'lum' >>> if == 'Paul' va bitl emas: ... last_name = 'Qattiq' 13.2. Agar buyruqlar bo'lsa Boolean qiymatlari ( True va False The ) ko'pincha shartli Ko ishlatiladi mandah. Shartli buyruq mohiyatini anglatadi: "agar bu shart to'g'ri bo'lsa," kod blokini bajaring, agar bo'lmasa, boshqa kodni bajaring. " Shartli Buyruqlar ko'pincha Python-da qo'llaniladi. Ba'zida if buyrug'i tekshiriladi Mantiqiy qiymatlarni o'z ichiga olgan qiymatlar boshqa hollarda tekshirish natijasi mantiqiy deb talqin qilingan iboralar qiymati. Yana bir keng tarqalgan tekshirish, oldindan yashirin oldindan tayyorgarlik bilan bog'liq. "kvasi-haqiqat" yoki "oddiy" ma'nolariga o'tish: >>> disk raskadrovka = To'g'ri >>> nosozlik bo'lsa: # mantiqiylikni tekshirish ... bosib chiqarish ("Nosozliklarni tuzatish") Nosozliklarni tuzatish
Boshqa buyruq if buyrug'i bilan birgalikda ishlatilishi mumkin . Boshqa tanasi Ahvoli agar u faqat ijro agar natija beradi yolg'on . Quyidagi birlashtirgan bir misol yana buyrug'ini bilan bo'lsa : >>> ball = 87 >>> agar ball> = 90: ... bahosi = 'A' ... yana: ... bahosi = 'B' Python ifoda ballini = = 90 baholaydi va False natijasini oladi . Shunday qilib agar shart noto'g'ri bo'lsa, boshqa blok buyruqlari bajariladi va O'zgaruvchi sinf qilingan qiymat tayinlangan «B» .
110 13-bob. Shartlar va belgilarni kiritish 13.4. Ko'p tanlov Tanlov har doim ikkita imkoniyat bilan cheklanmaydi. Yo'q qachon Siz bilan oraliq qadamlarni qo'shishingiz mumkin elif kalit so'z ("else if" uchun qisqa). Quyida diagramma keltirilgan bir nechta variantli tanlov: >>> ball = 87 >>> agar ball> = 90: ... bahosi = 'A' ... elif ball> = 80: ... bahosi = 'B' ... elif ball> = 70: ... sinf = 'C' ... elif ball> = 60: ... sinf = 'D' ... yana: ... bahosi = 'F' If , elif va boshqa buyruqlarning har biri o'z kod blokiga ega. Python True natijasi bilan shart topishga harakat qilib, yuqoridan qidiruvni boshlaydi . Bunday holatni aniqlaganidan so'ng, Python blokni bajaradi va keyin sakrab chiqadi kodni barcha elif va boshqa bloklardan keyin bajarish . Agar if va elif shartlarining hech biri to'g'ri natija bermasa , blok bajariladi yana buyruqlar . ESLATMA If buyrug'i nol yoki undan ortiq elif buyrug'ini o'z ichiga olishi mumkin . Jamoa mavjudligi yana ixtiyoriy. Agar boshqa buyruq so'ng, mavjud bo'lsa, amri u faqat bitta bo'lishi mumkin. 13.5. Bo'shliqlar Ehtimol siz bitta g'alati narsani payqadingiz: mantiqiy if buyrug'idagi gapdan keyin yo'g'on ichak ( :) . Keyingi qatorlar if buyrug'idan so'ng darhol to'rtdan ajratiladi bo'shliqlar. Ko'rsatilgan chiziqlar bajaradigan kod blokini hosil qiladi agar if bayonot to'g'ri bo'lsa natijani beradi .
13.5. Bo'shliqlar 111 Boshqa tillarda if buyrug'i quyidagicha ko'rinishi mumkin: agar (ball> = 90) { sinf = 'A'; } Bunday tillarda buyruqlar jingalak bilan ko'rsatilgan bo'lsa , bloklarning chegaralari qavslar ( {} ). Jingalak qavslar orasidagi barcha kodlar bajariladi agar ball qiymati 90 dan katta yoki unga teng bo'lsa. Bunday tillardan farqli o'laroq, Python-da bloklarni ko'rsatish uchun, Ikkita belgi bor: ❍ yo'g'on ichak ( :) ; ❍ belgilash. Agar siz boshqa tillarda dasturlashtirilgan bo'lsangiz, Python-ga kirish oson. Sizdan talab qilinadigan barcha narsa bu chap jingalak qavsni ( { ) yo'g'on ichak bilan ( :) va ketma-ket ravishda almashtiring Blokning oxiriga belgi qo'ying. MASLAHAT "Izchil belgilash" nimani anglatadi? Odatda uchun kod ichidagi belgilar orasida yorliq yoki belgilar ishlatiladi oq rangda. Python tarjimoni faqat uslublar birligiga e'tiborni qaratadi. fayl darajasida belgilash. Loyiha bir nechta fayllardan iborat bo'lishi mumkin, har xil chiziqlardan foydalaning, ammo bu ahmoqlik. PEP 8-ga ko'ra, Python to'rtdan ajratishni tavsiya qiladi bo'shliqlar. Agar yorliqlarni bitta faylda bo'shliqlar bilan aralashtirishni boshlasangiz, tez orada muammolar. Va bo'sh joylar afzal deb hisoblanadi. agar siz allaqachon belgilarni ishlatadigan kod ustida ishlayotgan bo'lsangiz jadvallarni tuzishda, izchil harakat qilish va undan foydalanishni davom ettirish yaxshiroqdir koddagi yorliq belgilar. Agar tablarni bo'shliqlar bilan aralashtirishni boshlasangiz, bajarilishi mumkin python3 TabError xatosi haqida xabar beradi .
112 13-bob. Shartlar va belgilarni kiritish 13.6. Xulosa Ushbu bo'limda if buyrug'i ko'rib chiqiladi . Ushbu buyruqdan foydalanish mumkin o'zboshimchalik bilan murakkab sharoitlarni yaratish bilan ittifoq ifodalar va , yoki va emas . Shuningdek, bo'lim bloklari, satr va bo'sh joylar ko'rib chiqilgan. Siz Python-ni birinchi marta uchratganingizda, majburiy ajratish qoidasi bo'lishi mumkin zerikarli to'siq kabi ko'rinadi. Men shunday odamlarni uchratdim ularning o'quv kurslarida ko'rib chiqing. Ammo men ulardan so'raganimda boshqa tillardagi kodni kiritishganmi yoki yo'qmi, ular shunday deb javob berishdi: "Albatta, bu kod yaxshiroq o'qing. ” Python kodni o'qishga juda ko'p imkoniyat beradi e'tiborni jalb qilish kerak, va bu holda ajratish qoidasi bunga yordam beradi.
1. Yilning saqlanishini tekshiradigan if buyrug'ini yozing. o'zgaruvchan, sakrash. Leopardni aniqlash qoidalari yillar 8-bobning mashqlarida berilgan. 2. o'z ichiga olgan o'zgaruvchini sinab ko'rish uchun if buyrug'ini yozing parol uchun sodiq raqam. 3. If buyrug'ini yozing . Ichki blokni toping va qaysi birini tekshiring belgilarni qo'yishda muharriringiz ishlatadigan belgilar - piyozchalar yoki bo'shliqlar. Agar belgilash tablari yordamida yaratilgan bo'lsa Buning uchun bo'sh joylardan foydalanadigan muharriringizni sozlang. Ba'zi muharrirlarda yorliqlar boshqacha ko'rsatiladi; agar Muharrirda ular xuddi shu tarzda namoyish etiladi; ammo kursorni indeks ichiga o'tkazing. Agar kursor darhol harakat qilsa 4 yoki 8 ta belgidan iborat bo'lsa, muharrir tabga belgi qo'ydi.
Download 363.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling