IlmHamroh
Python kursi/Kompyuter va dasturlash5/8-dars15 daqiqa
Mundarija (24)

1.5-dars: Python tarixi va falsafasi — kim, qachon va nega yaratgan

1-QISM — KOMPYUTER VA DASTURLASH · 5-dars · Oldingi dars: kompilyator, interpretator va JIT


1. Kirish va motivatsiya

Tilning tarixini bilish — bu qiziqarli ma'lumot emas. Bu amaliy foyda.

Har bir tilning dizayni uning yaratilish sababidan kelib chiqadi. C tezlik uchun yaratilgan — shuning uchun u xavfsizlikni dasturchiga topshiradi. Java korporativ tizimlar uchun — shuning uchun u ko'p yozishni talab qiladi, lekin ishonchli. Python esa odam vaqtini tejash uchun yaratilgan — va bu qaror tilning har bir burchagida ko'rinadi.

Bu darsni tugatgach quyidagilarni tushunasiz:

  • Nega Pythonda blok qavs bilan emas, bo'sh joy bilan ajratiladi (bu g'alati qaror emas — sababi bor)
  • Nega Pythonda bitta ishni qilishning odatda bitta yo'li bor, JavaScript'da esa beshta
  • PEP nima va nega Python foydalanuvchilari bu so'zni tez-tez ishlatadi
  • Nega Python 2 dan 3 ga o'tish shunchalik og'riqli bo'lgan va bundan qanday saboq olingan
  • "Pythonik kod" nima degani va nega bu shunchaki uslub emas

Va eng muhimi: siz Pythonni tasodifiy qoidalar to'plami deb emas, izchil falsafaga qurilgan tizim deb ko'ra boshlaysiz. Bu farq sizning kodingiz sifatiga bevosita ta'sir qiladi.


2. Nazariya — chuqur tushuntirish

2.1. Guido van Rossum va 1989-yilning Rojdestvo ta'tili

Python Guido van Rossum ismli golland dasturchisi tomonidan yaratilgan.

1989-yil dekabrida u Amsterdamdagi CWI ilmiy institutida ishlar edi. Rojdestvo ta'tili boshlandi, institut yopildi, uyda bo'sh vaqt paydo bo'ldi. Guido o'zi aytganidek — "hobby loyihasi" sifatida yangi tilni yozishga kirishdi.

Bu bo'sh joydan paydo bo'lgan g'oya emas edi. Guido bundan oldin ABC degan tilda ishlagan. ABC o'qitish uchun mo'ljallangan, juda toza tuzilishga ega edi — lekin amalda muvaffaqiyatsiz chiqdi. Sababi: u yopiq edi. Yangi imkoniyat qo'shish, tizim bilan ishlash, fayl o'qish — bularning hammasi qiyin edi.

Guido shu saboqni oldi: tilning o'zi toza bo'lsin, lekin u kengaytiriladigan bo'lsin.

Nomi esa ilondan emas — Guido "Monty Python's Flying Circus" degan britaniyalik komediya guruhining muxlisi edi. Shuning uchun Python hujjatlarida hazil misollar (spam, eggs) hali ham uchraydi.

2.2. ABC dan olingan saboqlar

Python ABC dan nimani olgan va nimani rad etgan — bu tilni tushunishning kaliti.

Olingan:

ABC dan Pythonda
Bo'sh joy bilan bloklash if x: dan keyin chekinish
Yuqori darajali ma'lumot tuzilmalari list, dict tilning o'zida
O'qilishga urg'u Sintaksis inglizchaga yaqin
Turni e'lon qilish shart emas Dinamik turlash

Rad etilgan:

ABC muammosi Pythonning yechimi
Yopiq tizim, kengaytirib bo'lmasdi C bilan integratsiya boshidanoq ko'zda tutilgan
Faylga, tizimga kirish qiyin Standart kutubxona boy
Monolit Modullar tizimi

Aynan kengaytirish imkoniyati Pythonni bugungi holatga olib keldi. numpy, pandas, PyTorch — hammasi C bilan bog'lanish mumkinligi tufayli mavjud. ABC bunday qila olmasdi va shuning uchun unutildi.

Saboq: til faqat sintaksis emas. Uning atrofida nima qurish mumkinligi ko'pincha muhimroq.

2.3. Vaqt chizig'i

text
1989  Guido Rojdestvo ta'tilida ishni boshlaydi
1991  Python 0.9.0 — birinchi ommaviy chiqish
      (klasslar, istisnolar, funksiyalar allaqachon bor)
