1-sahifa 2-sahifa


Download 363.98 Kb.
bet9/21
Sana06.06.2020
Hajmi363.98 Kb.
#115448
1   ...   5   6   7   8   9   10   11   12   ...   21
Bog'liq
Python


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-bet

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

0



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:



101-bet

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-bet

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 :



103-bet

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-bet

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.)





105-bet

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:

Operator

Ta'rif

>

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-bet

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 >>> besh = Abs (-5)

>>> to'rt = Abs (-4)

>>> besh> to'rtta # "kam" holati ishlatilmaydi!

Rost

Dekorativlar o'rta murakkablik mavzusi deb hisoblanadi. Kirish darajasidagi kitobda



ular hisobga olinmaydi.



107-bet

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

13.1. Shartli iboralarni birlashtirish

Shartli ifodalar bilan birlashtirilishi mumkin mantiqiy operatorlar va ,

yoki va emas .

Mantiqiy operator

Ta'rif

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'





108-bet

108

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



ESLATMA

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

MASLAHAT

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 :



109-bet

13.3. Boshqa buyruqlar

109

>>> 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

13.3. Boshqa buyruqlar

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-bet

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 .





111-bet

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-bet

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.

13.7. Mashqlar

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.





113-bet

Download 363.98 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling