Sonlar — har qanday hisob-kitobning asosi. Xoh oddiy kalkulyator, xoh onlayn do’kon kabi murakkab hisob-kitob tizimi bo’lsin, dastur o’z mag’zida sonlar bilan ishlaydi. Shuning uchun Python sonlarni qanday tasavvur qilishini puxta bilib olishimiz shart.
Son — matematik miqdorni ifodalovchi qiymat. Python’da sonlar uch asosiy turga bo’linadi: butun sonlar (int), kasr sonlar (float) va kompleks sonlar (complex).
Uch turdagi sonlar
Keling, uchala turni ham amalda ko’ramiz va type() orqali tasdiqlaymiz:
butun = 26
kasr = 3.14
kompleks = 2 + 3j
print(type(butun))
print(type(kasr))
print(type(kompleks))
<class 'int'>
<class 'float'>
<class 'complex'>
int — chegaralanmagan butun sonlar (Python juda katta sonlarni ham bemalol saqlaydi). float — nuqtali kasr sonlar. complex — mavhum qismli sonlar bo’lib, muhandislik va ilmiy hisoblarda qo’llaniladi.
Arifmetik amallar
Sonlar ustidagi asosiy amallarni jadvalda jamlaymiz:
| Amal | Belgi | Misol | Natija |
|---|---|---|---|
| Qo’shish | + |
10 + 3 |
13 |
| Ayirish | - |
10 - 3 |
7 |
| Ko’paytirish | * |
10 * 3 |
30 |
| Bo’lish | / |
10 / 3 |
3.333... |
| Butun bo’lish | // |
10 // 3 |
3 |
| Qoldiq | % |
10 % 3 |
1 |
| Daraja | `` | 10 ** 3 |
1000 |
Ikki nuqtaga alohida e’tibor bering. Oddiy bo’lish (/) doim float qaytaradi, hatto son to’liq bo’linsa ham. Butun bo’lish (//) esa kasr qismini tashlab, faqat butun qismni beradi:
print(10 / 2)
print(10 // 3)
print(10 % 3)
print(2 ** 10)
5.0
3
1
1024
Qoldiq amali (%) amaliyotda juda foydali — masalan, sonning juft yoki toq ekanini aniqlashda (son % 2 == 0).
Turlarni sonli o’tkazish
Sonlarni ham bir-biriga aylantirish mumkin. int() kasr sonning kasr qismini tashlab yuboradi (yaxlitlamaydi), float() esa butunni kasrga aylantiradi:
narx = 3.99
print(int(narx)) # kasr qism tashlanadi
print(float(10)) # butun -> kasr
3
10.0
Diqqat: int(3.99) natijasi 4 emas, 3 bo’ladi. To’g’ri yaxlitlash uchun round() funksiyasidan foydalaning:
print(round(3.99))
print(round(3.14159, 2)) # ikkinchi argument — kasrdan keyingi xonalar soni
4
3.14
Katta sonlar va aniqlik
Python butun sonlar uchun aniqlik chegarasini bilmaydi — istagancha katta sonni saqlaydi:
katta = 2 ** 100
print(katta)
1267650600228229401496703205376
Biroq kasr sonlar bilan ishlashda ehtiyot bo’ling: 0.1 + 0.2 aniq 0.3 bermaydi (kompyuterdagi ikkilik tasavvur tufayli). Pul bilan ishlaganda — masalan, moliyaviy hisob-kitoblarda — bu muammoni hal qilish uchun maxsus decimal moduli qo’llaniladi.
Xulosa
Bu darsda Python’ning uch turdagi sonlari, arifmetik amallar, butun va oddiy bo’lish farqi, hamda round() va tur o’tkazish bilan tanishdik. Sonlar har qanday hisob-kitobning asosi. Keyingi darsda satrlar — matn bilan ishlash olamiga o’tamiz.