1994  Python 1.0 — lambda, map, filter, reduce
2000  Python 2.0 — list comprehension, axlat yig'uvchi (sikllar uchun)
2008  Python 3.0 — orqaga moslik buziladi
2010  Python 2.7 — 2.x ning oxirgi versiyasi
2018  Guido "BDFL" lavozimidan ketadi
2020  Python 2 rasman to'xtatiladi
2021  Python 3.10 — match/case
2023  Python 3.12 — sezilarli tezlik yaxshilanishi
2024+ Python 3.13 — eksperimental JIT, GIL'siz rejim

Diqqat qiling: Python 1991-yildan beri mavjud — JavaScript'dan 4 yil oldin. U "yangi til" emas, 35 yillik tarixga ega.

2.4. "BDFL" — mehribon umrbod diktator

Python uzoq vaqt g'ayrioddiy boshqaruv modeliga ega edi. Guido BDFL (Benevolent Dictator For Life — mehribon umrbod diktator) deb atalardi.

Ma'nosi: jamoa muhokama qiladi, taklif beradi, bahslashadi — lekin oxirgi qaror Guidoda.

Bu g'alati tuyulishi mumkin, lekin amalda yaxshi ishladi. Natijasi — izchillik. Pythonda "ikkita raqobatlashuvchi yondashuv" kam uchraydi, chunki bitta odam yakuniy qarorni qabul qilib, tilni bir yo'nalishda ushlab turgan.

2018-yilda Guido ketdi (charchagani va bir taklif atrofidagi keskin bahs sababli). Endi Python Steering Council — besh kishilik saylanadigan kengash tomonidan boshqariladi.

2.5. PEP — Pythonni o'zgartirish yo'li

PEP (Python Enhancement Proposal — Pythonni yaxshilash taklifi) — tilga o'zgartirish kiritish uchun rasmiy hujjat.

Kimdir yangi imkoniyat taklif qilmoqchi bo'lsa, u PEP yozadi: nima taklif qilinyapti, nega kerak, muqobillar nima, orqaga moslikka ta'siri qanday.

Mashhur PEP lar:

PEP Nima Nega muhim
PEP 8 Kod yozish uslubi Butun jamoa shunga amal qiladi
PEP 20 Pythonning Zeni Til falsafasi
PEP 484 Tur belgilari def f(x: int) -> str
PEP 572 Walrus operatori := Guidoning ketishiga sabab bo'lgan bahs
PEP 703 GIL'siz Python Kelajakdagi eng katta o'zgarish

PEP 8 nega bunchalik muhim? Chunki u kod yozish uslubini standartlashtirgan: 4 ta bo'sh joy, qator uzunligi, nomlash qoidalari. Natijada butun dunyodagi Python kodi bir xil ko'rinadi. Boshqa tilda har jamoa o'z uslubini o'ylab topadi.

Siz ham PEP 8 ga amal qilasiz — va ruff yoki black kabi vositalar buni avtomatik qiladi (18-qism).

2.6. Pythonning Zeni — 19 tamoyil

1999-yilda Tim Peters ismli dasturchi Pythonning dizayn falsafasini 19 ta qisqa jumlaga jamladi. U tilga hazil sifatida kiritilgan — import this deb yozsangiz chiqadi:

python
import this

Eng muhimlarini ko'rib chiqamiz.

"Beautiful is better than ugly" — chiroyli xunukdan yaxshi.

Kod bir marta yoziladi, lekin o'nlab marta o'qiladi. Chiroyli kod — bezak emas, tejamkorlik.

"Explicit is better than implicit" — oshkora yashirindan yaxshi.

python
# Yashirin — nima qaytishini bilib bo'lmaydi
from modul import *

# Oshkora — aniq
from modul import hisobla, tekshir

Aynan shu tamoyil sababli Pythonda JavaScript'dagi kabi avtomatik tur aylantirish yo'q: 1 + "2" xato beradi, chunki Python sizning niyatingizni taxmin qilmaydi.

"Simple is better than complex. Complex is better than complicated."

Bu ikki jumla nozik farqni ko'rsatadi:

  • Complex (murakkab) — masala haqiqatan murakkab, yechim ham murakkab
  • Complicated (chalkash) — sodda masala keraksiz murakkab qilingan

Ikkinchisi — dasturchining aybi.

"Readability counts" — o'qilishi muhim.

