1-bobda siz Pythonni kompyuteringizga o'rnatishni o’raganasiz va birinchi ishga tushirasiz Hello world! Xabarini ekranga chop etadigan dastur. 2-bobda
Pop () usuli yordamida buyumni olib tashlash
Download 0.54 Mb.
|
Asosiy qismlari
- Bu sahifa navigatsiya:
- Royxatdagi har qanday pozitsiyadan narsalarni ochish
Pop () usuli yordamida buyumni olib tashlash
Ba'zan ro’yhatdan a ni olib tashlaganingizdan so'ng uning qiymatidan foydalanishingiz mumkin . Masalan, musofirning x va y holatini olishingiz mumkin ,shunchaki urib tushirilgan edi. Internetda dasturida foydalanuvchini faol a'zolar ro'yxatidan o'chirishingiz mumkin va keyin ushbu foydalanuvchini faol bo'lmagan a'zolar ro'yxatiga qo'shing. Pop () usuli ro'yxatdagi so'nggi elementni olib tashlaydi, uni olib tashlaganingizdan keyin ushbu element bilan ishlashga imkon beradi. Pop atamasi a haqida o'ylashdan ro'yxati elementlar to'plami sifatida kelib chiqadi va bitta elementni stackning yuqori qismidan chiqarib tashlashingiz mumkin.: motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) popped_motorcycle = motorcycles.pop() print(motorcycles) print(popped_motorcycle) Biz ro'yxatni mototsikllarni belgilash va bosib chiqarish bilan boshlaymiz. Ro'yxatdagi qiymatni popga aylantiramiz va ushbu qiymatni popped_motorcycle o'zgaruvchisida saqlang. Ro'yxatdan qiymat olib tashlanganligini ko'rsatish uchun ro'yxatni w ga bosib chiqaramiz. Keyin biz hali ham kirish huquqiga ega ekanligimizni tasdiqlash uchun x o'chirilgan qiymat qiymatini bosib chiqaramiz. "suzuki" qiymati oxiridan olib tashlangan ro'yxat va endi popped_motorcycle o'zgaruvchisida saqlanadi: ['honda', 'yamaha', 'suzuki'] ['honda', 'yamaha' ] Suzuki Ushbu pop () usuli qanday foydali bo'lishi mumkin? Mototsikllarni tasavvur qiling, ro'yxat biz egalik qilgan vaqtga qarab xronologik tartibda saqlanadi . Agar shunday bo'lsa, chop etish uchun pop () usulidan foydalanishimiz mumkin , biz sotib olgan so'nggi mototsikl: Chiqish biz so'nggi mototsikl haqida oddiy jumla tegishli: Menga tegishli so'nggi mototsikl Suzuki edi. Ro'yxatdagi har qanday pozitsiyadan narsalarni ochish Ro'yxatdagi elementni istalgan pozitsiyada o'chirish uchun aslida pop () dan foydalanishingiz mumkin Qavs ichida olib tashlamoqchi bo'lgan elementning indeksini o'z ichiga oladi. mototsikllar = ['honda', 'yamaha', 'suzuki'] first_owned = mototsikl.pop (0) print ('Menga tegishli bo'lgan birinchi mototsikl' + first_owned.title () + ''). Ro'yxatdagi birinchi mototsiklni raqamiga qo'yib, keyin biz boshlaymiz ushbu mototsikl haqida xabarni chop eting. Chiqish oddiy jumla Mening birinchi mototsiklimni tasvirlab beraman: Menga tegishli birinchi mototsikl Honda edi. Esingizda bo'lsa, har safar pop () dan foydalanganingizda, siz ishlaydigan element yo'q ro'yxatda uzoqroq saqlanadi. Agar del bayonotidan yoki pop () usulidan foydalanishni bilmasangiz, bu erda qaror qabul qilishning oddiy usuli: elementni ro'yxatdan o'chirmoqchi bo'lganingizda va ushbu elementdan hech qanday foydalanmang, del bayonotidan foydalaning; Agar siz foydalanmoqchi bo'lsangiz elementni olib tashlaganingizda, pop () usulidan foydalaning. Ob'ektni qiymat bo'yicha olib tashlash Ba'zan siz olib tashlamoqchi bo'lgan qiymat o'rnini bilmay qolasiz ro'yxatdan. Agar siz olib tashlamoqchi bo'lgan narsaning qiymatini bilsangiz, siz remove () usulidan foydalanishi mumkin. Masalan, 'ducati' qiymatini ro'yxatidan olib tashlamoqchimiz deylik mototsikllar. mototsikllar = ['honda', 'yamaha', 'suzuki', 'ducati'] bosma (mototsikllar) u motorcycles.remove ('ducati') bosma (mototsikllar) U-dagi kod Python-ga 'ducati' qaerda paydo bo'lishini aniqlashni aytadi ushbu elementni ro'yxatlang va olib tashlang: ['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki'] Mavjud qiymat bilan ishlash uchun siz olib tashlash () usulidan foydalanishingiz mumkin ro'yxatdan o'chirildi. Keling, 'ducati' qiymatini olib tashlaymiz va sababini nashr etamiz uni ro'yxatdan olib tashlash: u mototsikllari = ['honda', 'yamaha', 'suzuki', 'ducati'] bosma (mototsikllar) v too_expensive = 'ducati' w motorcycles.remove (juda arzon) bosma (mototsikllar) x print ("\ nA" + too_expensive.title () + "men uchun juda qimmat.") Ro'yxatni u da aniqlagandan so'ng, 'ducati' qiymatini o'zgaruvchida saqlaymiz too_expensive v deb nomlanadi. Keyin biz ushbu o'zgaruvchini Python-ga qaysi qiymatini aytib berish uchun ishlatamiz w dan ro'yxatdan o'chirish uchun. X da 'ducati' qiymati olib tashlandi ro'yxat, lekin hali ham o'zgaruvchida saqlanadi too_expensive, bizga bosib chiqarishga imkon beradi nima uchun mototsikllar ro'yxatidan "ducati" ni olib tashlaganimiz haqida bayonot: ['honda', 'yamaha', 'suzuki', 'ducati'] ['honda', 'yamaha', 'suzuki'] Ducati men uchun juda qimmat. N ote Remove () usuli faqat siz ko'rsatgan qiymatning birinchi paydo bo'lishini o'chiradi. Agar mavjud bo'lsa Agar qiymat ro'yxatda bir necha marta paydo bo'lishi ehtimoli bo'lsa, sizga pastadir ishlatishingiz kerak bo'ladi qiymatning barcha hodisalari o'chirilganligini aniqlang. Qanday qilishni bilasiz bu 7-bobda. O'zingiz sinab ko'ring Quyidagi mashqlar 2-bobga qaraganda biroz murakkabroq, ammo ular sizga ro'yxatlarni tavsiflangan barcha usullardan foydalanish imkoniyatini beradi. 3-4. Mehmonlar ro'yxati: Agar siz tirik yoki o'lgan biron kishini kechki ovqatga taklif qila olsangiz, kim taklif qilasizmi? Siz xohlagan kamida uchta kishini o'z ichiga olgan ro'yxatni tuzing kechki ovqatga taklif qilish. So'ngra har bir kishiga xabar yuborish uchun taklifnomangizni chop etish uchun o'zingizning ro'yxatingizdan foydalaning ularni kechki ovqatga. 3-5. Mehmonlar ro'yxatini o'zgartirish: Siz hozirgina mehmonlaringizdan biri buni qila olmasligini eshitdingiz kechki ovqat, shuning uchun siz yangi taklifnomalar to'plamini yuborishingiz kerak. Siz o'ylashingiz kerak bo'ladi kimdir taklif qilsa. • Dasturingizni 3-4-mashqdan boshlang. Da bosma bayonotni qo'shing unga kira olmaydigan mehmonning ismini ko'rsatadigan dasturingiz oxiri. • O'zingizning ro'yxatingizni o'zgartiring, unga kira olmaydigan mehmon nomini o'zgartiring siz taklif qilayotgan yangi odamning ismi. • Ikkinchi taklifnoma xabarlarini chop eting, har bir kishi uchun bitta sizning ro'yxatingizda. 3-6. Ko'proq mehmonlar: Siz kattaroq kechki ovqat stolini topdingiz, endi ko'proq joy qoldi mavjud Kechki ovqatga taklif qilish uchun yana uchta mehmonni o'ylab ko'ring. • Dasturingizni 3-4 yoki 3-5 mashqlardan boshlang. Bosma qo'shing dasturingizni oxirigacha odamlarni topganingizni bildiruvchi bayonot kattaroq dasturxon. • Ro'yxat boshiga bitta yangi mehmon qo'shish uchun insert () dan foydalaning. • Sizning ro'yxatingizning o'rtasiga bitta yangi mehmon qo'shish uchun insert () dan foydalaning. • Ro'yxat oxiriga bitta yangi mehmon qo'shish uchun append () dan foydalaning. • Sizning ro'yxatingizdagi har bir kishi uchun bitta yangi taklifnoma xabarlarini chop eting. 3-7. Kichik mehmonlar ro'yxati: Siz shunchaki yangi kechki ovqat stolingiz bo'lmaydi, deb bildingiz kechki ovqatga o'z vaqtida etib boring va sizda faqat ikkita mehmon uchun joy bor. • Dasturni 3-6 mashqdan boshlang. A ni bosib chiqaradigan yangi qator qo'shing faqat ikki kishini kechki ovqatga taklif qilishingiz mumkinligi haqidagi xabar. • Mehmonlarni ro'yxatidan birma-bir ikkitagacha olib tashlash uchun pop () dan foydalaning ismlar sizning ro'yxatingizda qoladi. Har safar ro'yxatingizdan nom chiqarganingizda, bosib chiqaring ushbu odamga taklif qila olmaganingizdan afsuslanishingizni bildiradigan xabar ularni kechki ovqatga. • Ro'yxatdagi har ikki kishining har biriga ularga ruxsat berish uchun xabarni chop eting ular hali ham taklif qilinishini biling. • So'nggi ikkita ismni ro'yxatidan o'chirish uchun del dan foydalaning, shunda siz bo'sh bo'lasiz ro'yxat. Oxirida bo'sh ro'yxat borligiga ishonch hosil qilish uchun ro'yxatingizni chop eting sizning dasturingiz. Ro'yxatni tashkil qilish Ko'pincha sizning ro'yxatlaringiz oldindan aytib bo'lmaydigan tartibda tuziladi, chunki siz buni qila olmaysiz har doim foydalanuvchilaringiz ma'lumotlarini taqdim qilish tartibini boshqaring. Garchi aksariyat hollarda bu muqarrar, siz tez-tez taqdim etishni xohlaysiz sizning ma'lumotlaringiz ma'lum bir tartibda. Ba'zan siz saqlamoqchi bo'lasiz ro'yxatingizning asl tartibi va boshqa paytlarda siz tartib tartibini o'zgartirishni xohlaysiz. Python ro'yxatlaringizni tartibga solishning bir qancha usullarini taqdim etadi, vaziyatga qarab. Sort () usuli bilan ro'yxatni doimiy ravishda saralash Pythonning sort () usuli ro'yxatni saralashni nisbatan osonlashtiradi. Bizni tasavvur qiling mashinalar ro'yxatiga ega va ularni saqlash uchun ro'yxat tartibini o'zgartirmoqchi alifbo bo'yicha. Vazifani sodda qilish uchun, barcha qiymatlar ichida deb taxmin qilaylik ro'yxat kichik harflar bilan yozilgan. cars.py cars = ['bmw', 'audi', 'toyota', 'subaru'] u cars.sort () bosib chiqarish (mashinalar) U da ko'rsatilgan sort () usuli ro'yxatning tartibini doimiy ravishda o'zgartiradi. Hozir mashinalar alifbo tartibida, biz hech qachon qaytara olmaymiz asl buyurtma: ['audi', 'bmw', 'subaru', 'toyota'] Bundan tashqari, ushbu ro'yxatni teskari alifbo tartibida argument teskari = sort () usuli uchun to'g'ri. Quyidagi misol turlarini ajratadi teskari alifbo tartibidagi avtomobillar ro'yxati: avtomobillar = ['bmw', 'audi', 'toyota', 'subaru'] cars.sort (teskari = True) bosib chiqarish (mashinalar) Shunga qaramay, ro'yxatning tartibi doimiy ravishda o'zgartiriladi: ['toyota', 'subaru', 'bmw', 'audi'] Sorted () funktsiyasi bilan ro'yxatni vaqtincha saralash Ro'yxatning asl tartibini saqlab qolish uchun, lekin uni tartiblangan tartibda taqdim etish uchun siz sorted () funktsiyasidan foydalanishi mumkin. Sorted () funktsiyasi sizning ro'yxatingizni ko'rsatishga imkon beradi ma'lum bir tartibda, lekin ro'yxatning haqiqiy tartibiga ta'sir qilmaydi. Keling, ushbu funktsiyani avtomobillar ro'yxatida sinab ko'raylik. avtomobillar = ['bmw', 'audi', 'toyota', 'subaru'] u chop etish ("Mana asl ro'yxat:") bosib chiqarish (mashinalar) v chop etish ("\ nBu erda tartiblangan ro'yxat:") chop etish (saralangan (mashinalar)) w print ("\ nMana yana asl ro'yxat:") bosib chiqarish (mashinalar) Dastlab biz ro'yxatni u tartibida asl tartibida, so'ngra alifbo tartibida chop etamiz buyurtma v. Ro'yxat yangi tartibda ko'rsatilgandan so'ng, biz ro'yxat ekanligini ko'rsatamiz hali ham w da asl tartibda saqlanadi. Mana asl ro'yxat: ['bmw', 'audi', 'toyota', 'subaru'] Mana saralangan ro'yxat: ['audi', 'bmw', 'subaru', 'toyota'] x Mana yana asl ro'yxat: ['bmw', 'audi', 'toyota', 'subaru'] E'tibor bering, ro'yxat hali tartiblangan () dan keyin asl tartibda x da mavjud. funktsiyasi ishlatilgan. Sorted () funktsiyasi teskari = True ni ham qabul qilishi mumkin ro'yxatni teskari alifbo tartibida ko'rsatishni istasangiz, argument. 49-ro'yxatlar bilan tanishtirish Ro'yxatni alfavit bo'yicha saralash, agar barcha qiymatlar bo'lmasa, biroz murakkabroq bo'ladi kichik harf. Siz qaror qilganingizda katta harflarni talqin qilishning bir necha yo'li mavjud tartiblash tartibi va aniq buyurtmani ko'rsatish biz hal qilmoqchi bo'lganimizdan ko'ra murakkabroq bo'lishi mumkin bu vaqtda. Biroq, saralashga yondashuvlarning aksariyati to'g'ridan-to'g'ri siznikiga asoslanadi ushbu bo'limda bilib oldingiz. Ro'yxatni teskari tartibda chop etish Ro'yxatning asl tartibini o'zgartirish uchun teskari () usulidan foydalanishingiz mumkin. Agar dastlab biz avtoulovlar ro'yxatini xronologik tartibda saqlagan bo'lsak ularga egalik qilganimizda, biz ro'yxatni osongina teskari xronologik tartibda o'zgartirishi mumkin edi: avtomobillar = ['bmw', 'audi', 'toyota', 'subaru'] bosib chiqarish (mashinalar) avtomobillar.reverse () bosib chiqarish (mashinalar) Teskari () alfavit bo'yicha orqaga qarab saralanmasligiga e'tibor bering; bu shunchaki ro'yxatning tartibini o'zgartiradi: ['bmw', 'audi', 'toyota', 'subaru'] ['subaru', 'toyota', 'audi', 'bmw'] Reverse () usuli ro'yxat tartibini doimiy ravishda o'zgartiradi, lekin siz teskari () ni qo'llash orqali istalgan vaqtda asl buyurtmaga qaytishi mumkin ikkinchi marta ro'yxat. Ro'yxat uzunligini topish Len () funktsiyasi yordamida ro'yxatning uzunligini tezda topishingiz mumkin. Ro'yxat ushbu misolda to'rtta element mavjud, shuning uchun uning uzunligi 4 ga teng: >>> mashinalar = ['bmw', 'audi', 'toyota', 'subaru'] >>> len (avtomobillar) 4 Chet elliklar sonini aniqlash kerak bo'lganda sizga len () foydali bo'ladi hali ham o'yinda urib tushirilishi kerak bo'lgan ma'lumotlar miqdorini aniqlang vizualizatsiyani boshqarish yoki boshqa vazifalar qatorida veb-saytda ro'yxatdan o'tgan foydalanuvchilar sonini aniqlash kerak. Nyte Python ro'yxatdagi elementlarni bittadan boshlanadi deb hisoblaydi, shuning uchun ro'yxat uzunligini aniqlashda off by-one xatolariga yo'l qo'ymaslik kerak. O'zingiz sinab ko'ring 3-8. Dunyoni ko'rish: dunyodagi kamida beshta joy haqida o'ylang tashrif. • Joylarni ro'yxatda saqlang. Ro'yxat alifbo tartibida emasligiga ishonch hosil qiling. • Ro'yxatingizni asl tartibida chop eting. Ro'yxatni chiroyli bosib chiqarish haqida tashvishlanmang, uni faqat Python xom ro'yxati sifatida chop eting. • ro'yxatini alfavit tartibida o'zgartirmasdan chop etish uchun sorted () dan foydalaning haqiqiy ro'yxat. • Ro'yxatingiz hali ham asl tartibida ekanligini chop etish orqali ko'rsating. • ro'yxatingizni teskari alifbo tartibida asl ro'yxat tartibini o'zgartirmasdan chop etish uchun sorted () dan foydalaning. • Qayta chop etish orqali ro'yxatingiz hali ham asl tartibida ekanligini ko'rsating. • Ro'yxat tartibini o'zgartirish uchun teskari () dan foydalaning. Uning ekanligini ko'rsatish uchun ro'yxatni chop eting tartib o'zgardi. • Ro'yxat tartibini yana o'zgartirish uchun teskari () dan foydalaning. Ko'rsatish uchun ro'yxatni chop eting u asl tartibiga qaytdi. • Ro'yxatingizni alfavit tartibida saqlash uchun uni o'zgartirish uchun () foydalaning. Chop etish uning tartibi o'zgartirilganligini ko'rsatadigan ro'yxat. • Ro'yxatingizni teskari alifbo tartibida saqlash uchun sort () dan foydalaning. Tartibi o'zgarganligini ko'rsatish uchun ro'yxatni chop eting. 3-9. Kechki ovqat mehmonlari: 3-4-mashq dasturlaridan biri bilan ishlash 3-7 gacha (46-bet), raqamni ko'rsatadigan xabarni chop etish uchun len () dan foydalaning Siz kechki ovqatga taklif qilayotgan odamlar. 3-10. Har qanday funktsiya: ro'yxatda saqlashingiz mumkin bo'lgan narsani o'ylab ko'ring. Masalan, siz tog'lar, daryolar, mamlakatlar, shaharlar, tillar yoki xohlagan boshqa narsalar ro'yxatini tuzishingiz mumkin. Ushbu elementlarni o'z ichiga olgan ro'yxat tuzadigan dastur yozing va keyin ushbu bobda kiritilgan har bir funktsiyadan kamida bir marta foydalanadi. Ro'yxatlar bilan ishlashda indeks xatolaridan saqlanish Xatolarning bir turi odatda ro'yxatlar bilan ishlashni ko'rish uchun odatiy holdir birinchi marta. Aytaylik, sizda uchta elementdan iborat ro'yxat bor va siz buni so'rasangiz to'rtinchi element: mototsikllar = ['honda', 'yamaha', 'suzuki'] chop etish (mototsikllar [3]) ] Ushbu misol indeks xatosiga olib keladi: Traceback (so'nggi qo'ng'iroq oxirgi): "Motorcycles.py" fayl, 3-qator, O'zingiz sinab ko'ring 3-11. Qasddan xato: Agar sizda biron birida indeks xatoligi bo'lmasa dasturlarni hali ham amalga oshirishga harakat qiling. Indeksda xatolik yuzaga kelishi uchun programmalaringizdan biridagi indeksni o'zgartiring. Dasturni yopishdan oldin xatoni tuzatganingizga ishonch hosil qiling. Xulosa Ushbu bobda siz ro'yxatlar nima ekanligini va ro'yxatdagi alohida narsalar bilan qanday ishlashni bilib oldingiz. Siz ro'yxatni qanday belgilashni va qanday qo'shishni va qanday qilishni bilib oldingiz elementlarni olib tashlash. Siz ro'yxatlarni doimiy va vaqtincha saralashni o'rgandingiz ko'rsatish maqsadlari. Shuningdek, siz ro'yxatning uzunligini va qanday topishni bilib oldingiz ro'yxatlar bilan ishlashda indeks xatolariga yo'l qo'ymaslik uchun. 4-bobda ro'yxatdagi narsalar bilan qanday samarali ishlashni bilib olasiz. Bir nechta kod satrlari yordamida ro'yxatdagi har bir elementni ko'rib chiqish orqali sizning ro'yxatingizda minglab yoki bo'lsa ham samarali ishlashga qodir bo'lasiz millionlab buyumlar. 4 Mening ro'yxatlarim bilan ishlash 3-bobda siz a-ni qanday yaratishni bilib oldingiz oddiy ro'yxat, va siz ishlashni o'rgandingiz ro'yxatdagi alohida elementlar. Ushbu bo'limda siz qanday qilib butun bir qismini aylanib o'tishni o'rganasiz qanday bo'lishidan qat'i nazar, faqat bir nechta satr kodidan foydalangan holda ro'yxat ro'yxat uzoq. Looping sizga xuddi shu harakatni yoki bir qator harakatlarni amalga oshirishga imkon beradi, ro'yxatdagi har bir element bilan. Natijada siz samarali ishlashga qodir bo'lasiz har qanday uzunlikdagi ro'yxatlar, shu jumladan minglab va hatto millionlab buyumlar ro'yxati. Butun ro'yxatni ko'rib chiqish Siz ko'pincha ro'yxatdagi barcha yozuvlarni bir xil bajarishni xohlaysiz har bir element bilan vazifa. Masalan, o'yinda siz har birini ko'chirishni xohlashingiz mumkin ekrandagi element bir xil miqdorda yoki siz raqamlar ro'yxatida har bir elementda bir xil statistik operatsiyani bajarishni xohlashi mumkin. Yoki Ehtimol siz har bir sarlavhani veb-saytdagi maqolalar ro'yxatidan chiqarishni xohlaysiz. Agar ro'yxatdagi har bir element bilan bir xil amalni bajarishni xohlasangiz, buni qilishingiz mumkin loop uchun Python-dan foydalaning Aytaylik, bizda sehrgarlarning ismlari ro'yxati bor va biz chop etmoqchimiz ro'yxatdagi har bir ism. Biz buni har bir ismni alohida-alohida ro'yxat, ammo bu yondashuv bir nechta muammolarni keltirib chiqarishi mumkin. Biri uchun, buni ismlarning uzun ro'yxati bilan takrorlash mumkin. Bundan tashqari, biz kerak edi har safar ro'yxat uzunligi o'zgarganda kodimizni o'zgartiring. For for loop ikkalasidan ham qochadi Python-ga ushbu muammolarni ichki boshqarishga ruxsat berish orqali ushbu muammolardan. Sehrgarlar ro'yxatidagi har bir ismni chop etish uchun for loopidan foydalanamiz: sehrgarlar.py u sehrgarlar = ['alice', 'david', 'carolina'] v sehrgarlar uchun sehrgar uchun: w bosma (sehrgar) Biz 3-bobda bo'lgani kabi, u da ro'yxatni belgilash bilan boshlaymiz. for loopini aniqlaymiz. Ushbu satr Python-ga ro'yxatdan nom chiqarishi kerakligini aytadi sehrgarlar va uni o'zgaruvchan sehrgarda saqlang. Biz Python-ga chop etishni aytamiz shunchaki sehrgarda saqlangan ism. Keyin Python v satrlarini takrorlaydi va w, ro'yxatdagi har bir ism uchun bir marta. Ushbu kodni quyidagicha o'qishga yordam berishi mumkin "Sehrgarlar ro'yxatidagi har bir sehrgar uchun sehrgarning ismini chop eting." Chiqish ro'yxatdagi har bir ismning oddiy bosma nusxasi: alice Devid karolina Looping-ga yaqinroq qarash Loop tushunchasi muhimdir, chunki u eng keng tarqalgan narsalardan biridir takrorlanadigan vazifalarni kompyuter avtomatlashtirish usullari. Masalan, oddiy tsiklda biz magicians.py-da ishlatganimiz kabi, Python dastlab tsiklning birinchi satrini o'qiydi: sehrgarlar uchun sehrgarlar uchun: Ushbu qator Python-ga sehrgarlar ro'yxatidan birinchi qiymatni olishni buyuradi va uni o'zgaruvchan sehrgarda saqlang. Ushbu birinchi qiymat "alice" dir. Python keyin keyingi qatorni o'qiydi: chop etish (sehrgar) Python sehrgarning hozirgi qiymatini nashr etadi, bu hali ham "alice". Chunki ro'yxat ko'proq qiymatlarni o'z ichiga oladi, Python tsiklning birinchi qatoriga qaytadi: sehrgarlar uchun sehrgarlar uchun: Python ro'yxatdagi "david" nomini oladi va shu qiymatni saqlaydi sehrgarda. Keyin Python qatorni bajaradi: chop etish (sehrgar) Python sehrgarning hozirgi qiymatini yana bosib chiqaradi, bu endi "david". Python butun tsiklni yana bir bor ro'yxatdagi oxirgi qiymat bilan takrorlaydi, "karolina". Ro'yxatda boshqa qiymatlar yo'qligi sababli, Python-ga o'tadi dasturning keyingi qatori. Bu holda for loopidan keyin hech narsa kelmaydi, demak dastur shunchaki tugaydi. Birinchi marta ko'chadan foydalanganda, to'plamini yodda tuting qadamlar ro'yxatdagi har bir element uchun, bir nechta elementlardan qat'i nazar, bir marta takrorlanadi ro'yxatda. Agar sizning ro'yxatingizda million narsa bo'lsa, Python ularni takrorlaydi qadamlar million marta va odatda juda tez. O'zingiz tanlagan ilmoqlar uchun o'zingizning yozishingizni ham unutmang har bir qiymatini o'zida saqlaydigan vaqtinchalik o'zgaruvchiga kerakli har qanday nom ro'yxat. Biroq, a ni ifodalovchi mazmunli ismni tanlash foydalidir ro'yxatdagi bitta element. Masalan, for loopni boshlashning yaxshi usuli mushuklar ro'yxati, itlar ro'yxati va narsalarning umumiy ro'yxati: mushuklarda mushuk uchun: itlardagi it uchun: list_of_items elementi uchun: Ushbu nomlash konventsiyalari amalga oshirilayotgan harakatlarga rioya qilishingizga yordam beradi for loopidagi har bir elementda. Yagona va ko'plikdagi ismlardan foydalanish yordam berishi mumkin kod bo'limi bitta element bilan ishlayotganligini aniqlaysiz ro'yxat yoki butun ro'yxat. Loop ichida ko'proq ish qilish For loopidagi har bir element bilan har qanday narsani qilishingiz mumkin. Keling, barpo qilaylik oldingi sehr har bir sehrgarga xabarni chop etish, ularga aytib berish ular ajoyib hiyla-nayrangni amalga oshirdilar: sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: u print (magician.title () + ", bu ajoyib hiyla edi!") Ushbu kodning yagona farqi u erda biz xabar yozamiz har bir sehrgar, bu sehrgarning ismidan boshlanadi. Birinchi marta sehrgarning qiymati "alice" dir, shuning uchun Python birinchi xabarni boshlaydi "Elis" nomi bilan. Xabar orqali ikkinchi marta boshlanadi "Devid" va uchinchi marotaba xabar "Karolina" bilan boshlanadi. Chiqish ro'yxatdagi har bir sehrgar uchun moslashtirilgan xabarni ko'rsatadi: Elis, bu ajoyib hiyla edi! Dovud, bu ajoyib hiyla edi! Karolina, bu ajoyib hiyla edi! Shuningdek, for loopida siz xohlagancha kod satrlarini yozishingiz mumkin. Sehrgarlar uchun sehrgarlar qatoridan keyin har bir chiziq chizig'i tsiklda ko'rib chiqiladi va har bir chiziq har biriga bir marta baja ro'yxatdagi qiymat. Shuning uchun, siz xohlagancha ish qilishingiz mumkin ro'yxatdagi har bir qiymat. Keling, har bir sehrgarga biz ekanligimizni aytib, xabarimizga ikkinchi qatorni qo'shaylik ularning keyingi hiyla-nayranglarini kutmoqdamiz: sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: print (magician.title () + ", bu ajoyib hiyla edi!") u print ("Keyingi hiyla-nayrangingizni ko'rishni kuta olmayapman", + magician.title () + ". \ n") Ikkala bosma bayonotni ham ichkariga kiritganimiz sababli, har bir satr ro'yxatdagi har bir sehrgar uchun bir martadan chiqariladi. Ikkinchisida yangi qator ("\ n") print operator u ko'chadan o'tganidan keyin bo'sh satr qo'shadi. Bu ro'yxatdagi har bir kishi uchun aniq guruhlangan xabarlar to'plamini yaratadi: Elis, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutaman, Elis. Dovud, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Devid. Karolina, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Karolina. Siz o'zingizning ilmoqlaringiz uchun qancha chiziqlardan foydalanishingiz mumkin. Amalda siz buni qilasiz ko'pincha har bir element bilan bir qatorda turli xil operatsiyalarni bajarish foydali bo'ladi for loopidan foydalanganda ro'yxat. Loop uchun biron bir narsa qilish For loop bajarilishini tugatgandan so'ng nima bo'ladi? Odatda, siz xohlaysiz chiqish blokini sarhisob qilish yoki dasturingiz bajarishi kerak bo'lgan boshqa ishlarga o'tish. For loopidan keyin har qanday indentatsiyalanmagan kod satrlari bajariladi bir marta takrorlanmasdan. Keling, sehrgarlar guruhiga rahmat yozamiz umuman olganda, ularga ajoyib spektakl namoyish etganliklari uchun minnatdorchilik bildiramiz. Buni ko'rsatish uchun barcha shaxsiy xabarlar chop etilgandan so'ng guruh xabari, biz minnatdorchilik xabarini for loopdan keyin indentatsiyasiz joylashtiring: sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: print (magician.title () + ", bu ajoyib hiyla edi!") print ("Keyingi hiyla-nayrangingizni ko'rishni kuta olmayapman", + magician.title () + ". \ n") u print ("Rahmat, barchangiz. Bu ajoyib sehrli shou bo'ldi!") Dastlabki ikkita bosma bayonot har bir sehrgar uchun bir marta takrorlanadi ilgari ko'rganingizdek, ro'yxat. Biroq, u satrida chiziq yo'q, u faqat bir marta bosiladi: Elis, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutaman, Elis. Dovud, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Devid. Karolina, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Karolina. Barchangizga rahmat. Bu ajoyib sehrli shou edi! For loop yordamida ma'lumotlarni qayta ishlayotganingizda, bu a butun ma'lumotlar bo'yicha bajarilgan operatsiyani sarhisob qilishning yaxshi usuli o'rnatilgan. Masalan, o'yinni ishga tushirish uchun boshlash uchun for loopdan foydalanishingiz mumkin belgilar ro'yxati va har bir belgini ekranda aks ettirish orqali. Keyin ushbu ko'chadan keyin a ko'rsatadigan blokirovka yozishingiz mumkin Barcha belgilar ekranga tortilgandan so'ng "Hozir o'ynash" tugmasi. Chiziqdagi xatolardan saqlanish Python bitta chiziq satrining qachon ulanganligini aniqlash uchun indentatsiyadan foydalanadi yuqoridagi chiziq. Oldingi misollarda xabarlarni bosib chiqargan satrlar individual sehrgarlar for loopning bir qismi edi, chunki ular chuqurchaga tushgan edi. Pythonning indentatsiyadan foydalanishi kodni o'qishni juda osonlashtiradi. Asosan, u foydalanadi bo'sh joy sizni aniq formatlangan kodni aniq ingl tuzilishi. Uzunroq Python dasturlarida siz blokirovka qilingan kod bloklarini ko'rasiz bir nechta turli darajalarda. Ushbu chuqurlik darajalari sizga umumiy ma'lumot olishga yordam beradi umumiy dasturni tashkil etish hissi. To'g'ri kirishga asoslangan kodni yozishni boshlaganingizda, shunday qilasiz bir nechta keng tarqalgan chuqurlikdagi xatolarni kuzatib borish kerak. Masalan, odamlar ba'zan indentatsiya yoki unutishni hojat qoldirmaydigan indent kod bloklari Chiqib ketishi kerak bo'lgan bloklarni indentatsiya qilish. Ushbu xatolarning misollarini ko'rish endi kelajakda ularni oldini olishga yordam beradi va ular buni tuzatganda o'z dasturlarida paydo bo'ladi. Keling, ba'zi bir keng tarqalgan chuqurlikdagi xatolarni ko'rib chiqamiz. Indentatsiyani unutish Har doim ko'chadan formadan keyin qatorni kiriting. Agar unutgan bo'lsangiz, Python sizga eslatadi: sehrgarlar.py sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: siz chop U-dagi chop etish bayonoti indentatsiya qilinishi kerak, ammo unday emas. Python qachon girintili blokni kutadi va topolmaydi, qaysi qatorni bilib olishga imkon beradi bilan bog'liq muammo bor edi. "Magicians.py" fayl, 3-qator chop etish (sehrgar) ^ IndentationError: kiruvchi blok kutilmoqda Odatda bu kabi chuqurlikdagi xatolarni indenting yordamida hal qilishingiz mumkin for dan keyin darhol chiziq yoki chiziqlar. Qo'shimcha qatorlarni indent qilishni unutish Ba'zan sizning halqangiz hech qanday xatosiz ishlaydi, ammo ishlab chiqarmaydi kutilgan natija. Bu siz bir nechta vazifalarni bajarishga urinayotganda yuz berishi mumkin pastadir va uning ba'zi satrlarini indent qilishni unutasiz. Masalan, ikkinchisini indent qilishni unutganimizda shunday bo'ladi har bir sehrgarni biz kelgusi kunini kutayotganimizni aytadigan ko'chadan chiziq hiyla: sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: print (magician.title () + ", bu ajoyib hiyla edi!") u print ("Keyingi hiyla-nayrangingizni ko'rishni kuta olmayapman", + magician.title () + ". \ n") $ U $ da chop etish bayonoti ichkariga kirishi kerak, ammo chunki For bayonotidan keyin Python kamida bitta chiziqli chiziqni topadi, unday emas xato haqida xabar bering. Natijada, birinchi bosma bayonot bir marta bajariladi ro'yxatdagi har bir ism, chunki u indentlangan. Ikkinchi bosma bayonot indentatsiyalanmagan, shuning uchun u loop ishga tushirilgandan keyingina bajariladi. Sehrgarning yakuniy qiymati "karolina" bo'lgani uchun u yagona kim "keyingi hiyla-nayrangni kutmoqda" xabarini oladi: Elis, bu ajoyib hiyla edi! Dovud, bu ajoyib hiyla edi! Karolina, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Karolina. Bu mantiqiy xato. Sintaksis haqiqiy Python kodidir, lekin kod ishlaydi kerakli natijani bermang, chunki uning mantig'ida muammo yuzaga keladi. Agar Siz ro'yxatdagi har bir element uchun bir marta takrorlangan ma'lum bir harakatni ko'rishni kuting va u faqat bir marta bajarilgan bo'lsa, chiziqni oddiygina chizish kerakmi yoki yo'qligini aniqlang chiziqlar guruhi. Keraksiz indentatsiya Agar siz tasodifan chiziq kiritishingiz shart bo'lmagan chiziqni kesib qo'ysangiz, Python sizga kutilmagan indent haqida xabar beradi: hello_world.py message = "Salom Python dunyosi!" siz chop etasiz (xabar) Bosma bayonotni u nuqtasida indent qilishimiz shart emas, chunki bunday emas yuqoridagi satrga tegishli; shuning uchun Python bu xato haqida xabar beradi: Fayl "hello_world.py", 2-satr chop etish (xabar) ^ IndentationError: kutilmagan indent Faqatgina vaqtni belgilash orqali siz kutilmagan chuqurlikdagi xatolardan qochishingiz mumkin buning uchun aniq bir sababingiz bor. Siz shu bilan yozayotgan dasturlarda nuqta, siz takrorlashni xohlagan harakatlaringiz qatorida indentatsiya qilishingiz kerak for loopidagi har bir element uchun. Loopdan keyin keraksiz indenting Agar siz tsikl tugagandan so'ng ishlashi kerak bo'lgan kodni tasodifan o'chirib qo'ysangiz, demak kod ro'yxatdagi har bir element uchun bir marta takrorlanadi. Ba'zan bu so'raydi Xato haqida xabar berish uchun Python, lekin ko'pincha siz oddiy mantiqiy xatoga duch kelasiz. Masalan, keling, tasodifan indent qilishda nima sodir bo'lishini ko'rib chiqaylik Sehrgarlarga yaxshi namoyish qilgani uchun guruh sifatida minnatdorchilik bildirgan qator: sehrgarlar = ['alice', 'david', 'carolina'] sehrgarlar uchun sehrgarlar uchun: print (magician.title () + ", bu ajoyib hiyla edi!") print ("Keyingi hiyla-nayrangingizni ko'rishni kuta olmayapman", + magician.title () + ". \ n") u print ("Barchangizga rahmat, bu ajoyib sehrli shou bo'ldi!") U chizig'i ichkariga kirganligi sababli, har bir kishi uchun bir marta bosiladi v-da ko'rishingiz mumkin bo'lgan ro'yxat: Elis, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutaman, Elis. v hammaga rahmat, bu ajoyib sehrli shou bo'ldi! Dovud, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Devid. v hammaga rahmat, bu ajoyib sehrli shou bo'ldi! Karolina, bu ajoyib hiyla edi! Keyingi hiyla-nayrangingizni ko'rish uchun sabrsizlik bilan kutib turaman, Karolina. v hammaga rahmat, bu ajoyib sehrli shou bo'ldi!Bu yana bir mantiqiy xato, xuddi "Indentatsiyani unutish." Qo'shimcha chiziqlar "sahifasining 58-betida. Chunki Python sizning kimligingizni bilmaydi sizning kodingiz bilan bajarishga harakat qilsangiz, unda yozilgan barcha kodlar ishlaydi haqiqiy sintaksis. Agar harakat bajarilishi kerak bo'lganida ko'p marta takrorlangan bo'lsa faqat bir marta, buning uchun kodni bekor qilish kerakligini aniqlang harakat. Yo'g'on ichakni unutish So'z oxiridagi yo'g'on ichak Python-ga keyingisini izohlashini aytadi tsiklning boshlanishi sifatida chiziq. sehrgarlar = ['alice', 'david', 'carolina'] u sehrgarlarda sehrgar uchun chop etish (sehrgar) Agar tasodifan yo'g'on ichakni unutib qo'ysangiz, u da ko'rsatilgandek, sintaksisga ega bo'lasiz xato, chunki Python nima qilmoqchi ekaningizni bilmaydi. Garchi buni tuzatish oson, uni topish har doim ham oson emas. Siz bo'lar edingiz dasturchilarning bu kabi bitta xarakterli xatolarni qidirish uchun sarflagan vaqtidan hayratlanaman. Bunday xatolarni topish qiyin, chunki biz tez-tez faqat biz ko'rishni kutayotgan narsani ko'ring. O'zingiz sinab ko'ring 4-1. Pitssalar: Sizning sevimli pitssangizning kamida uchta turini o'ylab ko'ring. Bularni saqlang ro'yxatdagi pizza nomlari va keyin har bir pizza nomini chop etish uchun for loopidan foydalaning. • Pitsa nomidan foydalanib gapni chop etish uchun for for loopingizni o'zgartiring faqat pizza nomini chop etish o'rniga. Har bir pizza uchun sizga kerak Menda peperoni yoqadigan kabi oddiy so'zlarni o'z ichiga olgan bitta chiqish satri bor pizza. • Dasturingiz oxirida for for (tsikli) tashqarisida ko'rsatilgan satr qo'shing siz pitsani qanchalik yaxshi ko'rasiz. Chiqish uch yoki undan ortiq qatordan iborat bo'lishi kerak sizga yoqadigan pizza turlari va undan keyin qo'shimcha jumla haqida Men pitssani juda yaxshi ko'raman! 4-2. Hayvonlar: umumiy xarakterga ega bo'lgan kamida uch xil hayvonni o'ylab ko'ring. Ushbu hayvonlarning nomlarini ro'yxatda saqlang va keyin for loop dan foydalaning har bir hayvonning nomini chop eting. • Har bir hayvon haqida bayonot chop etish uchun dasturingizni o'zgartiring, masalan It ajoyib chorva molini yasaydi. • Dasturingizning oxiriga ushbu hayvonlarning tarkibida bo'lgan qatorni qo'shing umumiy. Siz ushbu hayvonlardan istalgani kabi jumla chop etishingiz mumkin ajoyib uy hayvonini yarating! Raqamli ro'yxatlar tuzish Raqamlar to'plamini saqlash uchun ko'plab sabablar mavjud. Masalan, sizga kerak bo'ladi o'yindagi har bir belgi pozitsiyasini kuzatib boring va xohlashingiz mumkin futbolchining yuqori ko'rsatkichlarini ham kuzatib borish. Ma'lumotlarni vizualizatsiya qilishda siz buni qilasiz deyarli har doim raqamlar to'plamlari bilan ishlaydi, masalan, harorat, masofa, populyatsiya kattaligi yoki boshqa kengliklar qatorida kenglik va uzunlik qiymatlari raqamli to'plamlar. Ro'yxatlar raqamlar to'plamini saqlash uchun juda mos keladi va Python raqamlar ro'yxati bilan samarali ishlashga yordam beradigan ko'plab vositalarni taqdim etadi. Bir marta siz ushbu vositalardan qanday qilib samarali foydalanishni tushunib oling, sizning kodingiz yaxshi ishlaydi ro'yxatlaringizda millionlab narsalar mavjud bo'lganda. () Funktsiyasidan foydalanish Pythonning qator () funktsiyasi raqamlar seriyasini yaratishni osonlashtiradi. Masalan, qatorlar sonini chop etish uchun range () funktsiyasidan foydalanishingiz mumkin shunga o'xshash: number.py (1,5) oralig'idagi qiymat uchun: chop etish (qiymat) Ushbu kod 1 dan 5 gacha bo'lgan raqamlarni bosib chiqarishi kerak bo'lsa-da, lekin 5 raqamini bosmaydi: 1 2018-04-02 121 2 3 4 Ushbu misolda () oralig'i faqat 1 dan 4 gacha bo'lgan raqamlarni chiqaradi dasturlashda tez-tez uchraydigan xatti-harakatlarning yana bir natijasi tillar. Range () funktsiyasi Pythonni birinchi bo'lib hisoblashni boshlaydi Siz bergan qiymat va u taqdim etgan ikkinchi qiymatga yetganda to'xtaydi. U ikkinchi qiymatda to'xtaganligi sababli, chiqishda hech qachon oxir bo'lmaydi qiymati, bu holda 5 bo'lishi mumkin edi. 1 dan 5 gacha bo'lgan raqamlarni chop etish uchun siz (1,6) oralig'idan foydalaning: (1,6) oralig'idagi qiymat uchun: chop etish (qiymat) Bu safar chiqish 1dan boshlanadi va 5 bilan tugaydi:Agar sizning mahsulotingiz siz foydalanayotganingizda kutganingizdan farq qilsa qator (), yakuniy qiymatingizni 1 ga sozlang. Raqamlar ro'yxatini tuzish uchun () oralig'idan foydalaning Agar siz raqamlar ro'yxatini tuzmoqchi bo'lsangiz, () oralig'idagi natijalarni o'zgartirishingiz mumkin list () funktsiyasi yordamida to'g'ridan-to'g'ri ro'yxatga. Listni () atrofiga o'ralganingizda range () funktsiyasiga qo'ng'iroq qiling, natijada raqamlar ro'yxati bo'ladi. Oldingi qismdagi misolda biz shunchaki bir qatorini bosib chiqarganmiz raqamlar. Biz bir xil raqamlar to'plamini ro'yxatga aylantirish uchun list () dan foydalanishimiz mumkin: raqamlar = ro'yxat (oraliq (1,6)) chop etish (raqamlar) Va bu natija: [1, 2, 3, 4, 5] Python-ga raqamlarni o'tkazib yuborishini aytish uchun biz qator () funktsiyasidan ham foydalanishimiz mumkin ma'lum bir oraliqda. Masalan, biz juft sonlarni qanday sanab o'tamiz 1 dan 10 gacha: even_numbers.py even_numbers = ro'yxat (qator (2,11,2)) chop etish (hatto_sanlar) Ushbu misolda range () funktsiyasi 2 va undan keyin qiymatdan boshlanadi ushbu qiymatga 2 qo'shiladi. U oxiriga yetguncha yoki o'tguncha takroriy 2 qo'shiladi qiymati, 11 va quyidagi natijani beradi: [2, 4, 6, 8, 10] () Diapazonidan foydalanib deyarli istalgan raqamlar to'plamini yaratishingiz mumkin funktsiya. Masalan, birinchi 10-lik ro'yxatini qanday tuzishingizni ko'rib chiqing kvadrat sonlar (ya'ni 1 dan 10 gacha bo'lgan har bir butun sonning kvadrati). Yilda Python, ikkita yulduzcha (**) eksponentlarni ifodalaydi. Siz qanday qilib qo'yishingiz mumkin ro'yxatdagi birinchi 10 kvadrat raqamlar: squares.py u kvadratchalar = [] v (1,11) oralig'idagi qiymat uchun: w kvadrat = qiymat ** 2 x kvadratchalar. (kvadrat) y bosma (kvadratchalar) Biz u da kvadratchalar deb nomlangan bo'sh ro'yxatdan boshlaymiz. V da biz Python-ga aytamiz oralig'i () funktsiyasi yordamida 1 dan 10 gacha bo'lgan har bir qiymat orqali aylana. Ichkarida pastadir, joriy qiymat ikkinchi kuchga ko'tariladi va ichida saqlanadi 62 Download 0.54 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling