4. Arifmetika va sonlar
Nazariya
Amallar
| Amal | Ma’nosi | Misol |
|---|---|---|
+ - * | qo‘shish, ayirish, ko‘paytirish | 3 * 4 = 12 |
/ | kasrli bo‘lish | 7 / 2 = 3.5 |
// | butun bo‘lish | 7 // 2 = 3 |
% | qoldiq | 7 % 2 = 1 |
** | daraja | 2 ** 10 = 1024 |
/ har doim float qaytaradi, hatto 4 / 2 ham 2.0 beradi.
Qoldiq nima uchun kerak
% 2 — juft/toqni aniqlash. % 10 — oxirgi raqam. // 10 — oxirgi
raqamni olib tashlash. Shu ikkitasi bilan sonning raqamlarini birma-bir
ajratib olish mumkin:
n = 1234
while n > 0:
print(n % 10) # 4, 3, 2, 1
n //= 10Manfiy sonlarda ehtiyot bo‘ling
print(-7 // 2) # -4, ya’ni pastga yaxlitlanadi
print(-7 % 2) # 1, Python‘da qoldiq musbatKasr sonlar aniq emas
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # FalseBu Python‘ning kamchiligi emas — ikkilik sanoq sistemasida 0.1 ni
aniq yozib bo‘lmaydi. Shuning uchun pul va sanoqni butun sonda
saqlagan ma’qul.
Katta sonlar
Python‘da int cheksiz: 2 ** 1000 bemalol hisoblanadi. C++ va
Java‘da bunday emas — u yerda long long ham chegaraga ega.
Misol
n = int(input())
yigindi = 0
while n > 0:
yigindi += n % 10
n //= 10
print(yigindi)
Mashq masalalari
| ✓ | Kod | Masala | Qiyinlik |
|---|---|---|---|
| A104 | Raqamlar yig‘indisi | Oson | |
| PY04-1 | Soat, daqiqa, soniya | Oson | |
| PY04-10 | Chetki raqamlar o‘rnini almashtirish | Oson | |
| PY04-11 | Ikkining katta darajasi | Oson | |
| PY04-12 | Soat millari orasidagi burchak | O‘rta | |
| PY04-13 | Uchburchak yuzi | O‘rta | |
| PY04-14 | Har doim musbat qoldiq | O‘rta | |
| PY04-15 | Ikki gilam | Qiyin | |
| PY04-2 | Uch xonali son raqamlari | Boshlang‘ich | |
| PY04-3 | Olmalarni bo‘lish | Boshlang‘ich | |
| PY04-4 | Avtobuslar | Oson | |
| PY04-5 | Darajaning oxirgi raqami | Oson | |
| PY04-6 | Selsiydan Farengeytga | Oson | |
| PY04-7 | Aniq o‘rtacha | Oson | |
| PY04-8 | Arifmetik progressiya | Oson | |
| PY04-9 | Qo‘shimcha ish haqi | Oson |