Bu Pythonning eng mashhur tamoyili. Va u shunchaki maslahat emas — u sintaksisda majburlangan.

"There should be one — and preferably only one — obvious way to do it."

Bu Pythonni Perl va JavaScript'dan ajratadi. Ular "bir ishni ko'p yo'l bilan qilish mumkin" deb faxrlanadi. Python teskarisini aytadi: bitta ravshan yo'l bo'lsin.

Nega? Chunki begona kodni o'qiyotganda siz "bu odam qaysi usuldan foydalangan?" deb o'ylamaysiz.

"Errors should never pass silently" — xatolar jimgina o'tmasin.

python
# Python — xato darhol ko'rinadi
print(1 + "2")     # TypeError

# JavaScript — jimgina noto'g'ri natija
// console.log(1 + "2");   →  "12"

Ikkinchi holat xavfliroq: dastur ishlashda davom etadi, lekin natija noto'g'ri.

"Now is better than never. Although never is often better than right now."

Ish qilish kerak — lekin shoshilib emas. Bu Python 3 ga o'tishning sekin, lekin puxta o'tkazilishini tushuntiradi.

2.7. Bo'sh joy — eng ko'p bahs qilinadigan qaror

Pythonning eng ko'zga tashlanadigan xususiyati — blok qavs bilan emas, chekinish (indentation) bilan ajratiladi.

python
if x > 0:
    print("Musbat")
    print("Ikkinchi qator")
print("Bu shartdan tashqarida")
javascript
if (x > 0) {
  console.log("Musbat");
  console.log("Ikkinchi qator");
}
console.log("Bu shartdan tashqarida");

Boshlovchilar ko'pincha buni g'alati deb hisoblaydi. Lekin mantiq oddiy:

Boshqa tillarda ham dasturchilar baribir chekinish qo'yadi. Ya'ni kodda ikkita tuzilma bor: qavslar (kompyuter uchun) va chekinish (odam uchun). Va ular bir-biriga zid bo'lishi mumkin:

javascript
// Bu kod aldaydi: chekinish bir narsa deydi, qavslar boshqa
if (x > 0)
  console.log("Birinchi");
  console.log("Ikkinchi");   // Bu SHART ICHIDA EMAS!

Bu haqiqiy xato manbai. 2014-yilda Apple'ning SSL kodida aynan shunday xato topilgan (goto fail) — u xavfsizlik zaifligiga olib kelgan.

Python bu muammoni ildizidan yo'q qildi: chekinish — sintaksisning o'zi. Ko'rganingiz — bajariladigan narsa.

Narxi: bo'sh joyga e'tiborsiz bo'lish mumkin emas. Tabulyatsiya va bo'sh joyni aralashtirsangiz IndentationError chiqadi. Shuning uchun doim 4 ta bo'sh joy ishlating va muharrirni shunga sozlang.

2.8. Python 2 dan 3 ga o'tish — qimmat saboq

3-darsda bu o'tishni qisqacha ko'rdik. Endi nega bunchalik og'riqli bo'lganini tushunamiz.

2008-yilda Guido qiyin qarorga keldi: tilda to'plangan dizayn xatolarini tuzatish uchun orqaga moslikni ataylab buzish.

Asosiy tuzatishlar:

  • Satrlar sukut bo'yicha Unicode (bu o'zbek, rus, xitoy tillari uchun hal qiluvchi)
  • print — buyruq emas, oddiy funksiya
  • 5 / 2 endi 2.5, 2 emas
  • Ko'p funksiya ro'yxat o'rniga iterator qaytaradi (xotira tejash)

Har biri alohida to'g'ri qaror edi. Muammo — ularning hammasi bir vaqtda kiritilgani.

Natijada:

  • Mavjud kod ishlamay qoldi
  • Kutubxonalar ko'chishi kerak edi, lekin ular bir-biriga bog'liq
  • Hech kim birinchi bo'lib ko'chishni xohlamadi — "avval kutubxonalar ko'chsin"

Bu "tovuqmi yoki tuxummi" vaziyati 12 yil davom etdi.

Olingan saboqlar (bu bugungi Python'ga ta'sir qiladi):

  1. Orqaga moslikni buzmaslik. Bugun Python yangi imkoniyat qo'shganda eskisini deyarli hech qachon olib tashlamaydi.
  2. Bosqichma-bosqich o'tish. Yangi narsa avval ixtiyoriy bo'ladi (from __future__ import), keyin standart.
  3. Ogohlantirish davri uzoq. Eskiruvchi imkoniyat bir necha versiya davomida ogohlantirish beradi.

