Asosiy qismga o‘tish

4. Arifmetika va sonlar

Nazariya

Amallar

AmalMa’nosiMisol
+ - *qo‘shish, ayirish, ko‘paytirish3 * 4 = 12
/kasrli bo‘lish7 / 2 = 3.5
//butun bo‘lish7 // 2 = 3
%qoldiq7 % 2 = 1
**daraja2 ** 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 //= 10

Manfiy sonlarda ehtiyot bo‘ling

print(-7 // 2)   # -4, ya’ni pastga yaxlitlanadi
print(-7 % 2)    #  1, Python‘da qoldiq musbat

Kasr sonlar aniq emas

print(0.1 + 0.2)          # 0.30000000000000004
print(0.1 + 0.2 == 0.3)   # False

Bu 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

Nazorat savollari

1 Nima chiqadi? Kod nima chiqaradi
print(7 // 2)
2 Nima chiqadi? Kod nima chiqaradi
print(7 / 2)
3 Sonning oxirgi raqamini qanday olish mumkin? Bitta to‘g‘ri javob
4 `n` juft ekanini qaysi shart tekshiradi? Bitta to‘g‘ri javob
5 Python‘da `0.1 + 0.2 == 0.3` ifodasi `True` qaytaradi. To‘g‘ri yoki noto‘g‘ri
6 Nima chiqadi? Kod nima chiqaradi
print(2 ** 10)
7 Sonni o‘nga bo‘lib, oxirgi raqamini olib tashlash uchun nima yoziladi? Bo‘sh joyni to‘ldirish
n = n ____ 10
8 Qaysi natijalar to‘g‘ri? Bir nechta to‘g‘ri javob

Bir nechta javob to‘g‘ri bo‘lishi mumkin.

9 `1234 % 10 + 1234 // 1000` ifodasining qiymati nechchi? Qisqa javob — yoziladi
10 Python‘da butun sonning kattaligi cheklangan, `2 ** 1000` xato beradi. To‘g‘ri yoki noto‘g‘ri

Javoblar serverda tekshiriladi. Katta-kichik harf, apostrof shakli va ortiqcha bo‘shliq ahamiyatsiz.