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.me/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.me/pythonuz/591
@pythonuz
Boshiga https://t.me/pythonuz/590
###################
Mavjud bo'lmagan indeks yoki kalitlarni tekshirish uchun umumiy LookupError dan yoki LookupError dan meros bo'lib olingan IndexError, KeyError dan foydalanishingiz mumkin.
# ——————————————-#
###################
Dastur operatsion tizim xotirasidan katta hajmdagi xotirani iste'mol qilganda MemoryError xatoligi paydo bo'ladi.
###################
Noto'g'ri yozilgan funksiya nomi yozilganda dastur NameError xatoligini qaytaradi.
# ——————————————-#
Mavjud bo'lmagan o'zgaruvchi yozilganda dastur NameError xatoligini qaytaradi.
name 'war' is not defined <class 'NameError'>
# ——————————————-#
O'zgaruvchisi biror tur/qiymatga ega bo'lmagan funksiyaga murojaat qilinganda dastur UnboundLocalError xatoligini qaytaradi.
###################
Dastur ishga tushirilganda dasturlash tili qoidalariga amal qilinmaganda (sintaksis xatolar bo'lsa) SyntaxError xatoligini qaytaradi.Keraksiz joyda nuqta, vergul, bo'sh joy, operator yoki funksiyalar nomini xato yozish, ochilmay yoki yopilmay qolgan qavs, ikkitirnoq yoki birtirnoqlar, o'zgaruvchilarga noto'g'ri nom berish SyntaxError ga misol bo'la oladi.
# ——————————————-#
# ——————————————-#
Kod bloklarida noto'g'ri yozilgan bo'sh joylar IndentationError xatoligini qaytaradi.
# ——————————————-#
Yorliqlar va bo'shliqlardan noto'g'ri foydalanganda dastur TabError xatoligini qaytaradi
###################
Noto'g'ri ma'lumot turlari ustida amallar bajarilganda dastur TypeError xatoligini qaytaradi.
Quyidagi holatlarda dastur TypeError xatoligini qaytaradi.
——————————————-#
Matn va sonni birlashtirishga uringanda
——————————————-#
O'zgaruvchini funksiya ko'rinishida chaqirganda
——————————————-#
Ro'yxat indeksida noto'g'ri ma'lumot turi ko'rsatilganda
###############
Biror amal yoki funktsiya mos bo'lmagan qiymatga ega bo'lgan argumentni qabul qilganda dastur ValueError xatoligini qaytaradi.
——————————————-#
{ValueError("invalid literal for int() with base 10: 'two'")} {<class 'ValueError'>}
###############
Python dasturlash tiliga oid savollarni ushbu guruhga yozing @apiuz
###################
Mavjud bo'lmagan indeks yoki kalitlarni tekshirish uchun umumiy LookupError dan yoki LookupError dan meros bo'lib olingan IndexError, KeyError dan foydalanishingiz mumkin.
x = [1, 2, 3, 4, 5]list index out of range, <class 'IndexError'>
try:
print(x[5])
except LookupError as e:
print(f"{e}, {e.class}")
# ——————————————-#
lugat = {1: 'one', 2: 'two'}3, <class 'KeyError'>
try:
print(lugat[3])
except LookupError as e:
print(f'{e}, {e.class}')
###################
Dastur operatsion tizim xotirasidan katta hajmdagi xotirani iste'mol qilganda MemoryError xatoligi paydo bo'ladi.
import numpyUnable to allocate 74.5 GiB for an array with shape (9999999999,) and data type float64
try:
numpy.ones((9999999999,))
except MemoryError as e:
print(e)
###################
Noto'g'ri yozilgan funksiya nomi yozilganda dastur NameError xatoligini qaytaradi.
try:name 'prin' is not defined <class 'NameError'>
prin('Hello')
except NameError as e:
print(e, e.class)
# ——————————————-#
Mavjud bo'lmagan o'zgaruvchi yozilganda dastur NameError xatoligini qaytaradi.
try:
var = 42
print(war)
except NameError as e:
print(e, e.class)
name 'war' is not defined <class 'NameError'>
# ——————————————-#
O'zgaruvchisi biror tur/qiymatga ega bo'lmagan funksiyaga murojaat qilinganda dastur UnboundLocalError xatoligini qaytaradi.
def func():UnboundLocalError: local variable 'x' referenced before assignment
x += 1
print(x)
func()
###################
Dastur ishga tushirilganda dasturlash tili qoidalariga amal qilinmaganda (sintaksis xatolar bo'lsa) SyntaxError xatoligini qaytaradi.Keraksiz joyda nuqta, vergul, bo'sh joy, operator yoki funksiyalar nomini xato yozish, ochilmay yoki yopilmay qolgan qavs, ikkitirnoq yoki birtirnoqlar, o'zgaruvchilarga noto'g'ri nom berish SyntaxError ga misol bo'la oladi.
len() = 5SyntaxError: cannot assign to function call
# ——————————————-#
fro i in range(10):SyntaxError: invalid syntax
print(i)
# ——————————————-#
Kod bloklarida noto'g'ri yozilgan bo'sh joylar IndentationError xatoligini qaytaradi.
num = 5IndentationError: expected an indented block
if num == 5:
print('ok')
# ——————————————-#
Yorliqlar va bo'shliqlardan noto'g'ri foydalanganda dastur TabError xatoligini qaytaradi
rating_range = 1TabError: inconsistent use of tabs and spaces in indentation
for row in range(6):
if 200 <= 199:
rating_range += 1
print(rating_range)
###################
Noto'g'ri ma'lumot turlari ustida amallar bajarilganda dastur TypeError xatoligini qaytaradi.
Quyidagi holatlarda dastur TypeError xatoligini qaytaradi.
——————————————-#
Matn va sonni birlashtirishga uringanda
num = 42TypeError: unsupported operand type(s) for +: 'int' and 'str'
matn = '-maktab'
print(num + matn)
——————————————-#
O'zgaruvchini funksiya ko'rinishida chaqirganda
var = 'pythonuz'TypeError: 'str' object is not callable
print(var())
——————————————-#
Ro'yxat indeksida noto'g'ri ma'lumot turi ko'rsatilganda
royxat = ['pythonuz', 'phpuz']TypeError: list indices must be integers or slices, not str
print(royxat['1'])
###############
Biror amal yoki funktsiya mos bo'lmagan qiymatga ega bo'lgan argumentni qabul qilganda dastur ValueError xatoligini qaytaradi.
import math{ValueError('math domain error')} {<class 'ValueError'>}
x = -9
try:
print(f'{x} ning kvadrat ildizi {math.sqrt(x)}')
except ValueError as e:
print({e}, {e.class})
——————————————-#
try:
int('two')
except ValueError as e:
print({e}, {e.class})
{ValueError("invalid literal for int() with base 10: 'two'")} {<class 'ValueError'>}
###############
Python dasturlash tiliga oid savollarni ushbu guruhga yozing @apiuz
Python dasturlash maktabi
Ⓜ️ 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…
print(1.52316384526264e+83 ** 11)
Anonymous Quiz
19%
OwerflowError
33%
FloatingPointError
31%
NameError
18%
StopIteration
Python dasturlash maktabi
Ⓜ️ 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…
from os import systems
print(os.systems)
print(os.systems)
Anonymous Quiz
19%
AttributeError
35%
ArithmeticError
29%
ImportError
17%
OSError
print([1, 3, 5, 7, 11][5])
Anonymous Quiz
18%
NameError
37%
IndexError
30%
SyntaxError
16%
AttributeError