Aynan shuning uchun bugun Python 3.9 dan 3.12 ga o'tish deyarli og'riqsiz — jamoa saboq oldi.

2.9. "Pythonik" nima degani

Pythonik (pythonic) — Pythonning falsafasiga mos yozilgan kod.

Ishlaydigan kod yetarli emas. Quyidagi ikkala variant ham to'g'ri ishlaydi:

python
# Pythonik EMAS — boshqa tildan ko'chirilgan uslub
sonlar = [1, 2, 3, 4, 5]
i = 0
natija = []
while i < len(sonlar):
    if sonlar[i] % 2 == 0:
        natija.append(sonlar[i])
    i = i + 1
python
# Pythonik
sonlar = [1, 2, 3, 4, 5]
natija = [son for son in sonlar if son % 2 == 0]

Ikkinchisi qisqaroq emas, balki niyatni ravshanroq ifodalaydi: "sonlar ichidan juftlarini ol". Birinchisi esa "qanday qilish" haqida — indeks oshirish, uzunlik tekshirish.

Bu farqni sezish vaqt talab qiladi. Kurs davomida biz har mavzuda "pythonik yo'l" ni alohida ko'rsatib boramiz.

2.10. Pythonning bugungi holati

Python bugun dunyodagi eng ko'p ishlatiladigan tillardan biri. TIOBE va Stack Overflow so'rovlarida u yillar davomida birinchi uchlikda.

Nega o'sdi?

  1. Ma'lumot va AI to'lqini. 2010-yillardan boshlab ilmiy hisoblash Pythonga ko'chdi. numpy, pandas, keyin TensorFlow va PyTorch.
  2. O'rganish osonligi. Universitetlar birinchi til sifatida Pythonni tanlay boshladi.
  3. Kutubxonalar. PyPI da 500 000 dan ortiq paket. Deyarli har vazifaga tayyor yechim bor.
  4. Ko'p sohalilik. Web, avtomatlashtirish, ilm, DevOps — hammasida ishlatiladi.

Kelajak yo'nalishlari:

  • Tezlik. 3.11 va 3.12 sezilarli tezlashdi, ish davom etyapti
  • GIL'siz rejim (PEP 703) — ko'p yadroli parallellikning haqiqiy yechimi
  • Turlar tizimi doimiy kengaymoqda

3. Tez ma'lumotnoma

Asosiy sanalar

text
1989  boshlangan      2008  Python 3.0
1991  0.9.0           2020  Python 2 to'xtatildi
2000  2.0             2024+ JIT va GIL'siz rejim

Muhim PEP lar

text
PEP 8    — kod uslubi
PEP 20   — Zen (import this)
PEP 484  — tur belgilari
PEP 703  — GIL'siz Python

Zenning asosiy tamoyillari

text
Chiroyli    xunukdan yaxshi
Oshkora     yashirindan yaxshi
Sodda       murakkabdan yaxshi
O'qilishi   muhim
Bitta       ravshan yo'l bo'lsin
Xatolar     jimgina o'tmasin

4. Batafsil misollar

Misol 1 — Zenni to'liq o'qish

python
import this

Chiqadi (qisqartirilgan):

text
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
...

Nima ko'rsatdi: 2.6-bo'lim. Bu hazil (Easter egg), lekin undagi tamoyillar jiddiy — ular tilning dizayn qarorlarini belgilagan.

Misol 2 — "Oshkora yashirindan yaxshi" amalda

python
# YASHIRIN — bu funksiya qayerdan keldi? Bilib bo'lmaydi
from math import *
print(sqrt(16))        # 4.0  — lekin sqrt qaysi moduldan?

# OSHKORA — aniq ko'rinib turibdi
from math import sqrt
print(sqrt(16))        # 4.0

# YANA HAM OSHKORA — eng ravshan
import math
print(math.sqrt(16))   # 4.0

Nima ko'rsatdi: 2.6-bo'limdagi tamoyil. import * ishlatmaslik — bu shunchaki qoida emas, falsafadan kelib chiqadi. Katta faylda sqrt ni ko'rganingizda uning manbasini darhol bilishingiz kerak.

Misol 3 — "Xatolar jimgina o'tmasin"

python
# Python: turlarni aralashtirmaydi
yosh = "25"
try:
    keyingi_yil = yosh + 1
