1-sahifa 2-sahifa
7.4. IDLE-dan foydalanish
Download 363.98 Kb.
|
Python
- Bu sahifa navigatsiya:
- 58-sahifa 58
- 1: Python butun sonni yaratadi
- 3: Python yangi obekt bilan boglaydi va eski obektni buzadi
- 59-sahifa 7.4. IDLE-dan foydalanish 59
- 2-bosqich: Python satrli obekt yaratadi
- 60-sahifa 60
- 61-sahifa 7.6. Mashqlar 61 7.6. Mashqlar
- 62-sahifa 8 raqamlar
- 63-sahifa 8.1. Qoshimcha 63
- 8.1. Qoshimcha
- 65-sahifa 8.3. Kopaytirish 65 ESLATMA
- 66-sahifa 66
- 67-sahifa 8.5. Qolganlari 67
- 68-sahifa 68
- 69-sahifa 8.9. Xulosa 69 ESLATMA
- 8.7. Amallarni bajarish tartibi
- 8.8. Boshqa operatsiyalar
- 71-sahifa 9 qator
7.4. IDLE-dan foydalanish 57 7.4. IDLE-dan foydalanish Ushbu misolni IDLE-da sinab ko'rish yaxshi bo'lar edi (yoki ichida) integratsiyalashgan REPL tarjimoniga ega eng sevimli muharririmiz). IDLE REPL ni o'z ichiga olganligi sababli quyidagi kodni kiritishingiz mumkin. va to'g'ridan-to'g'ri REPLda tahlil qiling. Biroq, siz ham qilishingiz mumkin Kodni yozing, uni ishga tushiring va REPL-dan tahlil qiling. Sinab ko'rish uchun bu xususiyat, yangi faylni oching va unda quyidagilarni qo'shing kod:
name = "Matt" birinchi = ism yoshi = 1000 chop etish (id (yosh)) yosh = yosh + 1 chop etish (id (yosh)) ismlar = [] chop etish (id (ismlar)) names.append ("Fred") chop etish (id (ismlar)) Kodni iden.py nomli faylda saqlang . Faylni ishga tushiring. IDLE da: bu F5 tugmachasini bosishi kerak . To'rtta raqam REPL da aks etadi. Birinchi ikkitasi boshqacha bo'ladi; bu butun son ekanligini ko'rsatadi o'zgarmas. So'nggi ikki raqam bir xil. Bu bilan izohlanadi ismlar ro'yxatining o'zgarishiga qaramay, identifikator o'zgarmaydi . Umuman olganda, bu haqiqatan ham yangi narsa emas. Endi eng qiziq narsa: agar siz Dir () buyrug'ini REPL-ga kiritsangiz , u chiqadi o'zgaruvchilar ro'yxati. Siz ko'rasiz global o'zgaruvchilar iden.py Hozir mavjud. IDLE-dagi REPL barcha global o'zgaruvchilarga kirishni ta'minlaydi. Siz Siz ism va ismlarni qidirishingiz va hatto qo'ng'iroq qilish funktsiyalari yoki usullarini topishingiz mumkin dy - masalan, names.append ("Jorj") . Kodni hozirgina bajarilgan natijalarini ko'rib chiqish imkoniyatiga ega bo'lib, Siz kodni tezda tahlil qilishingiz va u bilan tajriba o'tkazishingiz mumkin. Tajribali Python dasturchilari ko'pincha kodni REPL-da yozadilar, unga joylashtiradilar faylga qaytadan ishga tushiring, yangi kodni REPL-ga yozing va davom eting shu tarzda kod yozing.
58 7-bob. Ob'ektlarning tafsilotlari O'zgarmas butun sonlar a = 1000 ga teng Jamoa 1000
Id: 2f3b Turi: butun son Kompyuter nima qiladi O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar a a = a + 1 1: Python butun sonni yaratadi 1000
Id: 2f3b Turi: butun son a
1001
Id: 2f3f Turi: butun son a = a + 1 1000
Id: 2f3b Turi: butun son a
1001
Id: 2f3f Turi: butun son Anjir. 7.2. Butun sonni o'zgartirishga urinish muqarrar natijalar beradi yangi butun sonni yaratish. Butun sonlar o'zgarmasdir va ularning qiymati qayta tiklanishi kerak
7.4. IDLE-dan foydalanish 59 O'zgarishi mumkin bo'lgan ro'yxat ismlar = [] [] Id: 4f3b Turi: Ro'yxat ismlar
1-bosqich: Python bo'sh ro'yxatni yaratadi names.append ("Fred") [] Id: 4f3b
Turi: Ro'yxat ismlar
2-bosqich: Python satrli ob'ekt yaratadi "Fred"
Id: 4f3f Turi: String names.append ("Fred") [] Id: 4f3b Turi: Ro'yxat ismlar
3-bosqich: Python qatorni qo'shadi mavjud ro'yxatga "Fred"
Id: 4f3f Turi: String Jamoa Kompyuter nima qiladi O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar O'zgaruvchan ob'ektlar
Elementlarni qo'shish va o'chirishda ro'yxat identifikatori o'zgarmaydi
60 7-bob. Ob'ektlarning tafsilotlari Anjir. 7.4. IDLE da REPLda kodni bajarish va natijalarni tahlil qilish. Agar siz IDLE-dan foydalanmasangiz, buni muharriringizda qanday qilishni bilib oling. 7.5. Xulosa Pythonda ob'ektlardan boshqa narsa yo'q. Ob'ektlar uchta xususiyatga ega: sstv: ❍ Type - ob'ekt uchun sinfni belgilaydi. ❍ Qiymat - ob'ekt tarkibidagi ma'lumotlar. Ikki ob'ektni tekshirish tenglik uchun ( == ), siz ularning qiymatlarini taqqoslaysiz. ❍ Identifikator - ob'ekt uchun noyob identifikator. Versiyada Da Python www.python.org identifikator aslida aniqlanadi noyob bo'lgan xotirada ob'ektni joylashtiradi qiymati. Siz identifikatsiya qilish uchun ikkita ob'ektni tekshirsangiz (bilan bo'ladi bayonot ), siz ularning identifikatorlar mos yoki yo'qligini tekshiring. Shuningdek, siz o'zgarishi mumkin bo'lgan ob'ektlar (ro'yxatlar kabi) mumkinligini bilib oldingiz o'zgarishi mumkin bo'lgan narsalarning qiymatini o'zgartirish (masalan, satrlar va ro'yxatlar) "joyida" o'zgartirilishi mumkin emas.
7.6. Mashqlar 61 7.6. Mashqlar 1. Suzuvchi nuqta soniga ishora qiluvchi o'zgaruvchini yarating nuqta. Buning identifikatorini, turini va qiymatini tahlil qiling raqamlar. O'zgaruvchini 20 ga oshirish orqali uni yangilang. Identifikatorni, turini va qiymatini aniqlang. Shaxsiyat o'zgarganmi? katormi? Qiymat o'zgarganmi? 2. Bo'sh ro'yxatga ishora qiluvchi o'zgaruvchini yarating. Pro- identifikator, ro'yxat turi va qiymatini tahlil qiling. Qo'shni ro'yxatdagi raqam 300. Yana, identifikatorni tahlil qiling, turi va qiymati. Identifikator o'zgarganmi? U o'zgarganmi? qiymati?
8 raqamlar Ushbu bo'limda Python-dagi operatsiyalar haqida so'z boradi. Python butun sonlarni (masalan, −1, 5 yoki 2000) va raqamlarni qo'llab-quvvatlaydi
0.333, 0.5 yoki −1000 234) kabi raqamlar; ular bajarishni osonlashtiradi sonli operatsiyalar. Dastlab Python qo'llab-quvvatladi qo'shish, ayirish, ko'paytirish, bo'lish, eksponentatsiya radiolari, qolganini hisoblash va boshqa ko'plab operatsiyalar! Boshqa tillardan farqli o'laroq, Python-da faqat ob'ektlar mavjud - bu raqamlarga tegishli. Integerlar int sinfiga tegishli : >>> turi (1) Suzuvchi nuqta raqamlari float sinfiga tegishli : >>> turi (2.0)
Butun sonli bo'lmagan raqamlarning aniqligi cheklangan. Foydalanuvchi shart uning hozirgi hisob-kitoblari uchun etarli yoki yo'qligini aniqlash uchun xotinlar. Ichida Python-ning suzuvchi nuqta raqamlarining ichki vakili ishlatiladi ikkilik vakillik (IEEE 754 uchun mos) suzuvchi nuqta raqamlari). Suzuvchi nuqtali raqamlar mavjud ma'lum bir aniqlik chegarasi, shuning uchun yaxlitlashda xato bo'lishi mumkin Niya. Aslida, ishlab chiqaruvchi har doim hisoblashni kutishi kerak yaxlitlash xatosi bilan amalga oshiriladi. (Agar sizga ko'proq kerak bo'lsa)
8.1. Qo'shimcha 63 yuqori aniqlik, o'nlik modul aniqroq bo'lsa-da, beradi va sekinroq amalga oshirish.) Oddiy misol yordamida taqdimotning to'g'riligini ko'rib chiqing. Nima bo'ldi Bir qarashda oddiy ayirish jarayonini bajarayotganda yurish kerakmi? >>> chop etish (1.01 - .99) 0.020000000000000018
Agar siz suzuvchi raqamlar va ularning sonlari haqida ko'proq bilmoqchi bo'lsangiz kompyuter xotirasiga joylashtirilsa, Vikipediya 1 batafsilroq ma'lumotga ega mavzu bo'yicha ma'lumot. 8.1. Qo'shimcha Python REPL oddiy kalkulyator sifatida ishlatilishi mumkin. Kimga ikkita butun sonni qo'shing, ifoda kiriting: >>> 2 + 6 8
Ushbu misolda natija o'zgaruvchi bilan bog'liq emas. Natijani chiqarish uchun, Buning terminalidagi oddiy hisoblash etarli bo'lishi mumkin. Agar to'satdan sizga natija kerak bo'ladi, Python tarjimoni saqlaydi _ nomli o'zgaruvchiga oxirgi natija : >>> 2 + 6 8 >>> natija = _ >>> natija 8 Ikkita butun sonni qo'shganda butun son olinadi. O'xshash Shu tarzda ikkita suzuvchi nuqta raqamini qo'shish mumkin: >>> .4 + .01 0.41000000000000003 1 https://en.wikipedia.org/wiki/Float_Number
64 8-bob. Raqamlar Ushbu misol, suzuvchi nuqta raqamlari bilan ishlashda nima uchun yana bir bor ko'rsatib beradi ehtiyot bo'lish kerak: operatsiyalar yo'qolishiga olib kelishi mumkin aniqlik (hozirgi natija 0,41). Va butun sonni suzuvchi nuqtaga qo'shganda nima bo'ladi nuqta? >>> 6 + .2 6.2 Python siz songa butun son qo'shganingiz sababli qaror qiladi suzuvchi nuqta, siz arifmetik suzuvchi nuqtadan foydalanishingiz kerak nuqta. Bunday holda, Python avtomatik ravishda 6-ni raqamga o'zgartiradi . 2 bilan katlamadan oldin suzuvchi nuqta . Python qaytadi Natijani suzuvchi nuqta formatida ko'rsatadi. ESLATMA Agar operatsiya ikkita raqamli operandni ishlatsa, konversiya odatda to'g'ri ishlaydi. Butunni o'z ichiga olgan operatsiyalar uchun suzuvchi nuqta va raqam, butun format formatga o'tkaziladi suzuvchi nuqta.
Satrlar va raqamlar o'rtasidagi konversiyalar ko'pchilik uchun amalga oshirilmaydi matematik operatsiyalar. Qoidada ikkita istisno mavjud: operator satrni formatlash va ayirish operatori. Foydalanganda % chap qismi (bir mag'lubiyatga bilan tark operand ) va har qanday O'ng tomonida (ustida (sonlar, shu jumladan) ob'ekt o'ng obyekti Python amalga oshiradi bo'yicha) formatlash jarayoni: >>> chop etish ('num:% s'% 2) num: 2 Agar chap operand torli bo'lsa, unda operatorni qo'llashda zheniya * Python takrorlashni amalga oshiradi: >>> "Python!" * 2 "Python! Python!" >>> '4' * 2 '44'
8.3. Ko'paytirish 65 ESLATMA Int va float sinflarida aniq konversiyalar amalga oshirilishi mumkin (qaramay tashqi o'xshashlik funktsiyalarga, aslida bu sinflar): >>> int (2.3) 2 >>> suzib yurish (3) 3.0 8.2. Ajratish Ajratish ko'paytirish bilan juda ko'p bog'liq. Ikkisini ajratganda butun sonlar yoki ikkita suzuvchi nuqta raqamlari butun sonni oladi mos ravishda raqam yoki suzuvchi nuqta raqami. Aralash uchun ope konversiyasini ayirishdan oldin raqamli turlar randalar: >>> 2 - 6 -4 >>> .25 - 0,2 0.04999999999999999 >>> 6 - .2 5.8
Ko'p dasturlash tillarida * (yulduzcha) belgisi ishlatiladi ko'paytirish uchun. O'zingiz ehtimol qachon nima bo'lishini taxmin qilasiz ikkita butun sonni ko'paytirish: >>> 6 * 2 12 Agar diqqat bilan o'qib chiqsangiz, nima bo'lishini allaqachon bilasiz ikki suzuvchi nuqta raqamlaridan: >>> .25 * 12.0 3.0
66 8-bob. Raqamlar Va mahsulotdagi aralash turlar bilan natija olinadi Nuqta:
>>> 4 * .3 1.2
Ushbu misollardagi suzuvchi nuqta natijasi to'g'ri ko'rinadi kuchli. Shunga qaramay, ehtiyot bo'ling va muammolar haqida eslang. vakillik xatosi bilan - siz doimo shunday deb o'ylamang omadli bo'ladi. 8.4. Bo'linish Pythonda (ko'p tillarda bo'lgani kabi) belgi / bo'linish degan ma'noni anglatadi: >>> 12/4 3.0
Python 3 shuningdek oldingi versiyalarda mavjud bo'lgan muammoni hal qiladi Ko'pchilik Pythonni nuqson deb hisoblagan. Ikki butun sonni bo'lish natijasi suzuvchi nuqta raqami: >>> 3/4
0,75 Python butun sonlarni bo'lish uchun foydalangan. Agar kerak bo'lsa Bu aynan ayollarning xatti-harakati; // operatoridan foydalaning . Qaysi Butun son Python-dan foydalanadimi? Kichikroq yaxlitlash natijasi tomoni : >>> 3 // 4 0
% Operatori butun sonning bo'linishini hisoblab chiqadi. Masalan, undan foydalanib, raqamni tengligini tekshirishingiz mumkin (yoki yo'qligini bilib olishingiz mumkin) 1000 ta ro'yxat elementlari qayta ishlanganmi):
8.5. Qolganlari 67 # 4 ni 3 ga bo'lishning qolgan qismi >>> 4% 3 1 >>> 3% 2 # g'alati, agar natija 1 bo'lsa 1 >>> 4% 2 # natija 0 bo'lsa ham 0
Salbiy bilan % operatoridan foydalanganda ehtiyot bo'ling raqamlar bo'yicha. Operatorning xatti-harakati qaysi biriga qarab o'zgaradi operandlar manfiy. Qarama-qarshi yo'nalishda hisoblashda aniq balans ma'lum bir chastota bilan takrorlanishi kerak: >>> 3% 3
0 >>> 2% 3
2 >>> 1% 3
1 >>> 0% 3
0 -1% 3 ni hisoblashda qanday natijaga erishish kerak ? Beri hisob teskari yo'nalishda saqlanadi, natija yana 2 ga teng bo'lishi kerak: >>> -1% 3 2 Ammo agar siz bo'linish belgisini o'zgartirsangiz, g'alati bir narsa yuz beradi: >>> -1% -3 -1 Python natija belgisi bo'linuvchining (yoki.) Belgisiga mos kelishini ta'minlaydi 0 ga teng). Sizni butunlay chalkashtirish uchun yana bir misol: >>> 1% -3 -2 Axloqiy: ehtimol qoldiqni salbiy bo'linish bilan hisoblamasligingiz kerak. lem - agar siz haqiqatan ham kerakli ekaningizga qat'iy ishonch hosil qilsangiz aynan shu.
68 8-bob. Raqamlar 8.6. Eksponentlash Python shuningdek eksponentatsiya operatorini qo'llab-quvvatlaydi ** (ikkita yulduz) qizlari). Agar siz 4 kvadratga (4 - tayanch, 2 - hozircha - daraja sohibi), u quyidagicha amalga oshiriladi: >>> 4 ** 2 o'n olti
Eksponentlash operatsiyasining natijalari odatda tez o'sadi qadrlamoq Aytaylik, 10-chi kuchni 10 ga ko'tarmoqchisiz: >>> 10 ** 100 10000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0000000000000000000000000 Butun sonlarni saqlash uchun dasturlarga ma'lum miqdor kerak xotira. Butun sonlar odatda nisbatan kichik bo'lganligi sababli Python samarasiz qolmaslik uchun xotira xarajatlarini optimallashtiradi sarflash. Ichki amalga oshirishda "tizimli" butun sonlar mumkin katta sonlarni saqlash uchun uzun butun sonlarga aylantirilishi mumkin. Python 3 buni avtomatik ravishda amalga oshiradi. Bahorning og'irliklari hajmini tasavvur qiling. Agar siz har doim oz tortsangiz buyumlar bo'lsa, siz qisqa shkala bilan o'lchovda qulay bo'lasiz. Agar savdo qilsangiz qum, ehtimol qum osonlik bilan sumkalarga solinadi, shunda ular bilan birga bo'ladi ishlash uchun qulayroq edi. Siz kichik sumkalarni qulay qilib saqlaysiz ularni tortish uchun ishlatish. Ammo vaqti-vaqti bilan siz qisqa o'lchov doirasidan tashqariga chiqadigan katta ob'ektlarni tortish kerak, katta tarozi va katta sumka olishingiz kerak. Foydalanish mantiqiy bo'lmaydi Ko'p mayda narsalar uchun katta sumka va katta tarozidan foydalaning. Xuddi shu tarzda, Python butun xotirani saqlash uchun xotirani optimallashtirishga harakat qilmoqda kichik o'lchamlarga e'tibor qaratgan holda raqamlar. Agar butun son bo'lmasa kichik xotira blokida (sumkada) keshlash, Python uni katta hajmga o'zgartiradi
biz (yoki PacMan 255 dan yuqori darajalarga borishni rad etadi, chunki) darajadagi hisoblagich 8 bitli raqam sifatida saqlanishini).
8.9. Xulosa 69 ESLATMA Python asosiy matematik funktsiyalarga ega bo'lgan operator modulini o'z ichiga oladi osmon operatsiyalari. Xususan, bundaylardan foydalanganda foydali bo'ladi
>>> import operatori >>> operator.add (2, 4) # 2 + 4 bilan bir xil 6
Matematik hisoblarni amalga oshirayotganda, barcha operatsiyalar emas chapdan o'ngga to'ldiring. Masalan, qo'shish va ajratish operatsiyalari ayirish va bo'linish operatsiyalaridan keyin amalga oshiriladi. Kompyuterlar xuddi shu qoidalarga muvofiq ishlash. Agar siz qo'shimcha operatsiyalarni xohlasangiz (yoki ajratish) avval bajarildi, dumaloq foydalaning operatsiyalar tartibini ko'rsatish uchun Qavslar: >>> 4 + 2 * 3 10 >>> (4 + 2) * 3 o'n sakkiz Misollardan ko'rinib turibdiki, qavslar ichidagi ifoda baholanadi birinchi navbatda.
REPL ning yordam bo'limi juda foydali. Unda mavzu bor NUMBERMETHODS barcha raqamli operatsiyalar ishlash qanday tushuntirib.
Python asosiy matematik operatsiyalarni bajarish uchun o'rnatilgan yordamga ega. yurish-turishlar. Albatta, til qo'shish, ayirish, ko'paytirishni qo'llab-quvvatlaydi va bo'linish. Bundan tashqari, eksponentatsiya va hisoblash
70 8-bob. Raqamlar qolganlarning dangasasi. Agar ijro tartibini boshqarish kerak bo'lsa operatsiyalar, avval bajarilishi kerak bo'lgan operatsiyani yakunlang, Qavslar ichida. Agar siz oddiy hisob-kitoblarni bajarishingiz kerak bo'lsa, buning o'rniga kalkulyator dasturini ishlatsangiz, ularni Python-da bajarishingiz mumkin. JSSV- til imkoniyatlari ko'pgina vazifalar uchun etarli darajada ko'proq.
1. Bu hafta siz 6.2, 7, 8, 5, 6.5, 7.1 va 8.5 soat uxladingiz. O'rtachani hisoblang yalang'och uyqu soatlari. 2. 297 sonini 3 ga 3 ga bo'linish kerakmi? 3. 2-ni o'ninchi kuchga ko'tarish qanday natija beradi? 4. Vikipediyada 1 pog'onali yil quyidagicha aniqlanadi: "... soni to'rtga ko'p bo'lgan, bir yil bo'lgan Istisno 100 ga teng bo'lganlar uchun chiqarildi. Bunday yillar ular 400 ga bo'lganda ham sakrashdi ... Shunday qilib, 1700, 1800 va 1900 yillari o'tish yillari emas, chunki ular ko'paymoqda 100 va 400 emas, balki 400 emas. 1600 va 2000 yillar - bu sakrash yillari. " Papaning sakrashini aniqlaydigan Python kodini yozing yillar 1800, 1900, 1903, 2000 va 2002 yillar. 1 https://en.wikipedia.org/wiki/ Leap Year
9 qator Simlar simni saqlash uchun o'zgarmas buyumlardir bepul ma'lumotlar. Qator bitta belgi, so'z, keyin bo'lishi mumkin so'zning amal qilish muddati, paragraf, bir nechta xatboshilar, garchi unda bo'lmasligi mumkin bitta belgi emas. Pythonda simlar ' (bitta qo'shtirnoq) orasiga joylashtirilgan , " (ikki marta tirnoq), " "" (uch marta qo'shtirnoq) yoki '' ' (uch marta tirnoq) bitta tirnoq). Bir nechta misollar: >>> belgilar = 'a' >>> name = 'Matt' >>> with_quote = "Men aytmayman" >>> uzunroq = "" "Ushbu qator mavjud ... bir nechta qatorlar ... ichida "" " >>> latin = '' 'Lorum ipsum ... Dolor '' ' >>> qochdi = 'Men ishonmayman' >>> nol_chars = '' >>> unicode_snake = "Men yaxshi ko'raman \ n {SNAKE}" Eslatma: satrlar har doim tirnoq bilan boshlanadi va tugaydi bitta tur. In_quote misolidan ko'rinib turibdiki , bitta tirnoq qo'yish mumkin qo'shtirnoq ichidan topish mumkin va og'iz. Bundan tashqari, agar siz satrga tirnoq kiritishingiz kerak bo'lsa xuddi shu tipda , \ belgi (orqaga teskari chiziq) bilan qochib qutulish mumkin . Da Qochib ketgan belgining chiqishi orqaga teskari chiziq tomonidan e'tiborsiz qoldiriladi.
72 9-bob. Chiziqlar ESLATMA Kuzatuvchi o'quvchida savol paydo bo'lishi mumkin - uni qanday yoqish kerak satrning teskari egri chizig'ida? Orqa teskari chiziqni yoqish uchun oddiy chiziqdagi chiziq, undan qochish kerak ... ha, bu to'g'ri - baribir bitta teskari chiziq: >>> backslash = '\\' >>> bosma (teskari chiziq) \
Python-dagi belgilardan qochishning ba'zi standart usullari:
Download 363.98 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling