Intervyu amaliyoti uchun 5 ta Python dasturlari

Python dunyodagi eng mashhur dasturlash tillardan biriģa aylandi. Sababi: uni o’rganish oson, foydalanish imkoniyatlari keng va uning rivojlanishiga hissa qo’shadigan juda ko’p dasturchilar hamjamiyatiga ega. Agar siz Python intervyusiga tayyorgarlik ko’rayotgan bo’lsangiz, o’z fikrlash tarzingizga ega bo’lishingiz uchun ba’zi dasturlash muammolarini mashq qilganingiz ma’qul.

Foydalanishingiz mumkin bo’lgan 5 ta Python dasturlari:

1.Fibonachchi ketma-ketligi

Rekursiya yordamida Fibonachchi ketma-ketligini yozish uchun Python dasturini yozing:

Fibonachchi ketma-ketligi – bu har bir raqam oldingi ikkita raqamning yig’indisi bo’lgan raqamlar qatoridir. Seriyadagi birinchi ikkita raqam 0 va 1 dir.

Python’da rekursiya yordamida Fibonachchi ketma-ketligini yaratish uchun biz ”n” butun sonini kirish sifatida qabul qiladigan va ketma-ketlikdagi ”n” sonni qaytaradigan rekursiv funksiyani aniqlashimiz mumkin. Masalan:

def fibonachchi (n): 
  if n <= 0: 
    return 0     
  elif n == 1:
    return 1     
  else : fibonachchi(n - 1) + fibonachchi(n - 2)
BAT

Buni amalda biz birinchi navbatdagi “n” ning 0 dan kichik yoki tengligini tekshiramiz. Agar tóg’ri bo’lsa, biz ketma-ketlikdagi birinchi raqam bo’lgan 0 ni qaytaramiz. Agar “n” 1 ga teng bo’lsa, biz ketma-ketlikdagi raqam bo’lgan 1 ni qaytaramiz. Aks holda, fibonachchi funksiyasini “n-1” va “n-2” bilan rekursiv argument sifatida chaqiramiz va uni ketma-ketlikdagi ‘n’ sonni olish uchun qo’shamiz.

Funksiyani sinab ko’rish uchun biz uni “n” ning turli qiymatlari bilan chaqirishimiz mumkin:

>>> fibonachchi(0)
0
>>> fibonachchi(1)
1
>>> fibonachchi(10)
55
>>> fibonachchi(20)
6765
BAT

Yodda saqlang, ushbu dastur eksponensial vaqt murakkabligiga ega, ya’ni “n” ning katta qiymatlari uchun u juda sekin ishlashi mumkin. Agar siz “n” ning katta qiymatlari uchun Fibonachchi ketma-ketligini yaratishingiz kerak bo’lsa, uning o’rniga kreativ yondashuv yoki yodlangan rekursiv yondashuvdan foydalanishni ko’rib chiqishingiz mumkin.

2. Palindrom tekshiruvi

Berilgan satr palindrom yoki yo’qligini tekshirish uchun Python dasturini yozing:

Palindrom – bu bir xil oldinga va orqaga o’qiladigan so’z, raqam yoki boshqa belgilar ketma-ketligi. Misol uchun, “353” soni yoki “aka” sózi palindromdir, chunki ular oldinga va orqaga bir xil o’qiladi.

Pythonda berilgan satr palindrom tekshiruv uchun satr kirishga qabul qilinadi va agar satr palindrom bo’lsa, True, aks holda False aniqlashni qaytaradigan funksiyani aniqlashimiz mumkin. Masalan:

def is_palindrome(s):
  return s == s[::-1]
Python

Ushbu amalda test satrni biz satrni tuzatish va uni asl satr bilan solishtirish uchun Pythonning kesish sintaksisidan foydalanamiz. Agar ular teng bo’lsa, funksiya True’ni qaytaradi; aks holda, u False’ni qaytaradi.

Funksiyani sinab ko’rish uchun biz uni turli qatorlar bilan chaqirishimiz mumkin:

>>> is_palindrome("353")  
True
>>> is_palindrome("salom") 
False  
>>> is_palindrome("12321") 
True
BAT

Unutmang, ushbu dastur tizimini satrida faqat harf-raqamli belgilar (harflar va raqamlar) mavjud bo’lsa amalga oshirish mumkin. Agar kirish satrida boshqa vositalar (masalan, bo’shliqlar, tinish belgilar yoki maxsus belgilar) bo’lishi mumkin bo’lsa, ularni to’g’ri boshqarish uchun dasturni o‘zgartirishingiz kerak bo’lishi mumkin.

3. Bosh sonni tekshirish

Berilgan son tub yoki yo‘qligini tekshirish uchun Python dasturini yozing:

Tub son 1 dan katta boʻlgan musbat butun son boʻlib, 1 va oʻzidan boshqa musbat butun son boʻluvchilari yoʻq. Masalan, 2, 3, 5, 7, 11 va 13 tub sonlardir.