except TypeError as xato:
    print(f"Xato ushlandi: {xato}")
    # Xato ushlandi: can only concatenate str (not "int") to str

# To'g'ri yo'l — niyatni oshkora bildirish
keyingi_yil = int(yosh) + 1
print(keyingi_yil)     # 26

Xuddi shu kod JavaScript'da:

javascript
const yosh = "25";
const keyingiYil = yosh + 1;
console.log(keyingiYil);   // "251"  — xato yo'q, natija noto'g'ri

Nima ko'rsatdi: 2.6-bo'limdagi tamoyil amalda. Python to'xtatadi, JavaScript davom etadi. Birinchisi qulaysizroq, lekin xavfsizroq.

Misol 4 — Pythonik va pythonik bo'lmagan kod

python
talabalar = [
    {"ism": "Aziza", "ball": 85},
    {"ism": "Bobur", "ball": 92},
    {"ism": "Dilnoza", "ball": 78},
]

# ── Pythonik EMAS ──
ismlar = []
for i in range(len(talabalar)):
    if talabalar[i]["ball"] >= 80:
        ismlar.append(talabalar[i]["ism"])
print(ismlar)

# ── Pythonik ──
ismlar = [t["ism"] for t in talabalar if t["ball"] >= 80]
print(ismlar)          # ['Aziza', 'Bobur']

# ── Yana bir misol: fayl bilan ishlash ──

# Pythonik EMAS — faylni yopishni unutish mumkin
f = open("matn.txt")
matn = f.read()
f.close()

# Pythonik — fayl avtomatik yopiladi
with open("matn.txt") as f:
    matn = f.read()

Nima ko'rsatdi: 2.9-bo'lim. Ikkinchi variantlar qisqaroq bo'lgani uchun emas, niyatni ravshanroq ifodalagani uchun yaxshi. with esa ustiga xatoga chidamli — istisno bo'lsa ham fayl yopiladi.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"Python ilon nomidan" Monty Python komediya guruhi nomidan
"Python yangi til" 1991-yildan beri mavjud — JavaScript'dan eski
"Bo'sh joy bilan bloklash — g'alati qaror" Bu ataylab qilingan: kod ko'ringanidek bajariladi
"Zen — shunchaki hazil" Hazil shaklida, lekin tilning haqiqiy dizayn tamoyillari
"PEP 8 — majburiy qonun" Tavsiya, lekin butun jamoa amal qiladi. Vositalar avtomatlashtiradi
"Guido hali ham qaror qabul qiladi" 2018-dan beri Steering Council boshqaradi
"Python 3 ga o'tish yomon qaror edi" Qaror to'g'ri, usul noto'g'ri edi — hammasi bir vaqtda
"Pythonik kod — qisqa kod" Yo'q, ravshan kod. Ba'zan pythonik variant uzunroq bo'ladi

6. Keng tarqalgan xatolar va yechimlari

1. Boshqa tilning uslubini Pythonga ko'chirish

Muammo: C yoki Java'dan kelgan dasturchi for i in range(len(ro'yxat)) yozadi.

Yechim: Pythonda to'g'ridan-to'g'ri element bo'ylab yuriladi: for element in ro'yxat. Indeks kerak bo'lsa — enumerate().

2. Tabulyatsiya va bo'sh joyni aralashtirish

Muammo: TabError yoki tushunarsiz IndentationError.

Yechim: doim 4 ta bo'sh joy. Muharrirda "Tab ni bo'sh joyga aylantirish" sozlamasini yoqing.

3. import * ishlatish

Muammo: nom qayerdan kelgani bilinmaydi, nomlar to'qnashishi mumkin.

Yechim: aniq import qiling — from math import sqrt yoki import math.

4. PEP 8 ni e'tiborsiz qoldirish

Muammo: har kim o'z uslubida yozadi, jamoada kod review qiyinlashadi.

Yechim: ruff va black vositalarini o'rnating — ular avtomatik to'g'irlaydi (18-qism).

5. Eski (Python 2) materialdan o'rganish

Muammo: print "salom" yoki raw_input() ko'rasiz va ishlatmoqchi bo'lasiz.

Yechim: material sanasiga qarang. Rasmiy hujjat — docs.python.org.


