Python dasturlash maktabi
2.5K subscribers
32 photos
1 file
41 links
@pythonuz kanalida python dasturlash tili Nematillo Ochilov tomonidan bosqichma bosqich bepul o'rgatiladi

@NematilloOchilov - blog
@pythonuz - Python darslari
@js_uz - Java Script
@MQLUZ - Savdo robotlarni dasturlash
Download Telegram
Boshiga https://t.iss.one/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.

x = [1, 2, 3, 4, 5]
try:
print(x[5])
except LookupError as e:
print(f"{e}, {e.class}")

list index out of range, <class 'IndexError'>

# ——————————————-#

lugat = {1: 'one', 2: 'two'}
try:
print(lugat[3])
except LookupError as e:
print(f'{e}, {e.class}')

3, <class 'KeyError'>

###################

Dastur operatsion tizim xotirasidan katta hajmdagi xotirani iste'mol qilganda MemoryError xatoligi paydo bo'ladi.

import numpy
try:
numpy.ones((9999999999,))
except MemoryError as e:
print(e)

Unable to allocate 74.5 GiB for an array with shape (9999999999,) and data type float64
###################

Noto'g'ri yozilgan funksiya nomi yozilganda dastur NameError xatoligini qaytaradi.

try:
prin('Hello')
except NameError as e:
print(e, e.class)

name 'prin' is not defined <class 'NameError'>

# ——————————————-#
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():
x += 1
print(x)


func()

UnboundLocalError: local variable 'x' referenced before assignment

###################

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() = 5

SyntaxError: cannot assign to function call

# ——————————————-#

fro i in range(10):
print(i)

SyntaxError: invalid syntax

# ——————————————-#

Kod bloklarida noto'g'ri yozilgan bo'sh joylar IndentationError xatoligini qaytaradi.

num = 5
if num == 5:
print('ok')

IndentationError: expected an indented block

# ——————————————-#

Yorliqlar va bo'shliqlardan noto'g'ri foydalanganda dastur TabError xatoligini qaytaradi

rating_range = 1
for row in range(6):
if 200 <= 199:
rating_range += 1
print(rating_range)

TabError: inconsistent use of tabs and spaces in indentation

###################

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  = 42
matn = '-maktab'
print(num + matn)

TypeError: unsupported operand type(s) for +: 'int' and 'str'

——————————————-#

O'zgaruvchini funksiya ko'rinishida chaqirganda

var = 'pythonuz'
print(var())

TypeError: 'str' object is not callable

——————————————-#

Ro'yxat indeksida noto'g'ri ma'lumot turi ko'rsatilganda

royxat = ['pythonuz', 'phpuz']
print(royxat['1'])

TypeError: list indices must be integers or slices, not str

###############

Biror amal yoki funktsiya mos bo'lmagan qiymatga ega bo'lgan argumentni qabul qilganda dastur ValueError xatoligini qaytaradi.

import math
x = -9
try:
print(f'{x} ning kvadrat ildizi {math.sqrt(x)}')
except ValueError as e:
print({e}, {e.class})

{ValueError('math domain error')} {<class 'ValueError'>}

——————————————-#

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
Kanalga yangi tashrif buyurganlarga:
Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.

Testlarni tushunmasdan belgilamang.Izohlarda faol boʻlinglar.

👉 Nematillo Ochilovning internetdagi sahifalari 👈
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…
map() funksiyasi

Pythonda map() funksiyasi funksiya va argumentni qabul qilib, funksiyaga asoslanib argumentga ishlov beradi va qiymat qaytaradi.
Afzalligi: kam kod yoziladi, sikllardan foydalanish shart emas, xotiradan faqat bir marta vaqtincha foydalanadi

#—————————————-#
def func(argument):
return argument.upper()

Map funksiyasini ichida ishlov beruvchi funksiya nomi qavssiz yoziladi va 1 ta verguldan so'ng argument yoziladi.

Funksiya argument sifatida ro'yxat ['a', 'b'], massiv [1, 4, 12], lug'at {1: 'a', 42: 'school'}, kortej (12, 42), to'plam {1, 1, 2, 3, 5, 5} va boshqa ma'lumotlar qabul qilishi mumkin.

m = map(func, {'a', 'b', 'c', 'd'})
print(m) # map() funksiyasi map obyektini qaytaradi
<map object at 0x0000000002798130>

print(type(m)) # obyekt turini aniqlaymiz
<class 'map'>

