Pythonni mustaqil


-bob: Sonlar: butun, haqiqiy hamda kompleks sonlar



Download 2,79 Mb.
bet20/109
Sana31.12.2021
Hajmi2,79 Mb.
#223336
1   ...   16   17   18   19   20   21   22   23   ...   109
Bog'liq
PYTHONNI MUSTAQIL O‘RGANAMIZ

10-bob: Sonlar: butun, haqiqiy hamda kompleks sonlar
Python 3 da quyidagi ko‘rinishdagi sonlar mavjud: butun, haqiqiy va kompleks. Sonlar bilan ish-lash va ular ustida amallarni bajarish.
Butun sonlar (int)
Python 3 dagi sonlar boshqa sonlardan hech qanday farq qilmaydi. Ular ustida eng oddiy matem-atik amallarning barchasini bajarish mumkin:



Operator

Ma’nosi







x + y

qo‘shish

x – y

ayirish

x * y

ko‘paytirish

x / y

bo‘lish

x // y

bo‘lish natijasining butun qismi

x % y

bo‘lish natijasining qoldiq qismi

–x

sonning ishorasini almashtirish

abs(x)

sonning moduli

divmod(x, y)

(x // y va x % y) juftligi

x ** y

darajaga ko‘tarish

pow(x, y [, z])

xy modul bo‘yicha (modul ko‘rsatilgan bo‘lsa)

Bundan tashqari Python 3 da ko‘plab boshqa daturlash tillaridan farqli ravishda uzun sonlar arif-metikasi ham mavjud (lekin bu xotira sarfini oshiradi).





  • 5 * 2

10


  • 20/3

6.666666666666667




  • 20//3

6


  • 20%3

2


  • 3**4

81


  • pow(3, 4)

81


  • pow(3, 4, 27)

0


  • 3 ** 150

369988485035126972924700782451696644186473100389722973815184405301748


249

28



Bitli operatsiyalar

Bundan tashqari, butun sonlar ustida bitli amallarni ham bajarish mumkin:




Operator

Ma’nosi







x | y

bitli yoki

x ^ y

bitli boshqasini inkor etuvchi yoki

x & y

bitli va

x << y

bitli chapga siljish

x >> y

bitli o‘ngga siljish

~ x

bitlar inversiyasi


Qo‘simcha metodlar
int.bit_length() — ishora va boshidagi nollarni hisobga olmagan holda sonni ikkilik sanoq tizimida tasvirlash uchun kerakli bitlar soni.



  • for i in 'hello world': if i == 'o':

break
print(i * 2, end='')


hheellll
int.to_bytes(length, byteorder, *, signed=False) – shu sonni tasvirlaydigan baytlar satrini qaytaradi.



  • (1024).to_bytes(2, byteorder='big') b'\x04\x00'




  • (1024).to_bytes(10, byteorder='big') b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'




  • (-1024).to_bytes(10, byteorder='big', signed=True) b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'




  • x = 1000




  • x.to_bytes((x.bit_length() // 8) + 1, byteorder='little') b'\xe8\x03'

int.from_bytes(bytes, byteorder, *, signed=False) classmetodi – shu baytlar satridagi son-ni qaytaradi.





  • int.from_bytes(b'\x00\x10', byteorder='big')

16


  • int.from_bytes(b'\x00\x10', byteorder='little') 4096




  • int.from_bytes(b'\xfc\x00', byteorder='big', signed=True) -1024

29


  • int.from_bytes(b'\xfc\x00', byteorder='big', signed=False) 64512




  • int.from_bytes([255, 0, 0], byteorder='big')

16711680
Sanoq tizimlari


Maktabda “Informatika” fanidan saboq olganlar sonlar 10 lik sanoq tizimidan boshqa tizimlarda ham tasvirlanishi mumkinligini yaxshi biladi. Masalan, kompyuterda 2 lik sanoq tizimidan foydal-aniladi, masalan, 19 soni ikkilik sanoq tizimida 10011 ko‘rinishda bo‘ladi. Bundan tashqari, ba’zan sonlarni bir sanoq tizimidan boshqasiga o‘tkazishga ham to‘g‘ri kelishi mumkin. Pyhtonda buning uchun bir nechta funksiyalar mavjud:


  • int([object], [sanoq tizimi asosi]) – 10 lik sanoq tizimidagi butun songa aylantirish. Boshqa ko‘rsatma berilmasa, sanoq tizimi 10 lik deb qaraladi, lekin, 2 likdan 36 lik sanoq tizimlarigacha ko‘rsatish ham mumkin.




  • bin(x) – butun sonni 2 lik sanoq tizimidagi satrga aylantirish.




  • hex(x) – butun sonni 16 lik sanoq tizimidagi satrga aylantirish.




  • oct(x) – butun sonni 8 lik sanoq tizimidagi satrga aylantirish.



Misollar


  • a = int('19') # satrni songa aylantiramiz




  • b = int('19.5') # Satr butun son emas Traceback (most recent call last):

File "", line 1, in


ValueError: invalid literal for int() with base 10: '19.5'


  • c = int(19.5) # Kasr songa nisbatan qo‘llanilganda uning kasr

qismini kesib tashlaydi.




  • print(a, c) 19 19




  • bin(19)

'0b10011'




  • oct(19) '0o23'




  • hex(19) '0x13'




  • 0b10011 # Sonli o‘zgarmaslar (konstantalar)ni shunday ko‘rinishda ham yozish mumkin

19


  • int('10011', 2)

19


  • int('0b10011', 2)

19

30





Haqiqiy sonlar (float)
Haqiqiy sonlar bilan ham butun sonlar bilan bajarish mumkin bo‘lgan barcha amallarni bajarish mumkin. Lekin (kompyuterda sonlarning tasvirlanish metodlari sababli) haqiqiy sonlar unchalik aniq emas va bunday holat ayrim xatoliklarga olib kelishi mumkin.



  • 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 0.9999999999999999

Aniqroq hisob-kitoblar uchun boshqa obyektlar qo‘llaniladi (masalan, Decimal va Fraction). Bun-dan tashqari, haqiqiy sonlar bilan ishlaganda, uzun sonlar imkoniyati qollanilmaydi.




  • a = 3 ** 1000




  • a + 0.1

Traceback (most recent call last):


File "", line 1, in
OverflowError: int too large to convert to float

Download 2,79 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   109




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish