Rekursiv funksiyalar, modullar, random va datetime
Modullar bilan ishlash
Last updated
Was this helpful?
Modullar bilan ishlash
Last updated
Was this helpful?
Bunday funksiyalar o'z o'ziga qayta murojaat qila oladigan funksiyalardir.
Bularga misol sifatida faktoryal va Fibonachi sonlarini ko'rsak bo'ladi.
Modullarni chaqirib olamiz (main.py)
Random moduli tasodifiy sonlar bilan ishlash uchun qulay funksiyalarga boy. Keing ulardan ayrimlari bilan tanishamiz.
randint(a,b)
Bu funksiya a va b oraligi'da tasodifiy butun son qaytaradi
choice(x)
x
ning ichidan tasodifiy qiymatni qaytaruvchi funksiya. Bunda x
bir necha elementdan iborat o'zgaruvchi (matn, ro'yxat) bo'lishi kerak.
Sonlar ro'yhatidan tasodifiy son tanlashda shundan foydalanamiz
shuffle(x)
x
ichidagi elementlarni tasodifiy tartibda qaytaruvchi funksiya. Bunda x
bir necha elementdan iborat o'zgaruvchi (matn, ro'yxat) bo'lishi kerak.
Ushbu modul yordamida Pythonda sanalar bilan ishlashimiz mumkin. Moduldan foydalanishdan avval uni import qilamiz. Har gal moduldan foydalanishda datetime
deb qayta yozmaslik uchun, import qilishda modulga dt
nomini beramiz.
Hozirgi vaqt va sanani koʻrish uchun datetime.now()
moduliga murojat qilamiz:
Kurib turganingizdek, natija yil, oy, kun soat, minut, sekund va millisekund koʻrinishida chiqdi. Biz bu qiymatlardan istaganimzni maxsus metodlar yordamida ajratib olishimiz mumkin:
Agar bugungi kunning sanasi talab qilinsa datetime
moduli ichidagi date.today()
moduliga murojat qilamiz.
Agar biror sanani qoʻlda kiritish talab qilinsa .date() metodiga kerakli sanani (yil, oy, kun) koʻrinishida kiritamiz.
Faqatgina vaqt bilan ishlash uchun .datetime.now().time()
metodiga murojat qilishimiz mumkin:
Istalgan vaqtni qoʻlda kiritish uchun esa .time() metodiga kerakli vaqtni (soat, minut, sekund) koʻrinishida beramiz:
Ayirish operatori yordamida sanalalar va vaqtlar orasidagi farqni hisoblashimiz mumkin:
Huddi shu kabi ikki vaqt oraligʻini sekundlarda yoki soatlarda ham koʻrishimiz mumkin:
Yuqorida sanalar AQSh standartiga koʻra, yil-oy-kun koʻrinishida chiqayapti. Sanani oʻzimizga moslab chiqarish uchun .strftime()
metodini chaqiramiz, va sanani oʻzimizga qulay formatda chiqaramiz.
Natija:
Ushbu sinflar doirasida sana va vaqt obyektlarini formatlash uchun strftime(format) metodi mavjud. Bu metod formatlashni ko'rsatuvchi bitta parametr qabul qiladi. Formatlashni amalga oshirishimiz uchun quyida aniqlangan formatlash kodlaridan birini ishlatish mumkin:
%a – hafta kuni uchun abbreviatoriya. Masalan, Wed – Wednesday so‟zidan (kelishuv bo‟yicha ingiliz tilidagi so‟zlar ishlatiladi);
%A – hafta kun to‟liq, masalan, Wednesday;
%b – oy kuni uchun abbreviatoriya. Masalan, Oct (October so‟zining qisqartmasi);
%B – oy nomi to‟liq, masalan, October;
%d – oy kuni, nol qo‟shilgan, masalan, 01;
%m – oy raqami, nol qo‟shilgan, masalan, 05;
%y – yil ikkita raqamdan iborat;
%Y – yil to'rta raqamdan iborat;
%H – soat 24 soatlik formatda, masalan, 13
%I – soat 12 soatlik formatda, masalan, 01
%M – Minut;
%S – sekund.
%f – mikrosekund;
%p - AM/PM ko‟rsatgich;
%c – sana va vaqt, joriy mahalliy bo‟yicha formatlangan;
%x – sana, joriy mahalliy bo‟yicha formatlangan;
%X - vaqt, joriy mahalliy bo‟yicha formatlangan.
Rekursiv funskiyadan foydalanib ikkita butun sonlarning Eng Katta Umumiy Bo'luvchisi (EKUB) ni topish.
locale va decimal modullari haqida to'liq ma'lumot olish.
datetime moduliga tegishli timedelta haqida o'rganish