import calendar
c = calendar.LocaleTextCalendar(0, "Uzbek_Uzbekistan.1251")
c.prmonth(2021, 12, 4)
♦ formatyear([, w=2] [, 1=1] [, s=6] [, m=3]) — koʻrsatilgan yil uchun matn shaklidagi taqvimni qaytaradi. Uning parametrlari quyidagicha:
• w — kun uchin maydon (odatda ‑ 2);
• 1 — satrlararo interval (odatda ‑ 1);
• s — oylar orasidagi interval (odatda ‑ 6);
• m — bitta satrdagi oylar soni (odatda ‑ 3).
♦ pryear([, w=2] [, 1=1] [, c=6] [, m=3]) — formatyear() metodiga oʻxshaydi. Ammo taqvimni toʻgʻridan-toʻgʻri ekranga uzatadi.
Taqvim uchun foydali boshqa finksiyalar quyidagi jadvalda keltirilmoqda.
setfirstweekday(“Haftaning birinchi kuni”)
|
taqvim uchun haftaning birinchi kunini (0 dan 6 gacha) belgilaydi yoki qaytaradi. Sonlar oʻrniga Monday, Tuesday, Wednesday, Thursday, Friday, Saturday yoki Sunday konstantalaridan foydalanish mumkin.
|
month (, [, [, l])
|
yilning koʻrsatilgan oyi uchun matnli taqvim.
|
monthcalendar (, )
|
koʻrsatilgan oy haftasi boʻycha taqsimlangan kunlarning ikki oʻlchovli massivi. Boshqa oyning kunlari 0 bilan ifodalanadi.
|
monthrange (, )
|
hafta kuni nomeri va oydagi kunlar sonidan iborat ikki elementli kortej.
|
calendar([, w] [, 1] [, c] [, m])
|
koʻrsatilgan yil uchun matnli taqvim.
|
rgsal([, w][, l][, c][, m])
|
calendar() funksiyasi kabi ishlaydi, faqat taqvim toʻgʻridan-toʻgʻri ekranga uzatiladi.
|
weekheader()
|
hafta kunlarining joriy mahalliy qisqartma nomlari.
|
isleap()
|
kabisa yili uchun ‑ True, aks hoda ‑ False.
|
leapdays(, )
|
koʻrsatilgan diapazondagi kabisa yillari sonini qaytaradi.
|
weekday (,,)
|
hafta kuni nomeri (dushanba ‑ 0, yakshanba - 6).
|
timegm()
|
davr boshidan boshlab oʻtgan sekundlar.
|
Calendar moduli dasturchilarga quyidagi hususiyatlarni ham taqdim etadi:
dayname
|
hafta kunlarining joriy davlat tilidagi nomlari roʻyhati.
|
day_abbr
|
hafta kunlarining joriy davlat tilidagi qisqartma nomlari roʻyhati.
|
monthname
|
oylarining joriy davlat tilidagi nomlari roʻyhati.
|
month_abbr
|
oylarining joriy davlat tilidagi qisqartma nomlari roʻyhati.
|
10.6. Kod parchasining bajarilish vaqtini oʻlchash
Timeit moduli optimallashtirish maqsadida kodning unchalik katta boʻlmagan parchalarining bajarilish vaqtini oʻlchash imkonini beradi.
Oʻlchashlar Timer klassi yordamida amalga oshiriladi. Uning umumiy koʻrinishi quyidagicha:
Timer([stmt='pass'][, setup='pass'][, timer=]).
Bu yerda stmt parametri sifatida bajarilish vaqti aniqlanayotgan kod yoziladi; kod parchasining bajarilish vaqtini timeit ([number=1000000]) metodi yordamida olish mumkin; number parametrida esa takrorolashlar soni koʻrsatiladi.
Namuna uchun 1 dan 10000 gacha boʻlgan sonlarning yigʻindisi hisoblanaytgan boʻlsin. Ishni uch hil usul bilan tashkil qilish mumkin.
from timeit import Timer
code1 ="""\
i, j = 1, 0
while i < 10001:
j += i
i += 1
"""
tl = Timer(stmt=code1)
print("while:" , tl.timeit(number=10000))
code2 = """\
j = 0
for i in range(1, 10001):
j += i
"""
t2 = Timer(stmt=code2)
print("for:", t2.timeit(number=10000))
code3 = """\
j = sum(range(1, 10001))
"""
t3 = Timer(stmt=code3)
print("sum:", t3.timeit(number=10000))
input ()
Ushbu kod kompyuterning quvvatiga bogʻliq ravishda quyidagi tahmimiy natijani beradi:
Koʻrinib turibdiki, while tsikliga nistaban for ikki marta tezroq ishlaydi; bu holda sum() ning bahosi yoʻq.
Repeat([repeat=3] [, number=1000000]) metodi timeit() metodini koʻrsatilgan marta takrorlaydi va natija beradi; number parametri timeit() metodiga uzatadi.
Quyidagi kodda namuna uchun 1 dan 10000 gacha boʻlgan sonlardan iborat satrli roʻyhat qurilmoqda.
from timeit import Timer
code1 = """\
arr1 = []
for i in range(1, 10001) :
arr1.append(str(i))
"""
t1 = Timer(stmt=code1)
print("append:", t1.repeat(repeat=3, number=2000))
code2 = """\
arr2 = [str(i) for i in range(1, 10001)]
"""
t2 = Timer(stmt=code2)
print("generator:", t2.repeat(repeat=3, number=2000))
input()
Dasturning tahminiy naytijasi:
Koʻrinib tiribdiki, generatorlar tezroq ishlar ekan.
Do'stlaringiz bilan baham: |