7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 3-qism (Asoslar): PEP 8 nomlash qoidalari amalda
  • 6-qism (Ma'lumot tuzilmalari): comprehension — pythonik uslubning asosi
  • 10-qism (Ilg'or til): context manager (with) va boshqa pythonik naqshlar
  • 13-qism (Turlar): PEP 484 va tur belgilari tarixi
  • 14-qism (Konkurentlik): GIL va PEP 703
  • 18-qism (Vositalar): ruff, black — PEP 8 ni avtomatlashtirish
  • 19-qism (Paketlash): PyPI ekotizimi

8. Eng yaxshi amaliyotlar

  1. import this ni vaqti-vaqti bilan o'qing. Tajriba ortgani sayin uning ma'nosi chuqurlashadi.

  2. PEP 8 ga amal qiling — lekin qo'lda emas. black va ruff buni sizsiz qiladi.

  3. "Bu pythonikmi?" deb so'rang. Kod ishlagach, ravshanroq yozish mumkinmi deb qarang.

  4. import * dan voz keching. Hech qachon.

  5. 4 ta bo'sh joy, tabulyatsiya yo'q. Muharrirni sozlang va unuting.

  6. Yangi imkoniyat ko'rsangiz, PEP ini o'qing. PEP 572 deb qidirsangiz, nega qo'shilgani va qanday bahs bo'lganini bilasiz.


9. Amaliy topshiriq

Vazifa 1: Zenni tarjima qilish

import this dagi 19 tamoyildan beshtasini tanlang. Har biri uchun:

  1. O'zbekchaga tarjima qiling
  2. Uni buzadigan kod misolini yozing
  3. Unga amal qiladigan variantini yozing

Namuna:

"Explicit is better than implicit" — Oshkora yashirindan yaxshi.

Buzadi: from os import * — path qayerdan kelgani bilinmaydi Amal qiladi: from os import path

Vazifa 2: Tarixdan xulosa

Python 2 dan 3 ga o'tish 12 yil davom etdi. Savollarga javob yozing:

  1. Nega hech kim birinchi bo'lib ko'chishni xohlamadi?
  2. Agar siz Guido o'rnida bo'lsangiz, buni qanday boshqacha qilardingiz?
  3. Bugungi Python bu tajribadan qanday saboq oldi? (2.8-bo'limga qarang)

Vazifa 3: Pythonik qilib yozish

Quyidagi kod ishlaydi, lekin pythonik emas. Uni qayta yozing:

python
sonlar = [12, 7, 33, 8, 21, 4]

# 1) 10 dan katta sonlarni topish
katta = []
for i in range(len(sonlar)):
    if sonlar[i] > 10:
        katta.append(sonlar[i])

# 2) Barcha sonlar yig'indisi
jami = 0
for i in range(len(sonlar)):
    jami = jami + sonlar[i]

# 3) Eng kattasini topish
eng_katta = sonlar[0]
for i in range(len(sonlar)):
    if sonlar[i] > eng_katta:
        eng_katta = sonlar[i]
Pythonik variant
python
sonlar = [12, 7, 33, 8, 21, 4]

# 1) comprehension
katta = [son for son in sonlar if son > 10]

# 2) tayyor funksiya
jami = sum(sonlar)

# 3) tayyor funksiya
eng_katta = max(sonlar)

E'tibor bering: uchala holatda ham "qanday qilish" o'rniga "nima kerak" yozildi. Va 2, 3-holatlarda Python allaqachon tayyor yechim bergan — uni qayta ixtiro qilish shart emas.

Nimani mustahkamlaydi: 2.6 (Zen) va 2.9 (pythonik kod).


Xulosa

Bu darsda Pythonning kelib chiqishi va falsafasini ko'rdik.

Eng muhim uch fikr:

  1. Python tasodifiy emas — u falsafaga qurilgan. Bo'sh joy bilan bloklash, avtomatik tur aylantirishning yo'qligi, "bitta ravshan yo'l" — bularning har biri ongli qaror.

  2. ABC dan olingan asosiy saboq — kengaytiriladigan bo'lish. Aynan C bilan integratsiya imkoniyati numpy, pandas, PyTorch ni mumkin qildi va Pythonni bugungi holatga olib keldi.

  3. Pythonik kod — qisqa kod emas, ravshan kod. "Qanday qilish" o'rniga "nima kerak" ni yozing.

Keyingi darsda Python real dunyoda qayerda ishlatilishini ko'ramiz — Instagram'dan NASA'gacha, aniq misollar bilan.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
1.5-dars: Python tarixi va falsafasi — kim, qachon va nega yaratgan — IlmHamroh