print(list(m)) # map obyektni ro'yxatga o'tkazib olish uchun list() funksiyasidan foydalaniladi
['A', 'B', 'C', 'D']

#—————————————-#

Ro'yxat elementlarini funktsiyaga birma-bir uzatish va keyin natijalarni to'plash uslubi
sonlar = [1, 2, 3, 4, 5]
daraja = []
for i in sonlar:
daraja.append(i**2)
print(daraja)
[1, 4, 9, 16, 25]

Map va lambda funksiyasi yordamida buni juda sodda va chiroyli tarzda amalga oshirish mumkin.

sonlar = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, sonlar)))
[1, 4, 9, 16, 25]

#—————————————-#
2 ta funksiyani 1 ta map() funksiya ichida foydalanamiz

def multiply(x):
return (x*x)
def add(x):
return (x+x)

funcs = [multiply, add]
for i in range(5):
value = list(map(lambda x: x(i), funcs))
print(value)

[0, 0]
[1, 2]
[4, 4]
[9, 6]
[16, 8]

#—————————————-#

Map funksiyasi yordamida birinchi harfi katta 'O' harfi bilan boshlanadigan mevalarga True qolganlariga False natija chop etish.
mevalar = ["Olma", "Gilos", "Banan", "Olcha", "Uzum"]
natija = list(map(lambda x: x[0] == "O", mevalar))
print(natija)
[True, False, False, True, False]

#—————————————-#

satr = ['a', 'b', 'c', 'd', 'e']
son = [1,2,3,4,5]
natija = list(map(lambda x, y: (x, y), satr, son))
print(natija)
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)]

#—————————————-#
Olimpiada musoboqalarida ushbu kod ko'p qo'llaniladi.
royxatlash = list(map(int, input('Son kiriting: ').split()))
print(royxatlash)
Son kiriting: 2 5 8
[2, 5, 8]

#—————————————-#

Map funksiyasida ichki funksiyalar va ma'lumot turlaridan foydalanishingiz mumkin.

Sonlarni darajasini hisoblash
son = [1, 2, 3, 4, 5]
daraja = [3, 4, 5, 6, 7]
print(list(map(pow, son, daraja)))
[1, 16, 243, 4096, 78125]

3 ni 5-darajasini hisoblash
print(3*3*3*3*3)
243

sonlar = [-42, -5, 0.1, 7, 21.3]

print(list(map(abs, sonlar)))
# manfiy sonlarni musbatga o'girish
[42, 5, 0.1, 7, 21.3]

print(list(map(float, sonlar))) # haqiqiy songa o'girish
[-42.0, -5.0, 0.1, 7.0, 21.3]

print(list(map(int, sonlar))) # butun songa o'girish
[-42, -5, 0, 7, 21]

satrlar = ["@pythonuz", "kanali", "admini", "Nematillo", "Ochilov"]

print(list(map(len, satrlar)))
# elementlardagi belgilar soni
[9, 6, 6, 9, 7]

print(list(map(str.capitalize, satrlar))) # Satrlarning birinchi harfini katta harfga o'girish
['@pythonuz', 'Kanali', 'Admini', 'Nematillo', 'Ochilov']

print(list(map(str.upper, satrlar))) # Satrlarning hamma harfini katta harfga o'girish
['@PYTHONUZ', 'KANALI', 'ADMINI', 'NEMATILLO', 'OCHILOV']

print(list(map(str.lower, satrlar))) # Satrlarning hamma harfini kichik harfga o'girish
['@pythonuz', 'kanali', 'admini', 'nematillo', 'ochilov']

print(list(map(str.strip, [" @pythonuz ", " dastur"]))) # Satrlardagi bo'sh joylarni o'chirish
['@pythonuz', 'dastur']

print(list(map(lambda s: s.strip("."), ["..@pythonuz...", ".dastur..."]))) # Satrlardagi nuqtalarni o'chirish
['@pythonuz', 'dastur']

Darslar Nematillo Ochilov tomonidan dasturlashdagi tajribalari asosida tayyorlandi.

Kanalga yangi tashrif buyurganlarga:
Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.
Testlarni tushunmasdan belgilamang.Izohlarda faol boʻlinglar.

#map #funksiya

@pythonuz
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…
filter() funksiyasi

Pythonda filter() funksiyasi funksiya va argumentni qabul qilib, funksiyadagi shartni bajarib elementlarni ajratadi va qiymat qaytaradi.
Afzalligi: kam kod yoziladi, sikllardan foydalanish shart emas, xotiradan faqat bir marta vaqtincha foydalanadi.
Avtomobil filteri havodan chang va chiqindilarni ajratib motorga toza havoni yetkazib berishi filter funksiyasiga yaqqol namunadir.

