Mundarija (24)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Uch xil vosita — farqni tushunish
- 2.2. ruff — zamonaviy yechim
- 2.3. Majburiy kengaytmalar
- 2.4. Foydali, lekin majburiy emas
- 2.5. Nimadan qochish kerak
- 2.6. Sozlamalar: foydalanuvchi va ish maydoni
- 2.7. Tavsiya etiladigan sozlamalar
- 2.8. ruff ni loyihaga sozlash
- 2.9. Sozlamalarni loyihaga bog'lash
- 2.10. Ko'rinish sozlamalari
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — formatOnSave ni ishda ko'rish
- Misol 2 — Linter nimalarni topadi
- Misol 3 — Tur tekshiruvchi nimani topadi
- Misol 4 — To'liq loyiha sozlamasi
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
2.7-dars: Kerakli kengaytmalar va sozlamalar
2-QISM — MUHIT VA VOSITALAR · 7-dars
1. Kirish va motivatsiya
VS Code o'rnatildi va ishlayapti. Endi savol: yana nima kerak?
Kengaytmalar bozorida o'n minglab kengaytma bor. Boshlovchilar odatda ikki xatoga yo'l qo'yadi:
Birinchi xato — hech narsa o'rnatmaslik. Natijada kod formatlanmagan, xatolar ko'rinmaydi, ish sekin.
Ikkinchi xato — hammasini o'rnatish. Natijada VS Code sekinlashadi, kengaytmalar bir-biriga xalaqit beradi, kod bir xil bo'lmaydi.
Bu darsda oltin o'rtalikni ko'rsatamiz: nima rostdan kerak, nima yaxshi bo'lsa ham majburiy emas, nimadan qochish kerak.
Va eng muhimi: nega kerakligini tushuntiramiz. black nima qiladi va nega u sizni tortishuvlardan qutqaradi? ruff qanday xatolarni topadi? formatOnSave nega odat qilish kerak?
Bu dars oxirida sizda professional sozlangan ish maydoni bo'ladi — kompaniyada ishlaganingizda ham xuddi shunday sozlanadi.
2. Nazariya — chuqur tushuntirish
2.1. Uch xil vosita — farqni tushunish
Bu uch tushuncha ko'pincha aralashtiriladi:
| Vosita | Nima qiladi | Misol |
|---|---|---|
| Formatlovchi (formatter) | Kod ko'rinishini to'g'rilaydi | black, ruff format |
| Linter | Kod muammolarini topadi | ruff, pylint, flake8 |
| Tur tekshiruvchi (type checker) | Tur xatolarini topadi | mypy, Pylance |
Formatlovchi mantiqqa tegmaydi. U faqat bo'sh joy, qator uzunligi, tirnoq turini bir xillashtiradi:
# Oldin
x={'a':1,'b':2}
def f( a,b ):
return a+b
# black dan keyin
x = {"a": 1, "b": 2}
def f(a, b):
return a + bLinter — "bu ishlaydi, lekin muammo bor" deydi:
import os # ← ishlatilmagan import
x = 1
x = 2 # ← birinchi qiymat ishlatilmadi
if x == None: # ← "is None" bo'lishi kerak
passTur tekshiruvchi — 1.3-darsdagi tur xatolarini ishga tushirishdan oldin topadi:
def qosh(a: int, b: int) -> int:
return a + b
qosh("salom", 5) # ← xato: str kutilmaganUchalasi ham kerak. Va zamonaviy yechim ularni birlashtiradi.
2.2. ruff — zamonaviy yechim
Yaqin vaqtgacha Python ekotizimida har ish uchun alohida vosita ishlatilardi:
black formatlash
isort importlarni tartiblash
flake8 lint
pyupgrade eski sintaksisni yangilashTo'rtta vosita, to'rtta sozlama, sekin ishlash.
Ruff — 2022-yilda paydo bo'lgan va hammasini bittaga birlashtirgan. U Rust tilida yozilgan va 100 barobargacha tez.
ruff check . # lint
ruff format . # formatlash
ruff check --fix . # avtomatik tuzatishBu kursda ruff ni tavsiya qilamiz. black ni ham bilib qo'ying — u hali ham keng tarqalgan.
1.7-darsdagi ekotizim mavzusining amaliy davomi: Python ekotizimi tez o'zgaradi. Ruff — so'nggi 5 yildagi eng katta yaxshilanish.
2.3. Majburiy kengaytmalar
Bularsiz ishlash noqulay:
| Kengaytma | Muallif | Nima uchun |
|---|---|---|
| Python | Microsoft | Asosiy qo'llab-quvvatlash |
| Pylance | Microsoft | Aqlli to'ldirish, tur tekshiruvi (Python bilan keladi) |
| Ruff | Astral | Formatlash + lint, bitta vositada |
Uchtasi yetarli. Rostdan.
O'rnatish:
Ctrl+Shift+X → "Ruff" → Astral Software nashriyotidan o'rnating2.4. Foydali, lekin majburiy emas
| Kengaytma | Nima qiladi | Kimga |
|---|---|---|
| Error Lens | Xatoni qator yonida ko'rsatadi (kursor kerak emas) | Boshlovchiga juda foydali |
| indent-rainbow | Chekinish darajalarini ranglaydi | Boshlovchiga |
| GitLens | Git tarixini kod yonida | 31-qismdan keyin |
| Even Better TOML | pyproject.toml uchun |
19-qismdan keyin |
| Jupyter | Notebook fayllari | 24-qism (ma'lumot tahlili) |
| Rainbow CSV | CSV fayllarni ranglash | 16-qismdan keyin |
| Material Icon Theme | Chiroyli fayl belgilari | Xohishga ko'ra |
Error Lens — boshlovchi uchun eng foydalisi. Xato xabari to'g'ridan-to'g'ri qator yonida chiqadi:
print("salom" # ⚠ '(' was never closedKursorni olib borish kerak emas. Bu — 2.9-darsdagi xato o'qish ko'nikmasini tezlashtiradi.
2.5. Nimadan qochish kerak
| Kengaytma | Nega qochish kerak |
|---|---|
| Code Runner | Boshqa Pythonni chaqirishi mumkin — chalkashlik |
Bir vaqtda black + autopep8 + yapf |
Bir-biriga qarshi ishlaydi, kod tinimsiz o'zgaradi |
| Noma'lum nashriyotdan Python kengaytmalari | Xavfsizlik xavfi (1.7-dars) |
| Ko'p mavzu va belgi to'plamlari | Har biri xotira yeydi |
Umumiy qoida: kengaytma o'rnatishdan oldin so'rang — "bu muammoni hal qiladimi, yoki shunchaki chiroylimi?"
2.6. Sozlamalar: foydalanuvchi va ish maydoni
VS Code sozlamalari ikki darajada bo'ladi:
| Daraja | Fayl | Kimga ta'sir qiladi |
|---|---|---|
| Foydalanuvchi (User) | ~/.config/Code/User/settings.json |
Barcha loyihaga |
| Ish maydoni (Workspace) | <loyiha>/.vscode/settings.json |
Faqat shu loyihaga |
Ish maydoni sozlamalari ustun turadi.
Qaysi birini qachon?
- Foydalanuvchi: mavzu, shrift, umumiy odatlar
- Ish maydoni: interpretator, formatlovchi, loyihaga xos qoidalar
Nega ish maydoni muhim? Chunki .vscode/settings.json ni Git'ga qo'shsangiz, jamoadagi hamma bir xil sozlamalar bilan ishlaydi. Kod uslubi bo'yicha tortishuvlar tugaydi.
Ochish:
Ctrl/Cmd + , grafik ko'rinish
Ctrl+Shift+P → "Open User Settings (JSON)"
Ctrl+Shift+P → "Open Workspace Settings (JSON)"2.7. Tavsiya etiladigan sozlamalar
.vscode/settings.json (loyiha uchun):
{
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
},
"python.analysis.typeCheckingMode": "basic",
"editor.rulers": [88],
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}Har birini tushuntiramiz:
"[python]" — faqat Python fayllariga tegishli sozlamalar. Boshqa tillar o'z formatlovchisini ishlatadi.
editor.formatOnSave: true — eng muhim sozlama. Har saqlashda kod avtomatik formatlanadi.
Nega bu shunchalik muhim?
- Formatlash haqida umuman o'ylamaysiz — yozasiz, saqlaysiz, tayyor
- Jamoada kod uslubi bir xil bo'ladi
- Git'da "faqat bo'sh joy o'zgardi" degan o'zgarishlar yo'qoladi
- Kod ko'rinishi haqidagi tortishuvlar tugaydi
source.fixAll.ruff — saqlashda avtomatik tuzatiladigan lint muammolari (ishlatilmagan import va h.k.) tuzatiladi.
source.organizeImports.ruff — importlar to'g'ri tartibda joylashtiriladi:
# Oldin
import requests
import os
from mymodule import f
import sys
# Keyin
import os
import sys
import requests
from mymodule import fTartib: standart kutubxona → tashqi paketlar → o'z kodingiz. Bu — PEP 8 qoidasi (3.14-darsda).
python.analysis.typeCheckingMode: "basic" — Pylance tur xatolarini tekshiradi. Variantlar:
"off" tekshirmaydi
"basic" aniq xatolarni topadi ← boshlovchiga tavsiya
"standard" ko'proq tekshiradi
"strict" juda qattiq — ko'p ogohlantirisheditor.rulers: [88] — 88-belgida vertikal chiziq. Bu — black/ruff ning sukut bo'yicha qator uzunligi. Chiziqdan oshsangiz — qatorni bo'lish vaqti.
files.trimTrailingWhitespace — qator oxiridagi keraksiz bo'sh joylarni olib tashlaydi. Git'da ko'rinmas o'zgarishlarni oldini oladi.
files.insertFinalNewline — fayl oxiriga bo'sh qator qo'yadi. POSIX standarti; ko'p vosita buni kutadi.
2.8. ruff ni loyihaga sozlash
VS Code kengaytmasi ruff ni ishlatadi, lekin qoidalarni loyiha faylida belgilash yaxshi. Loyiha ildizida pyproject.toml:
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
ignore = []Qoida to'plamlari:
| Kod | Nima |
|---|---|
E |
pycodestyle xatolari (PEP 8) |
F |
Pyflakes — ishlatilmagan import, aniqlanmagan nom |
I |
isort — importlar tartibi |
UP |
pyupgrade — eski sintaksisni yangilash |
B |
flake8-bugbear — keng tarqalgan xatoliklar |
Boshlovchi uchun bu beshtasi ideal muvozanat: foydali, lekin shovqin qilmaydi.
pyproject.tomlnima? Zamonaviy Python loyihasining markaziy sozlama fayli. 19-qismda batafsil o'rganamiz. Hozircha — ruff qoidalari shu yerda deb bilsangiz yetarli.
2.9. Sozlamalarni loyihaga bog'lash
Yangi loyiha boshlaganda quyidagi tuzilma yaxshi odat:
loyiha/
├── .vscode/
│ ├── settings.json # muharrir sozlamalari
│ └── extensions.json # tavsiya etiladigan kengaytmalar
├── pyproject.toml # ruff, loyiha metama'lumoti
├── .gitignore # Git nimani e'tiborsiz qoldirsin
└── main.py.vscode/extensions.json:
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff"
]
}Bu faylni Git'ga qo'shsangiz, loyihani ochgan har bir kishiga VS Code kerakli kengaytmalarni taklif qiladi. Jamoa ishida juda foydali.
2.10. Ko'rinish sozlamalari
Bular ish natijasiga ta'sir qilmaydi, lekin qulaylik uchun muhim:
{
"editor.fontSize": 14,
"editor.fontFamily": "'JetBrains Mono', 'Fira Code', Consolas, monospace",
"editor.fontLigatures": true,
"editor.minimap.enabled": false,
"editor.wordWrap": "on",
"editor.bracketPairColorization.enabled": true,
"workbench.colorTheme": "Default Dark Modern"
}Shriftlar: JetBrains Mono va Fira Code — dasturlash uchun maxsus shriftlar. Bepul. fontLigatures != ni ≠ ko'rinishida chiroyli ko'rsatadi.
minimap.enabled: false — o'ng tomondagi kichik xarita. Ko'pchilik uni ishlatmaydi, joy esa egallaydi.
bracketPairColorization — mos qavslarni bir rangda ko'rsatadi. Chuqur ichma-ich kodda juda foydali.
3. Tez ma'lumotnoma
Majburiy kengaytmalar
ms-python.python Python
ms-python.vscode-pylance Pylance (bilan keladi)
charliermarsh.ruff Ruff — format + lintBoshlovchiga foydali
usernamehw.errorlens Error Lens
oderwat.indent-rainbow indent-rainbowEng muhim sozlama
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true
}Ruff buyruqlari
ruff check . lint
ruff check --fix . avtomatik tuzatish
ruff format . formatlashSozlama fayllari
.vscode/settings.json loyiha sozlamalari
.vscode/extensions.json tavsiya etiladigan kengaytmalar
pyproject.toml ruff qoidalari4. Batafsil misollar
Misol 1 — formatOnSave ni ishda ko'rish
tartibsiz.py faylini yarating va ataylab yomon formatlang:
import sys
import os
x={'ism':'Ali','yosh':25}
def salomlash( ism,yosh ):
return "Salom, "+ism+"! Siz "+str(yosh)+" yoshdasiz."
print( salomlash(x['ism'],x['yosh']) )Ctrl+S bosing. Kod darhol o'zgaradi:
import os
import sys
x = {"ism": "Ali", "yosh": 25}
def salomlash(ism, yosh):
return "Salom, " + ism + "! Siz " + str(yosh) + " yoshdasiz."
print(salomlash(x["ism"], x["yosh"]))Nima o'zgardi:
| O'zgarish | Sabab |
|---|---|
| Importlar alifbo tartibida | source.organizeImports.ruff |
' → " |
Ruff qo'shtirnoqni afzal ko'radi |
| Operatorlar atrofida bo'sh joy | PEP 8 |
| Funksiya oldida ikki bo'sh qator | PEP 8 |
| Ortiqcha bo'sh joylar olib tashlandi | PEP 8 |
Siz hech narsa qilmadingiz. Faqat saqladingiz.
Nima ko'rsatdi: 2.1, 2.7-bo'limlar. Formatlash haqida o'ylashni butunlay to'xtatasiz.
Misol 2 — Linter nimalarni topadi
muammoli.py:
import os
import json
def hisobla(sonlar):
jami = 0
ortacha = 0
for son in sonlar:
jami = jami + son
return jami
natija = hisobla([1, 2, 3])
if natija == None:
print("Bo'sh")Ruff topadigan muammolar:
muammoli.py:1:8 F401 `os` imported but unused
muammoli.py:2:8 F401 `json` imported but unused
muammoli.py:7:5 F841 Local variable `ortacha` is assigned to but never used
muammoli.py:15:4 E711 Comparison to `None` should be `cond is None`Har birini tushuntiramiz:
- F401 — import qilingan, lekin ishlatilmagan. Keraksiz kod, chalkashlik
- F841 — o'zgaruvchi yaratilgan, ishlatilmagan. Ehtimol xato:
ortachani hisoblashni unutdingiz - E711 —
== Nonetexnik jihatdan ishlaydi, lekinis Noneto'g'ri. Sababini 11-qismda o'rganamiz
Avtomatik tuzatish:
ruff check --fix muammoli.pyImportlar va == None tuzatiladi. ortacha esa qolmaydi — bu mantiqiy masala, uni siz hal qilishingiz kerak.
Nima ko'rsatdi: 2.1 va 2.8-bo'limlar. Linter — kodni o'qiydigan tajribali hamkasb kabi.
Misol 3 — Tur tekshiruvchi nimani topadi
turlar.py:
def qosh(a: int, b: int) -> int:
return a + b
natija = qosh("salom", 5)
print(natija)a: int — bu tur ishorasi (type hint). U Pythonni majburlamaydi, lekin vositalar uni o'qiydi. 13-qismda batafsil.
Pylance darhol ogohlantiradi:
Argument of type "Literal['salom']" cannot be assigned to
parameter "a" of type "int" in function "qosh"Ishga tushirsangiz:
TypeError: can only concatenate str (not "int") to strSolishtiring:
| Qachon topildi | |
|---|---|
| Pylance | Yozayotganda — 0 soniya |
| Python | Ishga tushganda — dastur ishlab, xato joyiga yetgach |
Katta loyihada bu farq juda katta bo'ladi: xato faqat ma'lum shartlarda yuz beradigan tarmoqda bo'lishi mumkin.
Bu — 1.3-darsdagi "dinamik turlash — tez yozish, lekin xato kech topiladi" muammosining zamonaviy yechimi.
Nima ko'rsatdi: 2.1, 2.7-bo'limlar va 1.3-darsdagi turlash mavzusi.
Misol 4 — To'liq loyiha sozlamasi
Yangi loyiha yaratamiz:
mkdir ~/python-loyiha && cd ~/python-loyiha
mkdir .vscode
code ..vscode/settings.json:
{
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
},
"python.analysis.typeCheckingMode": "basic",
"editor.rulers": [88],
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}.vscode/extensions.json:
{
"recommendations": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"usernamehw.errorlens"
]
}pyproject.toml:
[tool.ruff]
line-length = 88
target-version = "py312"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"].gitignore:
__pycache__/
*.pyc
.venv/
venv/
muhit/
.envEndi main.py yaratib, 1-misoldagi tartibsiz kodni yozing va saqlang. Hammasi avtomatik ishlaydi.
Bu to'plamni saqlab qo'ying. Har yangi loyihada nusxalasangiz, bir daqiqada tayyor bo'lasiz.
Nima ko'rsatdi: 2.6, 2.7, 2.8, 2.9-bo'limlar. Bu — professional loyihaning boshlanishi.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Ko'p kengaytma — yaxshi muharrir" | Aksincha. Uchtasi yetarli, ortiqchasi sekinlashtiradi |
| "Formatlovchi kodni buzishi mumkin" | Yo'q — u faqat ko'rinishni o'zgartiradi, mantiqqa tegmaydi |
| "Linter — bezovta qiluvchi" | U haqiqiy xatolarni topadi. Shovqin bo'lsa, qoidalarni sozlang |
| "Tur ishoralari Pythonni sekinlashtiradi" | Yo'q — ular ishlash paytida e'tiborsiz qoldiriladi |
"black va ruff — raqobatchi" |
ruff format black bilan deyarli bir xil. Ruff shunchaki tezroq va ko'proq narsa qiladi |
| "Sozlamalar shaxsiy ish" | Loyiha sozlamalari Git'da bo'lsin — jamoa bir xil ishlaydi |
"formatOnSave — noqulay" |
Bir hafta ishlating. Keyin usiz ishlay olmaysiz |
6. Keng tarqalgan xatolar va yechimlari
1. formatOnSave ishlamayapti
Sabablar va tekshiruv:
1. Ruff kengaytmasi o'rnatilganmi? → Ctrl+Shift+X
2. defaultFormatter to'g'rimi? → "charliermarsh.ruff"
3. Sozlama [python] ichidami? → tashqarida bo'lsa boshqa tilga tegishli
4. Chiqishda xato bormi? → Output panel → "Ruff"2. Ikki formatlovchi urishyapti — kod tinimsiz o'zgaradi
Sabab: black, autopep8, ruff — bir nechtasi yoqilgan.
Yechim: bittasini qoldiring. Qolganini o'chiring yoki defaultFormatter ni aniq belgilang.
3. Ruff juda ko'p ogohlantirish beryapti
Sabab: qoidalar to'plami keng.
Yechim: pyproject.toml da select ni cheklang:
select = ["E", "F", "I"] # eng zaruri4. Pylance hamma joyda qizil chiziq chizyapti
Sabab: typeCheckingMode: "strict".
Yechim: "basic" ga o'tkazing. strict — tajribali dasturchi va katta loyiha uchun.
5. Sozlamalar ta'sir qilmayapti
Sabablar:
- JSON'da vergul yetishmayapti yoki ortiqcha
- Ish maydoni sozlamasi foydalanuvchi sozlamasini ustidan yozyapti
- Oynani qayta yuklash kerak
Yechim: Ctrl+Shift+P → "Developer: Reload Window". JSON sintaksisini tekshiring — VS Code xatoni qizil bilan ko'rsatadi.
6. .vscode/ papkasini Git'ga qo'shishim kerakmi?
Javob: settings.json va extensions.json — ha. Bular jamoaga foydali.
launch.json (nosozlik sozlamalari) — odatda ha.
Shaxsiy narsalar (mavzu, shrift) — foydalanuvchi sozlamalarida bo'lsin, loyihada emas.
7. Ruff pyproject.toml ni ko'rmayapti
Sabab: fayl loyiha ildizida emas yoki VS Code boshqa papkani ochgan.
Yechim: 2.6-darsdagi qoida — papkani oching va pyproject.toml uning ildizida bo'lsin.
7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 2.9-dars: Error Lens xato xabarlarini o'qishni osonlashtiradi
- 3.14-dars: PEP 8 — formatlovchi aynan shu qoidalarni qo'llaydi
- 18-qism: nosozlik izlash —
launch.jsonsozlamalari - 13-qism: tur ishoralari — Pylance to'liq kuchga kiradi
- 19-qism:
pyproject.tomlto'liq — loyiha metama'lumoti, bog'liqliklar - 18-qism:
pre-commit— commit oldidan avtomatik tekshiruv - 31-qism:
.gitignoreva jamoa sozlamalari - 28-qism: CI — server ham
ruff checkni ishga tushiradi
8. Eng yaxshi amaliyotlar
Uchta kengaytma yetarli: Python, Pylance, Ruff. Boshqasini ehtiyoj tug'ilganda qo'shing.
formatOnSaveni birinchi kundan yoqing. Bu — eng yuqori foyda beradigan bitta sozlama.Loyiha sozlamalarini Git'ga qo'shing. Jamoa bir xil ishlaydi, tortishuv bo'lmaydi.
typeCheckingMode: "basic"dan boshlang. Tajriba orttirgach"standard"ga o'ting.Linter ogohlantirishini o'qing, o'chirmang. Agar shovqin qilsa — qoidani sozlang, butun linterni emas.
Boshlovchi bo'lsangiz Error Lens o'rnating. Xatolarni tezroq ko'rasiz va tezroq o'rganasiz.
Sozlama to'plamini saqlab qo'ying. Har yangi loyihada nusxalang.
9. Amaliy topshiriq
Vazifa 1: Kengaytmalarni o'rnatish
1. Ruff (Astral Software)
2. Error Lens (usernamehw)Har birini o'rnatgach VS Code'ni qayta yuklang.
Vazifa 2: Sozlamalarni qo'llash
4-misoldagi .vscode/settings.json ni loyihangizga qo'shing.
Vazifa 3: formatOnSave ni sinash
1-misoldagi tartibsiz.py ni yarating. Saqlang. Nima o'zgardi? Kamida to'rtta o'zgarishni yozing.
Vazifa 4: Linter bilan tanishuv
2-misoldagi muammoli.py ni yarating.
- Ruff nechta muammo topdi?
ruff check --fix muammoli.pynechtasini tuzatdi?- Qolganini nega tuzatmadi?
Javoblar
- To'rtta: ikkita
F401, bittaF841, bittaE711 - Uchtasi: ikki import va
== None→is None ortachao'zgaruvchisi qolmaydi, chunki uni o'chirish mantiqni o'zgartirishi mumkin. Ehtimol siz uni hisoblashni unutgansiz. Linter buni hal qila olmaydi — bu sizning qaroringiz
Vazifa 5: Tur tekshiruvchini sinash
3-misoldagi turlar.py ni yarating.
- Pylance xatoni topdimi?
- Endi
"basic"ni"off"ga o'zgartiring. Xato yo'qoldimi? - Dasturni ishga tushiring. Nima bo'ldi?
Bu tajriba nimani ko'rsatdi?
Javob
"off" da Pylance ogohlantirmaydi, lekin xato baribir bor — u faqat ishga tushganda chiqadi.
Tur tekshiruvchi xatoni yaratmaydi, u faqat oldindan ko'rsatadi. O'chirish muammoni yashiradi, hal qilmaydi.
Bu — 1.3-darsdagi dinamik turlash mavzusining amaliy tasdiqi.
Vazifa 6: To'liq loyiha yaratish
4-misoldagi to'liq tuzilmani yarating: .vscode/, pyproject.toml, .gitignore. Keyin main.py yozib, hammasi ishlashini tekshiring.
Vazifa 7: O'ylash
Nega formatOnSave jamoa ishida shunchalik muhim? Uchta sabab o'ylab toping.
Mumkin bo'lgan javoblar
- Git tarixi toza bo'ladi — "faqat bo'sh joy o'zgardi" degan o'zgarishlar yo'qoladi va kod ko'rib chiqish osonlashadi
- Tortishuv tugaydi — "tirnoq qanday bo'lsin", "qator qancha uzun bo'lsin" degan bahslar avtomatik hal bo'ladi
- Kod o'qish oson — barcha fayl bir xil uslubda, miya formatga emas mantiqqa e'tibor beradi
- Yangi a'zo tez qo'shiladi — uslub qo'llanmasini o'qish shart emas, vosita o'zi to'g'rilaydi
Nimani mustahkamlaydi: 2.1, 2.2, 2.3, 2.7, 2.8, 2.9-bo'limlar.
Xulosa
Bu darsda VS Code'ni professional darajada sozladik.
Eng muhim uch fikr:
Uchta kengaytma yetarli: Python, Pylance, Ruff. Ko'proq — sekinlik va chalkashlik.
formatOnSave— eng yuqori foyda beradigan sozlama. Formatlash haqida o'ylashni butunlay to'xtatasiz va jamoada kod bir xil bo'ladi.Uch xil vosita, uch xil ish: formatlovchi ko'rinishni, linter muammolarni, tur tekshiruvchi tur xatolarini topadi. Uchalasi ham kerak,
ruff+ Pylance ularni qoplaydi.
Keyingi darsda nihoyat birinchi haqiqiy .py faylimizni yozamiz va uni turli usullarda ishga tushiramiz. Barcha tayyorgarlik shu daqiqa uchun edi.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!