Python dasturlash maktabi
Ⓜ️ lambda funksiyasi Python lambdalari kichik, nomsiz funktsiyalar bo'lib, oddiy Python funksiyalariga qaraganda imkoniyatlari kam, ammo ixchamroq sintaksisga ega.Lambda funksiyalari istalgan miqdordagi argumentlarga ega bo'lishi mumkin, ammo funksiya faqat…
var = (lambda *args: sum(*args))(i for i in range(5, 24, 6))
print(var)
print(var)
Anonymous Quiz
27%
32
34%
44
30%
56
9%
68
Python dasturlash maktabi
Funksiyalar (vazifalar) Oldindan belgilangan funksiyalarni ishlatishdan tashqari, def operatoridan foydalanib o'zingizning funksiyalaringizni yaratishingiz mumkin. Funksiya xuddi o'zgaruvchilarga o'xshab oldin yoziladi va keyin chaqiriladi. Funksiyadagi kod…
Ⓜ️ Modullar
Pythonda uchta asosiy modul mavjud:
1) o'zingiz yozgan,
2) tashqi manbalardan o'rnatilgan
3) Python bilan oldindan o'rnatilgan modullar.
Python bilan oldindan o'rnatilgan modullar ro'yxati string, re, datetime, math, random, os, multiprocessing, subprocess, socket, email, json, doctest, unittest, pdb, argparse va sys
Modul bu loyiha ichidagi class, funksiya va o'zgaruvchilardan tashkil topgan alohida fayl bo'lib dastur kodini tushunarli va ixchamlashtirish uchun xizmat qiladi.
C/C++ dasturlash tilida yozilgan kod fayllarini ham python dasturiga chaqirib olish mumkin.
Shaxsiy tajribamdan kelib chiqib dasturning asosiy kod bolaklarini main.py faylida ma'lumotlar ombori bilan ishlash qismini baza.py faylida saqlayman. baza nomli moduldagi elementlarni main.py fayli ichida quyidagi ko'rinishda chaqiramiz.
Moduldagi satr
Ushbu kodda number nom xatosi kelib chiqdi buni tuzatish uchun main.py faylidagi kodga o'zgartirish kiritamiz.
7
Moduldan chaqiriladigan elementlar ko'p bo'lganda ushbu usullardan foydalanishingiz mumkin.
1-usul importdan keyin 1 dona ko'paytiruv belgisidan foydalanib
7
2-usul modul nomi 1 ta nuqta va undan keyin funksiya yoki o'zgaruvchilarni nomini yozish orqali
7
Modullar nomi uzun bo'lganda
7
@pythonuz
Pythonda uchta asosiy modul mavjud:
1) o'zingiz yozgan,
2) tashqi manbalardan o'rnatilgan
3) Python bilan oldindan o'rnatilgan modullar.
Python bilan oldindan o'rnatilgan modullar ro'yxati string, re, datetime, math, random, os, multiprocessing, subprocess, socket, email, json, doctest, unittest, pdb, argparse va sys
Modul bu loyiha ichidagi class, funksiya va o'zgaruvchilardan tashkil topgan alohida fayl bo'lib dastur kodini tushunarli va ixchamlashtirish uchun xizmat qiladi.
C/C++ dasturlash tilida yozilgan kod fayllarini ham python dasturiga chaqirib olish mumkin.
Shaxsiy tajribamdan kelib chiqib dasturning asosiy kod bolaklarini main.py faylida ma'lumotlar ombori bilan ishlash qismini baza.py faylida saqlayman. baza nomli moduldagi elementlarni main.py fayli ichida quyidagi ko'rinishda chaqiramiz.
#baza.py
satr = 'Moduldagi satr'
number = 7
lugat = {1: 2}
# main.py
from baza import satr
print(satr)
print(number )
NameError: name 'number' is not definedModuldagi satr
Ushbu kodda number nom xatosi kelib chiqdi buni tuzatish uchun main.py faylidagi kodga o'zgartirish kiritamiz.
# main.py
from baza import satr, number
print(satr)
print(number)
Moduldagi satr7
Moduldan chaqiriladigan elementlar ko'p bo'lganda ushbu usullardan foydalanishingiz mumkin.
1-usul importdan keyin 1 dona ko'paytiruv belgisidan foydalanib
# main.py
from baza import *
print(satr)
print(number)
Moduldagi satr7
2-usul modul nomi 1 ta nuqta va undan keyin funksiya yoki o'zgaruvchilarni nomini yozish orqali
# main.py
import baza
print(baza.satr)
print(baza.number)
Moduldagi satr7
Modullar nomi uzun bo'lganda
as
operatoridan foydalanib modulga qisqa nom berish mumkin.# main.py
import baza as ba
print(ba.satr)
print(ba.number)
Moduldagi satr7
@pythonuz
Telegram
Python dasturlash maktabi
Ⓜ️ To'plam funksiyalari va uslublari
t1 = {1, 2, 3, 'a', 'b'}
t2 = {7, 8, 9, 'w', 'z'}
t3 = {'a', 'b'}
To'plamlar bilan bajariladigan operatsiyalar.(To'plam o'zgarmaydi to'plamdan ma'lumotlar o'zgartirib olinadi)
1-to'plam va 2-to'plamda o'xshash elelmentlar…
t1 = {1, 2, 3, 'a', 'b'}
t2 = {7, 8, 9, 'w', 'z'}
t3 = {'a', 'b'}
To'plamlar bilan bajariladigan operatsiyalar.(To'plam o'zgarmaydi to'plamdan ma'lumotlar o'zgartirib olinadi)
1-to'plam va 2-to'plamda o'xshash elelmentlar…
Kanalga yangi tashrif buyurganlarga:
Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.
Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.
Python dasturlash maktabi
Funksiyalar (vazifalar) Oldindan belgilangan funksiyalarni ishlatishdan tashqari, def operatoridan foydalanib o'zingizning funksiyalaringizni yaratishingiz mumkin. Funksiya xuddi o'zgaruvchilarga o'xshab oldin yoziladi va keyin chaqiriladi. Funksiyadagi kod…
Ⓜ️ Pythonda xatolar ustida ishlash (try-except).
Batafsil: https://docs.python.org/3/library/exceptions.html?highlight=exception#Exception
Istisno (Exception) nima?
Istisno - bu dastur normal ish jarayonini buzadigan, dasturni ishga tushirish va ishga tushirgandan keyin sodir bo'ladigan hodisa.Python skripti o'zi hal qila olmaydigan vaziyat yuzaga kelganda, u istisno tug'diradi. Istisno - bu xatoni ifodalovchi Python ob'ekti.Python skriptida istisno tug'ilsa, u darhol tutib qolinishi kerak, aks holda dastur ish faoliyati to'xtaydi.
Istisno holatini ko'rib chiqish
Agar sizda istisnoga olib kelishi mumkin bo'lgan ba'zi bir shubhali kodlar mavjud bo'lsa, siz shubhali kodni try: blokiga joylashtirish orqali dasturingizni himoya qilishingiz mumkin.
Barcha oldindan o'rnatilgan istisnolar asosiy BaseException sinfiga mansub bo'ladi. Bu foydalanuvchi tomonidan belgilangan sinflar tomonidan to'g'ridan-to'g'ri meros qilib olinishi kerak emas, Exception dan foydalanishning o'zi yetarli.
###################
Arifmetik xatoliklarni tekshirish uchun umumiy
Sonlarni 0 ga bo'lish arifmetik xatolik hisoblanadi.
#—————————————-#
#—————————————-#
5 95367431640625.0
6 7.52316384526264e+83
Haqiqiy son kasr qismi xatoligi: (34, 'Result too large'), <class 'OverflowError'>
###################
Pythonda yozilgan dastur asosan 3 holatda AttributeError xatoligini qaytaradi.
1) Noto'g'ri atributga murojaat qilinganida
Atribut xatoligi
try blogi ichidagi a nomli o'zgaruvchi butun son (integer) turiga mansub va bu turdagi o'zgaruvchi o'zida faqat 1 ta sonni saqlashi mumkin.Yuqoridagi kodda 42 sonini ham a nomli o'zgaruvchiga qo'shmoqchi bo'lganimizda dastur AttributeError xatoliginbi qaytardi.
2) Atribut imlo xato bilan yozilganda
3) Sinf uchun mavjud boʻlmagan atribut ma'lumotnomasini berishga harakat qilinganda.
###################
Dasturda operatsion yoki fayl tizimlari bilan bog'liq muammolar bo'lsa dastur EnvironmentError xatoligini qaytaradi.
IOError - fayl bilan bog'liq muammolar (File not found, Disk Full) paydo bo'lganda dastur ushbu xatolikni qaytaradi.
OSError - operatsion tizim bilan bog'liq muammolar paydo bo'lganda dastur ushbu xatolikni qaytaradi.
###################
Mavjud bo'lmagan modul chaqirilganda dastur ModuleNotFoundError xatoligini qaytaradi
#—————————————-#
Mavjud bo'lgan modul va modul ichidan mavjud bo'lmagan funksiya chaqirilganda dastur ImportError xatoligini qaytaradi
Davomi https://t.iss.one/pythonuz/591
@pythonuz
Batafsil: https://docs.python.org/3/library/exceptions.html?highlight=exception#Exception
Istisno (Exception) nima?
Istisno - bu dastur normal ish jarayonini buzadigan, dasturni ishga tushirish va ishga tushirgandan keyin sodir bo'ladigan hodisa.Python skripti o'zi hal qila olmaydigan vaziyat yuzaga kelganda, u istisno tug'diradi. Istisno - bu xatoni ifodalovchi Python ob'ekti.Python skriptida istisno tug'ilsa, u darhol tutib qolinishi kerak, aks holda dastur ish faoliyati to'xtaydi.
Istisno holatini ko'rib chiqish
Agar sizda istisnoga olib kelishi mumkin bo'lgan ba'zi bir shubhali kodlar mavjud bo'lsa, siz shubhali kodni try: blokiga joylashtirish orqali dasturingizni himoya qilishingiz mumkin.
Barcha oldindan o'rnatilgan istisnolar asosiy BaseException sinfiga mansub bo'ladi. Bu foydalanuvchi tomonidan belgilangan sinflar tomonidan to'g'ridan-to'g'ri meros qilib olinishi kerak emas, Exception dan foydalanishning o'zi yetarli.
###################
Arifmetik xatoliklarni tekshirish uchun umumiy
ArithmeticError
dan yoki ArithmeticError
dan meros bo'lib olingan FloatingPointError, OverflowError, ZeroDivisionError
dan foydalanishingiz mumkin.Sonlarni 0 ga bo'lish arifmetik xatolik hisoblanadi.
try:
1/0
except ArithmeticError as e:
print(f"Arifmetik xatolik: {e}, {e.__class__}")
Arifmetik xatolik: division by zero, <class 'ZeroDivisionError'>#—————————————-#
try:
1 / 0
except ZeroDivisionError as e:
print(f"Nolga bo'lishda xato: {e}, {e.__class__}")
Nolga bo'lishda xato: division by zero, <class 'ZeroDivisionError'>#—————————————-#
j = 5.0
try:
for i in range(4, 10):
j = j ** i
print(i, j)
except OverflowError as e:
print(f"Haqiqiy son kasr qismi xatoligi: {e}, {e.__class__}")
4 625.05 95367431640625.0
6 7.52316384526264e+83
Haqiqiy son kasr qismi xatoligi: (34, 'Result too large'), <class 'OverflowError'>
###################
Pythonda yozilgan dastur asosan 3 holatda AttributeError xatoligini qaytaradi.
1) Noto'g'ri atributga murojaat qilinganida
try:
a = 7
print(type(a))
a.append(42)
except AttributeError:
print("Atribut xatoligi")
<class 'int'>Atribut xatoligi
try blogi ichidagi a nomli o'zgaruvchi butun son (integer) turiga mansub va bu turdagi o'zgaruvchi o'zida faqat 1 ta sonni saqlashi mumkin.Yuqoridagi kodda 42 sonini ham a nomli o'zgaruvchiga qo'shmoqchi bo'lganimizda dastur AttributeError xatoliginbi qaytardi.
2) Atribut imlo xato bilan yozilganda
satr = "farmat emas format yoziladi { }".farmat("ok")
print(string)
AttributeError: 'str' object has no attribute 'farmat'3) Sinf uchun mavjud boʻlmagan atribut ma'lumotnomasini berishga harakat qilinganda.
class Pythonuz():
def __init__(self):
self.a = 'Python'
obj = Pythonuz()
print(obj.a)
print(obj.b)
AttributeError: 'Pythonuz' object has no attribute 'b'###################
Dasturda operatsion yoki fayl tizimlari bilan bog'liq muammolar bo'lsa dastur EnvironmentError xatoligini qaytaradi.
IOError - fayl bilan bog'liq muammolar (File not found, Disk Full) paydo bo'lganda dastur ushbu xatolikni qaytaradi.
import sys
try:
f = open("filename.txt", 'r')
except IOError:
print(sys.exc_info()[0])
<class 'FileNotFoundError'>OSError - operatsion tizim bilan bog'liq muammolar paydo bo'lganda dastur ushbu xatolikni qaytaradi.
import sys
import pandas as pd
try:
file = pd.read_csv("C:\ttextfile.csv") # \t
except OSError:
print(sys.exc_info()[0])
<class 'OSError'>###################
Mavjud bo'lmagan modul chaqirilganda dastur ModuleNotFoundError xatoligini qaytaradi
import sys
try:
import request
except ImportError:
print(sys.exc_info()[0])
<class 'ModuleNotFoundError'>#—————————————-#
Mavjud bo'lgan modul va modul ichidan mavjud bo'lmagan funksiya chaqirilganda dastur ImportError xatoligini qaytaradi
import sys
try:
from time import tim
except ImportError:
print(sys.exc_info()[0])
<class 'ImportError'>Davomi https://t.iss.one/pythonuz/591
@pythonuz