Pythonda berilgan son tub ekanligini tekshirish uchun biz ”n” butun sonini kirish sifatida qabul qiladigan va agar ”n” tub bo‘lsa True, aks holda False qiymatini qaytaradigan funksiyani aniqlashimiz mumkin. Masalan:

def is_prime(n):  
  if n <= 1:       
    return  False
  elif n == 2:
    return True
  else:
    for i in range(2, int(n** 0.5) + 1):
      if n % i == 0:          
        return False
      else:         
        return True
Python

Buni amalga oshirishda biz birinchi navbatda “n” ning 1dan kichik yoki teng ekanligini tekshiramiz.

Agar shunday bo’lsa, biz False qaytaramiz, chunki 1 tub son emas. Agar “n” 2 ga teng bo’lsa, biz True’ni qaytaramiz, chunki 2 yagona juft tub sondir. Aks holda, 2 dan “n” ning kvadrat ildizigacha (eng yaqin butun songa yaxlitlangan) butun sonlarni takrorlash uchun for siklidan foydalanamiz.

Ushbu diapazondagi har bir “i” butun soni uchun “n” ning “i” ga bo’linishini tekshiramiz. Agar shunday bo’lsa, biz False’ni qaytaramiz, chunki “n” ning 1 va o’zidan boshqa musbat butun son bo’luvchiga ega. Agar biz diapazondagi barcha butun sonlarni musbat bo’luvchini topmasdan tekshirib ko’rgan bo’lsak, biz True deb qaytaramiz, chunki “n” tub sondir.

Funksiyani sinab ko’rish uchun biz uni “n” ning turli qiymatlari bilan chiqarishimiz mumkin:

>>> is_prime( 1 )
False 
>>> is_prime( 2 )
True  
>>> is_prime( 3 )
True  
>>> is_prime( 4 )
False  
>>> is_prime( 17 )  
True  
>>> is_prime( 100 )
False
BAT

4. Faktorial kalkulyator

Rekursiya yordamida berilgan sonning faktorialini hisoblash uchun Python dasturini yozing:

Manfiy bo’lmagan ”n” butun sonning faktoriali “n” dan kichik yoki teng barcha musbat sonlarning ko’paytmasidir. Masalan, 5 ning faktoriali 5 * 4 * 3 * 2 * 1 = 120.

Pythonda rekursiya yordamida berilgan sonning faktorialini hisoblash uchun biz “n” butunini kirish sifatida qabul qilish va “n” ning faktorialini qayta tiklash funksiyasini boshqarishimiz mumkin. Mana bir misol amalga oshirish:

def faktorial(n):    
  if n == 0 :
    return 1
  else:
    return n * faktorial(n-1)     
Python

Buni amalga oshirishda biz birinchi navbatda “n” ning 0 ga tengligini tekshiramiz. Agar shunday bo’lsa, biz 1 ni qaytaramiz, chunki 0 ning faktoriali 1 bo’lishi aniqlangan. Aks holda, biz “n-1” bilan faktorial funksiyani kirish sifatida rekursiv chaqiramiz va ko’paytiramiz. “n” ning faktorialini olish uchun natija “n” ga teng.

Funksiyani sinab ko’rish uchun biz uni “n” ning turli qiymatlari bilan chiqarishimiz mumkin:

>>> faktorial( 0 ) 
1  
>>> faktorial ( 1 )  
1 
>>> faktorial ( 5 ) 
120  
>>> faktorial ( 10 )  
3628800
BAT

Unutmang, ushbu dastur O(n) vaqt murakkabligiga ega, ya’ni u “n” ning katta qiymatlari uchun juda sekin ishlashi mumkin.

5. Anagramma tekshiruvi: berilgan ikkita satr bir-birining anagrammasi ekanligini tekshirish uchun Python dasturini yozing.

Anagramma – bu boshqa so’z yoki iboraning harflarini o’zgartirish orqali hosil bo’lgan so’z yoki ibora, barcha asl harflarni bir marta ishlatadi.

Python da berilgan ikkita satr bir-birining anagrammasi ekanligini bilish uchun biz ikkita satrni kirish orqali qabul qilamiz va agar satrlar anagramma bo’lsa, True, aks holda False javoblarini qaytaradigan funksiyani aniqlashimiz mumkin. Mana bir misol amalga oshirish:

def is_anagram(s1,s2):  
  return sort(s1) == sort(s2)
Python

Ushbu amaliyotda bir satrdagi qoidalarni saralash va tartiblangan satrlarni solishtirish uchun Python’ning o’zgarishida biz tartiblangan funksiyasidan foydalanamiz. Agar ular teng bo’lsa, funksiya True’ni qaytaradi: aks holda, u False’ni qaytaradi.

Funksiyani sinab ko’rish uchun biz uni turli qatorlar bilan chaqirishimiz mumkin:

>>> is_anagram ( "listen" , "silent" )
True
>>> is_anagram ( "hello" , "world" )
False
>>> is_anagram ( "restful" , "fluster" )
True
BAT

Mavzuga oid maqolalar