#—————————————-#

print("".join(reversed('teskari')))
# reversed funksiyasi satrni teskari o'girib beradi
irakset

#—————————————-#
Satr turidagi elementlarni teskarisiga o'girganda ham bir xil so'z paydo bo'ladigan elementlarni chop qilish dasturi

def birxil(word):
return word.lower() == "".join(reversed(word)).lower()

satr = ["nonushta", "non", "qovoq", "dastur"]
var=filter(birxil, satr)
print(var) # filter() funksiyasi filter obyektini qaytaradi
<filter object at 0x7f2ded0a5fa0>

print(type(var)) # obyekt turini aniqlaymiz
<class 'filter '>

print(list(var)) # filter obyektini ro'yxatga o'tkazib olish uchun list() funksiyasidan foydalaniladi
print(list(f))
['non', 'qovoq']

#—————————————-#

lugat = {1: 'tuya', 2: 'maymun', 3: 'sirtlon', 4: 'burgut', 5: 'olmaxon'}
# lug'at


juft = dict(filter(lambda elem: elem[0] % 2 == 0, lugat.items())) # juft raqamli kalitlardan iborat bo'lgan lug'at turida ajratib olamiz
print(juft) # lug'at turida natijani chop qilamiz
{2: 'maymun', 4: 'burgut'}
print(', '.join(list(juft.values()))) # lug'at turidagi natijani satr turiga o'zgartirib chop qilamiz
maymun, burgut

#—————————————-#

yetti = dict(filter(lambda elem: len(elem[1]) == 7, lugat.items())) # 7 ta harfdan iborat bo'lgan lug'at qiymatlarini lug'at turida ajratib olamiz
print(list(yetti.values())) # lug'at turidagi natijani ro'yxat turiga o'zgartirib chop qilamiz
['sirtlon', 'olmaxon']

#—————————————-#

juft = dict(filter(lambda elem: elem[0] % 1 == 0 and len(elem[1]) == 4, lugat.items())) # toq raqamli kalitlardan va 4 ta belgidan iborat bo'lgan qiymatlarni lug'at turida ajratib olamiz
print(', '.join(list(juft.values()))) # lug'at turidagi natijani satr turiga o'zgartirib chop qilamiz
tuya

#—————————————-#

yosh = {15: 'Dilorom', 12: 'Otabek', 22: 'Sanjar', 41: 'Iskandar'}
print(dict(filter(lambda elem: elem[0] > 18, yosh.items())))
# ro'yxatdan 18 yoshdan katta kishilarni ajratib olib chop qilish
{22: 'Sanjar', 41: 'Iskandar'}

#—————————————-#

massiv1 = [1, 3, 6, 7, 12, 19, 19, 21, 21, 27, 29, 1]
massiv2 = [1, 19, 29]
mavjud = list(filter(lambda x: x not in massiv2, massiv1))
# massiv2 da mavjud bo'lmagan massiv1 dagi raqamlarni ro'yxat turida chop qilish
print(mavjud)
[3, 6, 7, 12, 21, 21, 27]

#—————————————-#

satr = "Bugu*n# @h&avo ju%da is%%s%iq!$"
belgi = filter(lambda x: x not in ['#', '$', '@', '*', '%', '&'], satr)
# satrdan quyidagi belgilarni o'chiramiz
print(''.join(
belgi
))
Bugun havo juda issiq!

#—————————————-#

names = ['Durdona Jakbaraliyeva', 'Munisa Keldiyorova', 'Boysoat Namozov', 'Oybek Ibrohimov', 'Mohinur Abdurahimova']
print(list(filter(lambda x: x.split(' ')[1][-2:] == 'va', names)))
# Ro'yxatdan qizlarni ism familiyasini ajratib olib chop qilish
['Durdona Jakbaraliyeva', 'Munisa Keldiyorova', 'Mohinur Abdurahimova']

#—————————————-#

aralash = ["", 7, 21, 27, 42, 112, 256, True, False, [], {}]
print(list(filter(None, aralash)))
# 0 ga teng bo'lmagan elementlarni ajratib olib chop qilish
[7, 21, 27, 42, 112, 256, True]

#—————————————-#

Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.Testlarni tushunmasdan belgilamang.Izohlarda faol boʻlinglar.

#filter

@pythonuz