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:
<span>print</span><span>(</span><span>"</span><span>hello, world</span><span>"</span><span>)</span><span>print</span><span>(</span><span>"</span><span>hello, world</span><span>"</span><span>)</span>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.
<span>from</span> <span>cs50</span> <span>import</span> <span>get_int</span><span>x</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>x ni kiriting: </span><span>"</span><span>)</span><span>y</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>y ni kiriting: </span><span>"</span><span>)</span><span>if</span> <span>x</span> <span><</span> <span>y</span><span>:</span><span>print</span><span>(</span><span>"</span><span>x soni y sonidan kichik</span><span>"</span><span>)</span><span>elif</span> <span>x</span> <span>></span> <span>y</span><span>:</span><span>print</span><span>(</span><span>"</span><span>x soni y sonidan katta</span><span>"</span><span>)</span><span>else</span><span>:</span><span>print</span><span>(</span><span>"</span><span>x soni y soniga teng</span><span>"</span><span>)</span><span>from</span> <span>cs50</span> <span>import</span> <span>get_int</span> <span>x</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>x ni kiriting: </span><span>"</span><span>)</span> <span>y</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>y ni kiriting: </span><span>"</span><span>)</span> <span>if</span> <span>x</span> <span><</span> <span>y</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>x soni y sonidan kichik</span><span>"</span><span>)</span> <span>elif</span> <span>x</span> <span>></span> <span>y</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>x soni y sonidan katta</span><span>"</span><span>)</span> <span>else</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>x soni y soniga teng</span><span>"</span><span>)</span>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.
<span>from</span> <span>cs50</span> <span>import</span> <span>get_string</span><span>s</span> <span>=</span> <span>get_string</span><span>(</span><span>"</span><span>Ma</span><span>'</span><span>lumotlar o</span><span>'</span><span>zgartirilishiga rozimisiz? </span><span>"</span><span>)</span><span>if</span> <span>s</span> <span>==</span> <span>"</span><span>Y</span><span>"</span> <span>or</span> <span>s</span> <span>==</span> <span>"</span><span>y</span><span>"</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Ha.</span><span>"</span><span>)</span><span>elif</span> <span>s</span> <span>==</span> <span>"</span><span>N</span><span>"</span> <span>or</span> <span>s</span> <span>==</span> <span>"</span><span>n</span><span>"</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Yo</span><span>'</span><span>q.</span><span>"</span><span>)</span><span>from</span> <span>cs50</span> <span>import</span> <span>get_string</span> <span>s</span> <span>=</span> <span>get_string</span><span>(</span><span>"</span><span>Ma</span><span>'</span><span>lumotlar o</span><span>'</span><span>zgartirilishiga rozimisiz? </span><span>"</span><span>)</span> <span>if</span> <span>s</span> <span>==</span> <span>"</span><span>Y</span><span>"</span> <span>or</span> <span>s</span> <span>==</span> <span>"</span><span>y</span><span>"</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Ha.</span><span>"</span><span>)</span> <span>elif</span> <span>s</span> <span>==</span> <span>"</span><span>N</span><span>"</span> <span>or</span> <span>s</span> <span>==</span> <span>"</span><span>n</span><span>"</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Yo</span><span>'</span><span>q.</span><span>"</span><span>)</span>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:
<span>i</span> <span>=</span> <span>0</span><span>while</span> <span>i</span> <span><</span> <span>3</span><span>:</span><span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span><span>i</span> <span>+=</span> <span>1</span><span>i</span> <span>=</span> <span>0</span> <span>while</span> <span>i</span> <span><</span> <span>3</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span> <span>i</span> <span>+=</span> <span>1</span>i = 0 while i < 3: print("meow") i += 1
Enter fullscreen mode Exit fullscreen mode
for
sikli yordamida yuqoridagi kodni yana ham soddalashtirishimiz mumkin:
<span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>3</span><span>):</span><span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span><span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>3</span><span>):</span> <span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span>for i in range(3): print("meow")
Enter fullscreen mode Exit fullscreen mode
Bu yerda i
ning qiymatini Python avtomatik ravishda oshirib boradi.
Shuningdek, yuqoridagi kodni quyidagicha yozishimiz mumkin:
<span>def</span> <span>main</span><span>():</span><span>meow</span><span>(</span><span>3</span><span>)</span><span>def</span> <span>meow</span><span>(</span><span>n</span><span>):</span><span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>n</span><span>):</span><span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span><span>main</span><span>()</span><span>def</span> <span>main</span><span>():</span> <span>meow</span><span>(</span><span>3</span><span>)</span> <span>def</span> <span>meow</span><span>(</span><span>n</span><span>):</span> <span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>n</span><span>):</span> <span>print</span><span>(</span><span>"</span><span>meow</span><span>"</span><span>)</span> <span>main</span><span>()</span>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.
<span>scores</span> <span>=</span> <span>[</span><span>72</span><span>,</span> <span>73</span><span>,</span> <span>33</span><span>]</span><span># O'rtacha qiymatni topamiz </span><span>average</span> <span>=</span> <span>sum</span><span>(</span><span>scores</span><span>)</span> <span>/</span> <span>len</span><span>(</span><span>scores</span><span>)</span><span>print</span><span>(</span><span>f</span><span>"</span><span>Average: </span><span>{</span><span>average</span><span>}</span><span>"</span><span>)</span><span>scores</span> <span>=</span> <span>[</span><span>72</span><span>,</span> <span>73</span><span>,</span> <span>33</span><span>]</span> <span># O'rtacha qiymatni topamiz </span><span>average</span> <span>=</span> <span>sum</span><span>(</span><span>scores</span><span>)</span> <span>/</span> <span>len</span><span>(</span><span>scores</span><span>)</span> <span>print</span><span>(</span><span>f</span><span>"</span><span>Average: </span><span>{</span><span>average</span><span>}</span><span>"</span><span>)</span>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:
<span>from</span> <span>cs50</span> <span>import</span> <span>get_int</span><span># Foydalanuvchidan qiymatlarni kiritishni so'raymiz </span><span>scores</span> <span>=</span> <span>[]</span><span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>3</span><span>):</span><span>score</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>Score: </span><span>"</span><span>)</span><span>scores</span><span>.</span><span>append</span><span>(</span><span>score</span><span>)</span><span># O'rtacha qiymatni topamiz </span><span>average</span> <span>=</span> <span>sum</span><span>(</span><span>scores</span><span>)</span> <span>/</span> <span>len</span><span>(</span><span>scores</span><span>)</span><span>print</span><span>(</span><span>f</span><span>"</span><span>Average: </span><span>{</span><span>average</span><span>}</span><span>"</span><span>)</span><span>from</span> <span>cs50</span> <span>import</span> <span>get_int</span> <span># Foydalanuvchidan qiymatlarni kiritishni so'raymiz </span><span>scores</span> <span>=</span> <span>[]</span> <span>for</span> <span>i</span> <span>in</span> <span>range</span><span>(</span><span>3</span><span>):</span> <span>score</span> <span>=</span> <span>get_int</span><span>(</span><span>"</span><span>Score: </span><span>"</span><span>)</span> <span>scores</span><span>.</span><span>append</span><span>(</span><span>score</span><span>)</span> <span># O'rtacha qiymatni topamiz </span><span>average</span> <span>=</span> <span>sum</span><span>(</span><span>scores</span><span>)</span> <span>/</span> <span>len</span><span>(</span><span>scores</span><span>)</span> <span>print</span><span>(</span><span>f</span><span>"</span><span>Average: </span><span>{</span><span>average</span><span>}</span><span>"</span><span>)</span>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:
<span># Ismlar ro'yxati </span><span>names</span> <span>=</span> <span>[</span><span>"</span><span>Carter</span><span>"</span><span>,</span> <span>"</span><span>David</span><span>"</span><span>,</span> <span>"</span><span>John</span><span>"</span><span>]</span><span># Foydalanuvchidan ism kiritishni so'raymiz </span><span>name</span> <span>=</span> <span>input</span><span>(</span><span>"</span><span>Name: </span><span>"</span><span>)</span><span># Ro'yxatdan qidiramiz </span><span>if</span> <span>name</span> <span>in</span> <span>names</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Topildi</span><span>"</span><span>)</span><span>else</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Topilmadi</span><span>"</span><span># Ismlar ro'yxati </span><span>names</span> <span>=</span> <span>[</span><span>"</span><span>Carter</span><span>"</span><span>,</span> <span>"</span><span>David</span><span>"</span><span>,</span> <span>"</span><span>John</span><span>"</span><span>]</span> <span># Foydalanuvchidan ism kiritishni so'raymiz </span><span>name</span> <span>=</span> <span>input</span><span>(</span><span>"</span><span>Name: </span><span>"</span><span>)</span> <span># Ro'yxatdan qidiramiz </span><span>if</span> <span>name</span> <span>in</span> <span>names</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Topildi</span><span>"</span><span>)</span> <span>else</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Topilmadi</span><span>"</span># 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.
<span>from</span> <span>cs50</span> <span>import</span> <span>get_string</span><span>people</span> <span>=</span> <span>{</span><span>"</span><span>Carter</span><span>"</span><span>:</span> <span>"</span><span>+1-617-495-1000</span><span>"</span><span>,</span><span>"</span><span>David</span><span>"</span><span>:</span> <span>"</span><span>+1-617-495-1000</span><span>"</span><span>,</span><span>"</span><span>John</span><span>"</span><span>:</span> <span>"</span><span>+1-949-468-2750</span><span>"</span><span>,</span><span>}</span><span># Kiritilgan ismni qo'yxatdan qidiramiz </span><span>name</span> <span>=</span> <span>get_string</span><span>(</span><span>"</span><span>Name: </span><span>"</span><span>)</span><span>if</span> <span>name</span> <span>in</span> <span>people</span><span>:</span><span>print</span><span>(</span><span>f</span><span>"</span><span>Telefon raqam: </span><span>{</span><span>people</span><span>[</span><span>name</span><span>]</span><span>}</span><span>"</span><span>)</span><span>else</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Topilmadi</span><span>"</span><span>)</span><span>from</span> <span>cs50</span> <span>import</span> <span>get_string</span> <span>people</span> <span>=</span> <span>{</span> <span>"</span><span>Carter</span><span>"</span><span>:</span> <span>"</span><span>+1-617-495-1000</span><span>"</span><span>,</span> <span>"</span><span>David</span><span>"</span><span>:</span> <span>"</span><span>+1-617-495-1000</span><span>"</span><span>,</span> <span>"</span><span>John</span><span>"</span><span>:</span> <span>"</span><span>+1-949-468-2750</span><span>"</span><span>,</span> <span>}</span> <span># Kiritilgan ismni qo'yxatdan qidiramiz </span><span>name</span> <span>=</span> <span>get_string</span><span>(</span><span>"</span><span>Name: </span><span>"</span><span>)</span> <span>if</span> <span>name</span> <span>in</span> <span>people</span><span>:</span> <span>print</span><span>(</span><span>f</span><span>"</span><span>Telefon raqam: </span><span>{</span><span>people</span><span>[</span><span>name</span><span>]</span><span>}</span><span>"</span><span>)</span> <span>else</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Topilmadi</span><span>"</span><span>)</span>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:
<span>from</span> <span>sys</span> <span>import</span> <span>argv</span><span>if</span> <span>len</span><span>(</span><span>argv</span><span>)</span> <span>==</span> <span>2</span><span>:</span><span>print</span><span>(</span><span>f</span><span>"</span><span>salom, </span><span>{</span><span>argv</span><span>[</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span><span>else</span><span>:</span><span>print</span><span>(</span><span>"</span><span>salom, dunyo</span><span>"</span><span>)</span><span>from</span> <span>sys</span> <span>import</span> <span>argv</span> <span>if</span> <span>len</span><span>(</span><span>argv</span><span>)</span> <span>==</span> <span>2</span><span>:</span> <span>print</span><span>(</span><span>f</span><span>"</span><span>salom, </span><span>{</span><span>argv</span><span>[</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span> <span>else</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>salom, dunyo</span><span>"</span><span>)</span>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:
<span>from</span> <span>sys</span> <span>import</span> <span>argv</span><span>for</span> <span>arg</span> <span>in</span> <span>argv</span><span>:</span><span>print</span><span>(</span><span>arg</span><span>)</span><span>from</span> <span>sys</span> <span>import</span> <span>argv</span> <span>for</span> <span>arg</span> <span>in</span> <span>argv</span><span>:</span> <span>print</span><span>(</span><span>arg</span><span>)</span>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:
<span>import</span> <span>sys</span><span>if</span> <span>len</span><span>(</span><span>sys</span><span>.</span><span>argv</span><span>)</span> <span>!=</span> <span>2</span><span>:</span><span>print</span><span>(</span><span>"</span><span>Buyruq qatori argumentini kiriting.</span><span>"</span><span>)</span><span>sys</span><span>.</span><span>exit</span><span>(</span><span>1</span><span>)</span><span>print</span><span>(</span><span>f</span><span>"</span><span>salom, </span><span>{</span><span>sys</span><span>.</span><span>argv</span><span>[</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span><span>sys</span><span>.</span><span>exit</span><span>(</span><span>0</span><span>)</span><span>import</span> <span>sys</span> <span>if</span> <span>len</span><span>(</span><span>sys</span><span>.</span><span>argv</span><span>)</span> <span>!=</span> <span>2</span><span>:</span> <span>print</span><span>(</span><span>"</span><span>Buyruq qatori argumentini kiriting.</span><span>"</span><span>)</span> <span>sys</span><span>.</span><span>exit</span><span>(</span><span>1</span><span>)</span> <span>print</span><span>(</span><span>f</span><span>"</span><span>salom, </span><span>{</span><span>sys</span><span>.</span><span>argv</span><span>[</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span> <span>sys</span><span>.</span><span>exit</span><span>(</span><span>0</span><span>)</span>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.
原文链接:CS50 – Week 6
暂无评论内容