python.sariq.dev
  • 💻DASTURLASH ASOSLARI
  • 👀DARSLARNI QANDAY O'ZLASHTIRAMIZ
  • YANGILIK!
  • 🏁ILK QADAMLAR
    • #01 KERAKLI DASTURLAR
    • #02 HELLO WORLD!
    • #03 PRINT(), SINTEKS VA ARIFMETIK AMALLAR
  • 🗂️ O'ZGARUVCHILAR VA MA'LUMOT TURLARI
    • #04 O'ZGARUVCHILAR
    • #05 STRING (MATN)
    • #06 SONLAR
    • #07 LIST (RO'YXAT)
    • #08 RO'YXATLAR BILAN ISHLASH
    • #09 FOR TAKRORLASH OPERATORI
  • 🚦SHARTLAR VA TARMOQLANISH
    • #10 IF-ELSE
    • #11 BIR NECHTA SHARTLARNI TEKSHIRISH
  • LIRIK CHEKINISH #1
    • #12 XATOLAR BILAN ISHLASH
    • #13 GitHub PORTFOLIO
  • 📔LUG'AT (DICTIONARY)
    • #14 LUG'AT BILAN TANISHUV
    • #15 LUG'AT ELEMENTLARI BILAN ISHLASH
    • #16 NESTING
  • 🔁WHILE
    • #17 WHILE TSIKLI
    • #18 WHILE, RO'YXATLAR VA LUG'ATLAR
  • 📜FUNKSIYALAR (FUNCTIONS)
    • #19 FUNKSIYA
    • #20 QIYMAT QAYTARUVCHI FUNKSIYA
    • #21 FUNKSIYA VA RO'YXAT
    • #22 MOSLASHUVCHAN FUNKSIYA (*args, **kwargs)
    • #23 MODULLAR
    • #24 FUNKSIYALAR. SON'GSO'Z.
  • 🛠️ AMALIY MASHG'ULOTLAR
    • #25 "SON TOPISH" O'YINI
    • #26 "SO'Z TOPISH" O'YINI
    • #27 KIRILL-LOTIN TELEGRAM BOT
  • 👨‍💻 OBJECT ORIENTED PROGRAMMING
    • OOP NIMA?
    • #28 KLASSLAR
    • #29 OBYKETLAR BILAN ISHLASH
    • #30 VORISLIK VA POLIMORFIZM
    • #31 INKAPSULYATSIA, KLASSNING XUSUSIYAT VA METODLARI
    • #32 DUNDER METODLAR
  • 📂FAYLLAR VA XATOLAR
    • #33 FAYLLAR BILAN ISHLASH
    • #34 JSON
    • #35 XATOLAR BILAN ISHLASH
  • ☑️ KODNI TEKSHIRISH
    • # 36 FUNKSIYANI TEKSHIRISH
    • #37 KLASSNI TEKSHIRISH
  • 🏁SO'NGSO'Z
    • #38 PYTHON STANDART KUTUBXONASI
    • #39 PIP VA TASHQI KUTUBXONALAR
    • #40 SO'NGSO'Z VA KEYINGI QADAMLAR
  • EXTRAS
    • RegEx
Powered by GitBook
On this page
  • FUNKSIYAGA RO'YXAT UZATISH
  • RO'YXATGA O'ZGARTIRISH KIRITISH
  • ASL RO'YXATGA O'ZGARTIRISH KIRITISHNING OLDINI OLISH
  • AMALIYOT
  • JAVOBLAR
  • GitHub
  • Repl.it

Was this helpful?

  1. FUNKSIYALAR (FUNCTIONS)

#21 FUNKSIYA VA RO'YXAT

Funksiyaga ro'yxat uzatishni o'rganamiz

Previous#20 QIYMAT QAYTARUVCHI FUNKSIYANext#22 MOSLASHUVCHAN FUNKSIYA (*args, **kwargs)

Last updated 4 years ago

Was this helpful?

FUNKSIYAGA RO'YXAT UZATISH

Biz avvalgi darslarimizda funksiyaga parametr sifatida yagona qiymat berayotgan edik. Aslida, bu bilan cheklanmasdan, funksiyaga ro'yxat (list) ham berishimiz mumkin. Bunda, funksiya ro'yxat qiymatlariga to'g'ridan-to'g'ri murojat qila oladi.

Keling talabalarni baholaydigan funksiya yozamiz. Funksiyamiz talabalar ro'yxatini qabul qilib oladi, ro'yxatdan har bir talabani sug'urib olib (.pop()), bahosini kiritishni so'raydi. Talaba ismi va bahosini lug'atga joylab, yakuniy lug'atni foydalanuvchiga qaytaradi.

def bahola(ismlar):
    baholar = {}
    while ismlar:
        ism = ismlar.pop()
        baho = input(f"Talaba {ism.title()}ning bahosini kiriting: ")
        baholar[ism]=baho
    return baholar

talabalar = ['ali', 'vali', 'hasan', 'husan']
baholar = bahola(talabalar)
print(baholar)

RO'YXATGA O'ZGARTIRISH KIRITISH

Funksiyaga ro'yxat uzatganimizda, funksiya ro'yxat elementlariga to'g'ridan-to'g'ri murojat qila oladi. Ro'yxatga funksiya ichida kiritilgan o'zgartirishlar asl ro'yxatga ham ta'sir qiladi. Avvalgi misolimizga qaytaylik:

talabalar = ['ali', 'vali', 'hasan', 'husan']
baholar = bahola(talabalar)
print(talabalar)

Natija: []

Yuqoridagi funksiya unga uzatilgan ro'yxat ichidagi talabalarning ismini .pop() yordamida sug'urib olgani uchun bizning asl ro'yxatimiz ham bo'shab qoldi. E'tibor bering, funksiya tashqarisidagi va ichidagi ro'yxatlar ikki hil nomlangan bo'lsada (talabalar va ismlar), ikkalasi ham xotiradagi bitta ro'yxatga bog'langani sabab ulardan biriga o'zgartirish kiritilishi bilan, ikkinchisi ham o'zgaradi.

ASL RO'YXATGA O'ZGARTIRISH KIRITISHNING OLDINI OLISH

Agar funksiya asl ro'yxatga o'zgartirish kiritishini istamasangiz, funksiyaga ro'yxatning o'zini emas, uning nusxasini uzatish mumkin. Buning uchun funksiya parametrini royxat_nomi[:] ko'rinishida yozish kifoya. Bunda [:] operatori ro'yxatdan nusxa olishni bildiradi:

talabalar = ['ali', 'vali', 'hasan', 'husan']
baholar = bahola(talabalar[:])
print(talabalar)

Natija: ['ali', 'vali', 'hasan', 'husan']

AMALIYOT

  • Matnlardan iborat ro'yxat qabul qilib, ro'yxatdagi har bir matnning birinchi harfini katta harfga o'zgatiruvchi funksiya yozing.

ismlar = ['ali', 'vali', 'hasan', 'husan']
katta_harf(ismlar)
print(ismlar)

Kutilgan natija: ['Ali', 'Vali', 'Hasan', 'Husan']

  • Yuoqirdagi funksiyani asl ro'yxatni o'zgartirmaydigan va yangi ro'yxat qaytaradigan qilib o'zgartiring

ismlar = ['ali', 'vali', 'hasan', 'husan']
yangi_ismlar = katta_harf(ismlar)
print(ismlar)
print(yangi_ismlar)

Kutilgan natija:

['ali', 'vali', 'hasan', 'husan']

['Ali', 'Vali', 'Hasan', 'Husan']

  • Darsimiz davomida yozgan bahola funksiyasini .pop() metodidan foydalanmasdan va asl ro'yxatga o'zgartirish kiritmasdan faqat lug'at qaytaradigan qilib yozing.

JAVOBLAR

GitHub

Repl.it

📜
GitHub - anvarnarz/python-darslar: Dasturlash asoslari darslariGitHub
Logo
Natija
Ikki o'zgaruvchi ham bitta ro'yxatga bog'langan