2.1 Local moduli haqida boshlang’ich tushuncha va misollar
locale moduli - pythonda sonlarni formatlashda kelishuv bo’yicha ‘Angliya-Sakson’ tizimidan foydalanadi. Bu tizim sonlarning razryadlarini (uchta alohida bo’laklarga ajratilgandagi bo’laklarni) bir – biridan vergul bilan, butun va kasr qismni esa nuqta bilan ajratadi. Masalan, Yevropa qit’asida boshqa tizimdan foydalanishadi. 101 Bu tizimda esa razryadlar nuqta bilan, butun va kasr qism esa vergul bilan ajratiladi:
Sonlarni formatlashda belgilangan tartibni aniqlash muammosini yechish uchun Pythonda locale moduli aniqlangan. Mahalliy tartibni o’rnatish uchun locale modulida setlocale() funksiyasi aniqlangan. U ikkita parametr qabul qiladi:
Birinchi parametr funksiyada sonmi, valyutami yoki valyuta-sonmi qo’llanishini ko’rsatadi. Birinchi parametr sifatida quydagilardan birini berishimiz mumkin:
LC_ALL – hamma kategoriyalar bo’yicha mahalliylashtirishni ta`minlaydi;
LC_NUMERIC – sonlarni mahalliylashtirish;
LC_MONETARY – valyutani mahalliylashtirish;
LC_TIME – sana va vaqtni mahalliylashtirish;
LC_CTYPE – belgilarni yuqori yoki quyi registrga o’tkazishni mahalliylashtirish;
LC_COLLIATE – satrlarni solishtirishni mahalliylashtirish.
setlocale() funksiyaning ikkinchi parametri foydalanish zarur bo’lgan mahalliy tartibni ko’rsatadi. Windows OS da ikkita belgidan iborat ISO bo’yicha kodni ishlatish mumkin, masalan, “us” – AQSH, “de” – Germaniya, “ru” – Rossiya va “uz” – O’zbekiston uchun. Lekin, MacOS da esa davlat kodi va til kodini ko’rsatish zarur, masalan, “us-US” – AQSH, “de-DE” – Germaniya, “ru-RU” – Rossiya va “uz-UZ” – O’zbekiston uchun. Kelishuv bo’yicha “en-US” ishlatiladi. Bevosita, sonlarni va valyutalarni formatlash uchun locale moduli ikkita funksiya taqdim etadi:
currency(num) – valyutani formatlaydi;
format(str, num) – num sonnini str satridagi to‟ldiruvchi o‟rniga qo‟yadi; Quyidagi to‟ldiruvchilardan foydalaniladi:
d – butun sonlar uchun;
f – suzuvchi nuqtali sonlar uchun;
e – eksponentsial sonlarni yozish uchun.
Har bir to‟ldiruvchi oldidan % foiz belgisini qo‟yiladi, masalan:
Sonning kasr qismini chiqarishda to‟ldiruvchi oldidan, nuqtadan so‟ng nechta kasr qismda raqam aks etishini ko‟rsatish mumkin:
Sonlarni va valyutani mahalliylashtirishning o’zbek tili uchun qo’llanilishi:
import locale
locale.setlocale(locale.LC_ALL,"")
x=12345.6789
formatted=locale.format("%f",x)
print(formatted)
javob: 12345,678900
import locale
locale.setlocale(locale.LC_ALL,"")
x=12345.6789
formatted=locale.format("%.2f",x)
print(formatted)
javob: 12345,68
Agarda aniq kodning o’rniga ikkinchi parametrga bo’sh satr uzatilsa, u holda Python joriy ishchi mashinadagi tartibni oladi. getlocale() funksiyasi yordamida joriy tartibni olish mumkin:
Do'stlaringiz bilan baham: |