1-sahifa 2-sahifa
Download 363.98 Kb.
|
Python
- Bu sahifa navigatsiya:
- 85-bet 11-qator va usullar
- 2 bosqich: Python yangi chiziq yaratadi, katta harf
- 87-bet Simlar va usullar 87
- 88-sahifa 88
- 89-bet 11.2. endswith 89 11.1. Asosiy simli usullar
- 91-bet 11.4. format 91 11.3. toping
- 93-bet 11,8. tasma 93 11.6. pastki
- ESLATMA
- 95-bet 12.12. Mashqlar 95
- 96-bet 12 ta sharh, mantiqiy qadriyatlar va yoq
- 97-bet 12.2. Boolean qiymatlari 97 MASLAHAT
- 12.2. Boolean qiymatlari
- 99-bet 12.2. Boolean qiymatlari 99
10.5. Mashqlar 1. REPL-ni oching va ismingiz bilan o'zgaruvchini yarating . Siz- satr atributlarini kiriting. Namunaviy hujjatlarni ko'rsatish usullari .Telefoningizni toping va .sarlavhani . 2. REPL-ni oching va sizning yoshingiz bilan yosh o'zgaruvchisini yarating . Butun sonning atributlarini chop eting. Ma'lumot hujjatini chop eting .umumator usuli uchun .
11-qator va usullar 10-bobda siz ichki kir funktsiyasi va ba'zi usullar haqida bilib oldingiz , satr ob'ektlari uchun chaqirilishi mumkin. Torlari o'zgarmasdir, bu usullar satrni o'zgartirmaydi, lekin qaytadi yangi qator yoki yangi natija. String operatsiyalariga ruxsat beradi katta harfga aylantirilgan yangi versiyasini yarating, orqaga qayting formatlangan satr, kichik harflar qatorini yarating va hokazo. uchun Dasturchi ushbu operatsiyalarni bajarish uchun usullarni chaqiradi . Usullar misol uchun chaqiriladigan funktsiyalardir turi. Bu nimani anglatadi? Simli ob'ektda usulni chaqirish uchun, davrni ( . ) qo'ying va o'zgaruvchan nomdan so'ng darhol ob'ekt nomini belgilang, ma'lumotlarni saqlash (yoki ma'lumotlarning o'zi tomonidan). Ob'ekt nomining orqasida bo'lishi kerak argumentlar ro'yxati bilan qavslarni kuzatib boring.
Ushbu kitobda men metod nomlariga chek qo'ydim. Bu tartibda amalga oshiriladi usul oldin bo'lishi kerakligini eslatib o'tamiz ekt. Aytaylik, bosh harf bilan yozish usuli o'rniga , matn matnda aytib o'tiladi .kapitalizatsiya qiling . Matn ob'ekti uchun uni chaqirish quyidagicha: text.capitalize () Shu munosabat bilan usullar funktsiyalardan farq qiladi (masalan, yordam ), ular mustaqil ravishda chaqiriladi (ob'ekt yoki nuqta bo'lmasdan): Yordam bering ()
86 11-bob. Simlar va usullar name = 'mat' "mot"
Id: 4f3b Turi: String nomi
right = name.capitalize () "mot" Id: 4f3b
Turi: String nomi
2 bosqich: Python yangi chiziq yaratadi, katta harf "Mat"
Id: 4f3f Turi: String right = name.capitalize () "mot"
Id: 4f3b Turi: String nomi
"Mat"
Id: 4f3f Turi: String to‘g‘ri O'zgarmas satrlar Jamoa Kompyuter nima qiladi O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar
chunki simlar o'zgarmasdir. Buning o'rniga, usul yangi qatorni qaytaradi
Simlar va usullar 87 Quyidagi misol o'zgaruvchiga .capitalize metodini chaqiradi, torga ishora va tom ma'noda. Eslatma: usul deyilgan ob'ekt o'zgarmaydi. Shunday qilib satrlar o'zgarmas ekan, usulning natijasi yangi ob'ekt hisoblanadi bosh harf: >>> name = 'mat' # o'zgaruvchini chaqirdi >>> to'g'ri = name.capitalize () >>> bosma (to'g'ri) Mat E'tibor bering: ism o'zgarmaydi: >>> bosma (ism) mot
.Capitalize usuli o'zgaruvchini chaqirish shart emas. Uning ham to'g'ridan-to'g'ri mag'lubiyatga uchun chaqirilishi mumkin: >>> chop etish ('fred'.capitalize ()) Fred
Pythonda usullar va funktsiyalar to'la huquqli ob'ektlardir . Qanday yuqorida aytib o'tilganidek, Pythonda ob'ektlardan boshqa hech narsa yo'q. Agar Qavslarni qoldiring, Python xato xabarini bermaydi, lekin siz ob'ekti bo'lgan usul uchun mos yozuvlar saqlaydi: >>> chop etish ('fred'.capitalize)
0x7ff648617508> -ni tanlang Usullar va funktsiyalarning to'liq huquqli ob'ektlar kabi mavjudligi
Kabi foydalanish nostandart funktsiyalar panellari va dekorativlar (ular mening Python darsligimda keltirilgan
aniq darajasi). 11-bob. Simlar va usullar Butun sonlar va suzuvchi nuqtalar sonlari ham usullarga egami? Ha yana Takror aytaman: Pythonda ob'ektlardan boshqa narsa yo'q, va ob'ektlarda usullar mavjud.
Bu oson hunar tomonidan tekshirilishi mumkin dir , tamsayı uchun (yoki o'zgaruvchan butun sonni saqlaydigan):
>>> dir (4) ['__abs__', '__add__', '__and__',
'__class__', ...
'__subclasshook__', '__truediv__', 'denominator', 'imag', 'numerator', 'haqiqiy'] Raqam uchun usulni chaqirish vaqtni ishlatish bilan biroz qiyinlashadi usul qo'ng'iroqni ko'rsatish uchun. Nuqta ko'pincha raqamlarda uchraydi raqamlar uchun qo'ng'iroq qilish usullaridan foydalanib, suzuvchi nuqta Pythonni chalkashtirib yuborish. Masalan, .conjugate usuli butun sonning murakkab konjugatsiyasini qaytaradi sana. Ammo siz butun sonni chaqirishga harakat qilsangiz, siz olasiz xato:
>>> 5.jihat () Traceback (eng so'nggi qo'ng'iroq oxirgi): ... 5.konjugat () ^ SyntaxError: yaroqsiz sintaksis Mumkin echimlardan biri bu raqamni qavs ichiga qo'shishdir: >>> (5) .conjugate () 5 Siz shuningdek 5 o'zgaruvchini tayinlashingiz va o'zgaruvchiga usulni chaqirishingiz mumkin: >>> besh = 5 >>> besh.conjugate () 5 Biroq, amalda raqamlarga qo'ng'iroq qilish usullari juda kam.
11.2. endswith 89 11.1. Asosiy simli usullar Ba'zi simli usullar ko'pincha dasturlarda va topilmalarda ishlatiladi. uchinchi tomon kodida yashash. Boshqalar haqida ma'lumotni quyidagi manzilda topish mumkin Yordam dir va yordam (yoki elektron hujjat). 11.2. endswith Aytaylik, sizda fayl nomi bilan o'zgaruvchi bor va buni xohlaysiz ishonish kengaytmasi. Vazifa .endsw usuli bilan osonlikcha hal qilinadi : >>> xl = 'Oct2000.xls' >>> xl.endswith ('. xls') Rost
>>> xl.endswith ('. xlsx') Yolg'on
ESLATMA Eslatma: usulni chaqirganda siz parametrlardan o'tishingiz kerak metr (yoki argument ) 'xls' . Usullarning imzosi bor - bu qo'rqituvchi atama ularni to'g'ri miqdorda chaqirish kerakligini anglatadi parametrlar (va turlari). .Endswith usuli uchun, agar siz mantiqan agar chiziq boshqa chiziq bilan tugashini bilmoqchi bo'lsangiz, Python-ga xabar berishingiz kerak, qaysi tugallanishni tekshirish kerak. Buning uchun usul o'tkaziladi oxirgi qator. MASLAHAT Shunga qaramay, barcha bunday ma'lumotni yordam bilan osongina topish mumkin . Hujjatlar qaysi parametrlar talab qilinishini ko'rsatishi kerak ny, shuningdek, barcha ixtiyoriy parametrlarni sanab o'tish kerak. Uchun yordam endswith bu kabi ko'rinadi: >>> yordam (xl.endswith) Ichki funksiya yordami bilan: endswith (...) S.endswith (qo'shimchasi [, boshlash [, tugatish]]) -> bool S belgilangan bo'lsa, tugagan bo'lsa True ni qaytaring
90 11-bob. Simlar va usullar suffiks, noto'g'ri boshqa. Ixtiyoriy bilan boshlang, S holatini shu holatda boshlang. Ixtiyoriy oxirida S ni taqqoslashni to'xtating bu pozitsiya. suffiksi ham a bo'lishi mumkin Simlar nizomning sinash uchun 1 . Chiziqqa e'tibor bering S.endswith (qo'shimchasi [, boshlash [, tugatish]]) -> bool S usul chaqirilayotgan satrni ( misolni ) anglatadi ; bizning Agar u xl o'zgaruvchisi bo'lsa . Usulning nomi .endswith . Qavslar ichida () parametrlar ilova qilingan. Kerakli parametr - suffiks . Usul .endswith agar ushbu parametr qachon o'tkazilmasa, xato haqida xabar beradi qo'ng'iroq: >>> xl.endswith () Traceback (eng so'nggi qo'ng'iroq oxirgi): Fayl " TypeError: endswith () kamida bitta argumentni oladi (0 berilgan) Kvadrat qavs ichida [] parametrlar ixtiyoriy . Bunda Bunday holda, boshlash va tugatish parametrlari faqat simning bir qismini tekshirishga imkon beradi. Ustida- masalan, agar siz satrning qismi 0 dan 3 gacha bo'lgan belgiga ega ekanligiga ishonch hosil qilmoqchi bo'lsangiz " Okt " harflari bilan tugaydi , buni quyidagicha bajarish mumkin: >>> xl.endswith ('Okt', 0, 3) Rost Stringlar ham birlashtirilgan .startswith metodiga ega , shuning uchun agar xohlasangiz chiziq "Okt" bilan boshlanganligini bilish uchun quyidagicha amalga oshiriladi: >>> yulduz yulduzlari bilan ('Okt') Rost 1
U boshlanganda, S holatini ushbu holatda tekshiring . Ixtiyoriy parametr bilan end taqqoslab stop S , bu holatda. suffiks ham juftlik bo'lishi mumkin chiziqlar.
11.4. format 91 11.3. toping .Find usuli boshqa satrlarda pastki satrlarni qidirish uchun ishlatiladi. U hajda indeksi taalukli substring ning (bir 0 dan boshlanadi, ofset). Agar pastki chiziq topilmasa, usul returns1 ni qaytaradi: >>> word = 'minnatdorchilik' # 0 - g, 1 - r, 2 - a >>> word.find ('egan') 2 >>> word.find ('ajoyib') -1 11.4. format Formatlash usuli muhimlarni birlashtirib yangi chiziqlar yaratishni osonlashtiradi mavjud o'zgaruvchilar. Ushbu usul 9-bobda muhokama qilindi: >>> chop eting ('nomi: {}, yosh: {}'. \ ... formati ('Matt', 10)) ism: Matt, yosh: 10 ESLATMA Yuqoridagi misolda bosib chiqarish funktsiyasi ikkita satrni oladi. Izdoshlar belgilar . \ Pythonga keyingi satr ekanligini aytadi davomi. Chap qavs ochiq bo'lsa ( siz ham qilishingiz mumkin) argumentlarni bir nechta satrlarga \ -siz ko'chirish : >>> bosib chiqarish ("so'z". ... topish ('ord')) 1 >>> bosib chiqarish ("word" .find ( ... 'ord')) 1 Kodni o'qishni osonlashtirish uchun davom ettirish satrlari qo'yiladi. Kimdan to'rt bo'shliqdan iborat stupa barcha kod o'quvchilariga ikkinchi chiziq ekanligini aytadi bu avvalgi buyruqning davomi:
92 11-bob. Simlar va usullar >>> chop eting ("so'z". \ ... topish ('ord')) 1 >>> bosib chiqarish ("word" .find ( ... 'ord')) 1 Nima uchun bitta qatorga sig'adigan kodni sindirish kerak nechta satr? Bu ko'pincha standartlardan foydalangan holda amalga oshiriladi. chiziq uzunligi 80 belgidan oshmasligini talab qiluvchi kodni loyihalash ho'kizlar. Agar usul bir nechta dalillarni qabul qilsa, cheklovlarga qarshi turing 80 ta belgi qiyin bo'lishi mumkin. (Python uchun sim uzunligi muhim emas, lekin kodingizni o'qiydiganlar - bu boshqa masala.) Amalda, usul uchun har bir dalil ko'pincha alohida satrda joylashtiriladi: >>> chop etish ('{} {} {} {} {}'. format) ( ... 'Salom', ... 'ga', ... 'siz', ... 'va', ... "siz" ...)) sizga va sizga salom 11.5. qo'shiling Ko'pincha ro'yxat mavjud (keyinchalik kitobda ko'ring) va siz biron bir narsani kiritmoqchisiz mavjud elementlar o'rtasida. .Join usuli yangi qator yaratadi elementlarning har bir jufti orasidagi qatorni qo'shib, ketma-ketlikdan ro'yxat: >>> ',' .join (['1', '2', '3']) '1, 2, 3'
Ko'pgina Python tarjimonlarida .join ko'pchilikka qaraganda tezroq + operatoridan foydalangan holda bir nechta qo'shilish . Kamaytirilgan idioma standartdir.
11,8. tasma 93 11.6. pastki .Lower usuli pastga aylantirilgan satr nusxasini qaytaradi ro'yxatdan o'ting. Bunday o'zgartirish ko'pincha tekshirish uchun foydalidir. kiritish biroz satr bilan mos keladi. Masalan, ba'zi dasturlar fayl kengaytmalarini katta harf bilan yozing, boshqalari emas. Agar Agar faylda TXT yoki txt kengaytmasi mavjud bo'lsa, tekshirish mumkin shunday qiling: >>> fname = 'readme.txt' >>> fname.endswith ('txt') yoki fname.endswith ('TXT') Rost
Python uchun ko'proq an'anaviy versiya quyidagicha ko'rinadi: >>> fname.lower (). endswith ('txt') Rost
.Startswith usuli hisoblanadi o'xshash .endswith , lekin boshlanadi, agar bu tekshiradi boshqa chiziqdan bo'ladimi: >>> "Kitob yulduzlari" ("B") Rost >>> "Kitob yulduzlari" ("b") Yolg'on 11,8. tasma .Strip usuli boshlang'ich bo'lgan yangi qatorni qaytaradi va ortda qoldirib ketishlar (bo'shliqlar, yorliqlar, yangi satrlar). Ustida- masalan, bu ma'lumotni normalizatsiya qilish yoki tahlil qilish uchun foydali bo'lishi mumkin, foydalanuvchi tomonidan kiritilgan (yoki Internetdan yuklab olingan). >>> 'salom u erda' .strip () 'salom'
94 11-bob. Simlar va usullar Iltimos, diqqat qiling: uchta etakchi bo'shliq chiziqdan olib tashlandi va oxirida ikkita bo'sh joy. Bunday holda, so'zlar orasidagi ikkita bo'shliq qoladi ularning joylari. Agar siz faqat boshini yoki oxirini olib tashlashingiz kerak bo'lsa kamchiliklar, bu vazifalar mos ravishda lstrip va rstrip usullari bilan hal qilinadi . 11.9. yuqori .Golografiya usuli hisoblanadi o'xshash jigar darvozasining orqasida . U ichidagi satr nusxasini qaytaradi barcha harflar katta harf: >>> 'yell'.upper () 'BAQIRMOQ'
Simlarning boshqa usullari mavjud, ammo ular kamroq qo'llaniladi. Bilish uchun ular bilan o'zingiz - hujjatlarni o'qing va harakat qilib ko'ring amaliyot. Ilovada ushbu usullarning to'liq ro'yxati keltirilgan. ESLATMA STRINGMETHODS Repl yordam bo'limda hududda qismi hujjatlarni o'z ichiga oladi barcha simli usullar uchun, shuningdek bir qator misollar.
Ushbu bob usullarga bag'ishlangan. Usullari har doim bilan chaqiriladi usul nomidan oldin ob'ekt va nuqta ko'rsatib. Shuningdek, ko'rib chiqilgan torlarning eng keng tarqalgan usullari. Shuni esda tutingki, chiziqlar o'zgarmasdir. Agar siz satrning qiymatini o'zgartirmoqchi bo'lsangiz, Buning uchun yangi chiziq yarating. 12.12. Mashqlar 1. Maktabingiz nomi bilan maktab chizig'ini yarating . Ushbu chiziq uchun mavjud bo'lgan usullarni ko'rib chiqing. Fursatdan foydalaning hujjatlarni ko'rish uchun yordam funktsiyasi .
12.12. Mashqlar 95 2. "usa" qiymati bilan mamlakat qatorini yarating . Yangi bino yarating Ku correct_country qiymati bilan yuqori aylanadi satr usuli yordamida histr. 3. 'hello.py' qiymati bilan fayl nomi bilan satr yarating . Tekshirish fayl nomi ".java" qo'shimchasi bilan berilganmi . Ichki qismni aniqlang 'py' qatori . Satr "dunyo" pastki satridan boshlanganligini tekshiring . 4. REPL ni oching. Yordam rejimiga kiring va qarang: STRINGMETHODS .
12 ta sharh, mantiqiy qadriyatlar va yo'q Ushbu bobda sharhlar, bouleans va Hech biri muhokama qilinadi . Sharhlar sizning kodingizni yanada tushunarli qiladi. Boolean qiymatlari va None turi Python kodida juda ko'p ishlatiladi. 12.1. Izohlar Sharhlar turi emas, chunki Python ularga e'tibor bermaydi. Ular dasturchiga biron narsani eslatishi yoki tushuntirishi kerak. Yaratilish sharhlarni qanday yozish bo'yicha turli xil fikrlar, ularning maqsad va yordam. Fikrlar doirasi keng: har kimga qarshi bo'lganlardan sharhlar, deyarli har bir kod satriga sharh berganlarga. Agar siz biron bir loyihada qatnashayotgan bo'lsangiz, qabul qilinganlarni bajarishga harakat qiling sharhlar sxemasi. Odatda, yaxshi sharh berish kerak tushuntirib nima uchun emas, balki, qanday qilib (savolga javob qanday bo'lishi kerak, manba kodining o'zi). Pythonda sharh yaratish uchun # belgisi bilan qatorni boshlang . Barchasi, Ushbu belgi e'tiborga olinmaganidan keyin nima sodir bo'ladi: >>> # Bu chiziq Python tomonidan e'tiborga olinmaydi Sharh shuningdek satr oxirida joylashgan bo'lishi mumkin: >>> num = 3.14 # PI
12.2. Boolean qiymatlari 97 MASLAHAT Sharhlar, shuningdek kodni vaqtincha blokirovka qilish uchun ishlatiladi tartibga solish jarayoni. Agar muharriringiz ushbu xususiyatni qo'llab-quvvatlasa, ba'zida kodni yo'q qilish o'rniga uni izohlash osonroq bo'ladi to'liq Biroq, tarqatish uchun kodni yuborishdan oldin, Tonlangan joylar eng yaxshi tarzda olib tashlanadi. Boshqa tillar ko'p qatorli sharhlarni qo'llab-quvvatlaydi, ammo Pythonda ular yo'q. Bir nechta fikrlardan sharh yaratishning yagona usuli kih satrlari - har bir satrni # bilan boshlang . MASLAHAT Siz sharh yaratishingiz mumkin uch tirnoq bilan o'ralgan satr yordamida bir nechta satrlardan. Bunday dizaynlar chirkin va tushunarsiz bo'lib chiqadi, ishlatilmaydi ularni kuylang.
( Soxta ). Siz ularni avvalgi kod misollarida ko'rgansiz - masalan, stars yordamida olingan choralar : >>> "yulduzcha" ("b") Rost Bunday qiymatlar o'zgaruvchilarga berilishi mumkin: >>> a = To'g'ri >>> b = noto'g'ri ESLATMA Python-da, boulenlar boul sinfiga kiradi : >>> turi (haqiqiy)
12-bob. Izohlar, buklar va yo'q Boshqa turlarni mantiqiy qiymatlarga aylantirish foydali bo'lishi mumkin. Python-da buni bool klassi yordamida amalga oshirish mumkin . Ammo, odatda to'g'ridan-to'g'ri turdagi konversiyalar tufayli ortiqcha bo'ladi Tekshiruv paytida Python amalga oshiradigan yashirin konversiya baliq ovlash tuzilmalari. Qayta ishlash sharoitida bu konvertatsiya bo'ladi siz uchun qilingan Python terminologiyasida siz "kvaz-haqiqat" haqida tez-tez eshitasiz yoki ob'ektlarning "soxta" harakati - bu mantiqsiz degan ma'noni anglatadi osmon tiplari o'zlarini mantiqiy tarzda tutishlari mumkin. Agar sizning turingiz qanday bo'lishiga ishonchingiz komil bo'lmasa, aniq ish tuting bool class yordamida konversiya . Bo'sh satrlar uchun "oddiy" xulq-atvor mavjud, holbuki bo'sh bo'lmagan qiymatlar Haqiqiy deb talqin qilinadi : >>> bool ('') Yolg'on >>> bool ('0') # satrda 0 raqami mavjud Rost Bajarilmaydigan mag'lubiyatga asoslangan haqiqiy xatti-harakatlar mavjudligi sababli, siz qila olasiz Qatorda biron bir ma'lumot mavjudligini tekshirishingiz mumkin. Keyingi qismida Parchada ismning qiymati kodda ko'rsatilgan, ammo shunday bo'lishi kerakligini tasavvur qiling foydalanuvchi kiritgan: >>> name = 'Pol' >>> agar ismi: ... bosib chiqarish ("Nomi {}". format (nom)) ... yana: ... bosib chiqarish ("Nomi yo'q") Ism - paul Ismning uzunligini tekshirish shart emas . Buni qilmang: >>> agar len (ism)> 0: ... bosib chiqarish ("Nomi {}". format (nom)) Va buni qilishning hojati yo'q: >>> agar bool (ism): ... bosib chiqarish ("Nomi {}". format (nom))
12.2. Boolean qiymatlari 99 chunki Python if buyrug'ining tarkibini hisoblab chiqadi va o'zgartiradi siz uchun mantiqiy qiymatga. Bajarilmaydigan satr sifatida talqin qilinganligi sababli kabi To'g'ri , bunday tuzilmani ishlatish etarli >>> agar ismi: ... bosib chiqarish ("Nomi {}". format (nom)) ESLATMA O'rnatilgan int , float , str va bool turlari bu sinflardir. Kerak bo'lsa ham case (kichik harflar) ular funktsiyalarga o'xshash, aslida shunday sinflar. Buni osonlikcha yordam (str) ga qo'ng'iroq qilib tekshirish mumkin : >>> yordam (str) Class str modulidagi yordam: sinf str (ob'ekt) | str (ob'ekt = '') -> str | str (bytes_or_buffer [, kodlash [, xatolar]]) -> str | Bu Python tilida ozgina nomuvofiqlikni ko'rsatadi: sinflar, foydalanuvchi tomonidan belgilanadigan qoidalar odatda PEP8 qoidalariga bo'ysunadi sinf nomlarida tuya sumkasini tavsiya eting. Raqamlar uchun nol False , boshqa raqamlar esa talqin qilinadi haqiqiy xulq-atvoringiz bor : >>> bool (0) Yolg'on
>>> bool (4) Rost
Bool funktsiyasi tomonidan aniq konversiya mavjud bo'lsa-da, odatda ortiqcha bo'ladi. emas, chunki o'zgaruvchilar aniq ravishda bulyonlarga aylantiriladi shartli ko'rsatmalarda foydalanilganda. Masalan, konteyner turlari (masalan, ro'yxatlar va lug'atlar ) elementlari bo'lmagan yomon xulq ". Boshqa tomondan, elementlar paydo bo'lganda ular kvazi-haqiqat sifatida talqin etiladi. Download 363.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling