DEV Community

Cover image for CS50 - Week 6
Dilbar
Dilbar

Posted on

CS50 - Week 6

Python

Python - foydalanish uchun qulay, ko'p qirrali dasturlash tili bo'lib, dasturlashga yangi kirganlar uchun ham, soha mutaxassislari uchun ham zo'r tanlov hisoblanadi.
C tilidan farqli o‘laroq, Python interpretatsiya qilinadigan til bo‘lib, unda dasturni alohida kompilyatsiya qilish shart emas. Buning o‘rniga dasturni Python interpretatorida ishga tushiriladi.

C tilida yozilgan "hello, world" xabarini ekranga chiqaruvchi kod Python tilida quyidagicha ifodalanadi:

print("hello, world")
Enter fullscreen mode Exit fullscreen mode

E’tibor beradigan bo'lsak bunda hech qanday nuqtali vergul yo‘q va hech qanday kutubxona talab qilinmaydi. Pythonda C tilida ancha murakkab bo‘lgan kodlarni nisbatan oddiylik bilan amalga oshirishi mumkin.

O‘zgaruvchini e’lon qilish (Variable declaration) jarayoni Python tilida soddalashtirilgan. Masalan, C tilida o'zgaruvchini int counter = 0; kabi e'lon qilinadi. Python tilida esa o‘zgaruvchining turini e’lon qilish talab qilinmaydi: counter = 0.

Python’da ma’lumot turlarini aniq ko‘rsatish shart emas, uni interpretatorning o'zi o'zgaruvchining qiymatiga qarab aniqlashtirib oladi.
Python’da odatda quyidagi ma'lumot turlar qo‘llaniladi:

  • bool
  • float
  • int
  • str

C tilidagi kabi long va double turlari Python'da mavjud emas. Python katta va kichik sonlar uchun qaysi ma’lumot turini ishlatish kerakligini o‘zi hal qiladi.

Python’da qo'llaniladigan boshqa ma’lumot turlariga quyidagilar kiradi:

  • range
  • list
  • tuple
  • dict
  • set

Bu ma’lumot turlarining har birini C tilida ham amalga oshirish mumkin, biroq Python’da ularni yanada soddaroq tarzda qo‘llash imkoniyati mavjud.


Shart operatorlari

Python'da shart operatorlaridan foydalanganda qavslar - () majburiy emas.
Python'da {} o‘rniga indentatsiya ishlatiladi.
else if C'da ishlatilsa, Python'da buning o‘rniga elif qo‘llaniladi.
if, elif va else operatorlaridan keyin qo'sh nuqta : qo‘yiladi.

from cs50 import get_int

x = get_int("x ni kiriting: ")
y = get_int("y ni kiriting: ")

if x < y:
    print("x soni y sonidan kichik")
elif x > y:
    print("x soni y sonidan katta")
else:
    print("x soni y soniga teng")
Enter fullscreen mode Exit fullscreen mode

C'da || bilan ifodalanadigan "yoki" mantiqiy operatori Python'da or bilan almashtiriladi.
Python'da char o‘rniga str ishlatiladi, bu esa bitta belgi yoki satr bilan ishlash imkonini beradi.

from cs50 import get_string
s = get_string("Ma'lumotlar o'zgartirilishiga rozimisiz? ")

if s == "Y" or s == "y":
    print("Ha.")
elif s == "N" or s == "n":
    print("Yo'q.")
Enter fullscreen mode Exit fullscreen mode

Takrorlash operatorlari

Python’da takrorlanish operatorlari (loops) sintaksisi C ga juda o‘xshash, lekin sodda va tushunarliroq.
while sikli yordamida "meow" xabarini ekranga chiqaramiz:

i = 0
while i < 3:
    print("meow")
    i += 1
Enter fullscreen mode Exit fullscreen mode

for sikli yordamida yuqoridagi kodni yana ham soddalashtirishimiz mumkin:

for i in range(3):
    print("meow")
Enter fullscreen mode Exit fullscreen mode

Bu yerda ining qiymatini Python avtomatik ravishda oshirib boradi.
Shuningdek, yuqoridagi kodni quyidagicha yozishimiz mumkin:

def main():
    meow(3)


def meow(n):
    for i in range(n):
        print("meow")


main()
Enter fullscreen mode Exit fullscreen mode

Bunday yondashuv kodni modullashtiradi.


List (Ro'yxat)

List yordamida bir o'zgaruvchida ko'p qiymatlar saqlashimiz mumkin. Listlarning elementlariga indexsi orqali murojaat qila olamiz.

scores = [72, 73, 33]

# O'rtacha qiymatni topamiz
average = sum(scores) / len(scores)
print(f"Average: {average}")
Enter fullscreen mode Exit fullscreen mode

len() metodi yordamida listing uzunligini, ya'ni elementlar sonini aniqlaymiz.
sum() metodi yordamida sonlardan iborat bo’lgan listning elemtlari yig’indisini hisoblaymiz.

Foydalanuvchidan qiymatlarni olish uchun sikldan foydalanish mumkin:

from cs50 import get_int

# Foydalanuvchidan qiymatlarni kiritishni so'raymiz
scores = []
for i in range(3):
    score = get_int("Score: ")
    scores.append(score)

# O'rtacha qiymatni topamiz
average = sum(scores) / len(scores)
print(f"Average: {average}")
Enter fullscreen mode Exit fullscreen mode

append metodi listga yangi qiymat qo‘shadi.

Python’da list ichida qiymatni qidirish uchun sikldan foydalanish yoki qisqaroq usuldan foydalanish mumkin:

# Ismlar ro'yxati
names = ["Carter", "David", "John"]

# Foydalanuvchidan ism kiritishni so'raymiz
name = input("Name: ")

# Ro'yxatdan qidiramiz
if name in names:
    print("Topildi")
else:
    print("Topilmadi"
Enter fullscreen mode Exit fullscreen mode

in operatori list ichida qaralayotgan qiymat bor-yo‘qligini tekshiradi.


Dictionary (Lug'at)

Dictionary — bu kalit-qiymat juftliklari bo‘lib, qidiruv jarayonini tezlashtiradi.

from cs50 import get_string

people = {
    "Carter": "+1-617-495-1000",
    "David": "+1-617-495-1000",
    "John": "+1-949-468-2750",
}

# Kiritilgan ismni qo'yxatdan qidiramiz
name = get_string("Name: ")
if name in people:
    print(f"Telefon raqam: {people[name]}")
else:
    print("Topilmadi")
Enter fullscreen mode Exit fullscreen mode

people[name] orqali lug‘at ichidan mos qiymat olinadi.
Lug‘atning qidirish tezligi odatda O(1).


Buyruq Qatori Argumentlari

Python’da sys kutubxonasi yordamida buyruq qatori argumentlarini ishlatish mumkin:

from sys import argv

if len(argv) == 2:
    print(f"salom, {argv[1]}")
else:
    print("salom, dunyo")
Enter fullscreen mode Exit fullscreen mode

argv - argumentlar ro‘yxatini o‘z ichiga oladi, birinchi element esa fayl nomidir.
Barcha argumentlarni ekranga chiqaramiz:

from sys import argv

for arg in argv:
    print(arg)
Enter fullscreen mode Exit fullscreen mode

Dastur qanday holatda yakunlagnanini bildirish uchun ma’lum chiqish kodlari (exit status) dan foydalanamiz:

import sys

if len(sys.argv) != 2:
    print("Buyruq qatori argumentini kiriting.")
    sys.exit(1)

print(f"salom, {sys.argv[1]}")
sys.exit(0)
Enter fullscreen mode Exit fullscreen mode

sys.exit() yordamida chiqish kodi qaytariladi (masalan, 0 — dastur muvaffaqiyatli yakunlanganligini bildiradi).

Ushbu maqolada CS50x 2024 manbasidan foydalanilgan.

Top comments (0)