Arifmetik amallar

Kompyuterlar dastlab katta hisob-kitoblar uchun yaratilgan. Python ham ajoyib kalkulyator: u qo'shadi, bo'ladi, qoldiqni topadi va darajaga ko'taradi. Bu darsda shu amallarni va ularning kutilmagan foydali tomonlarini o'rganamiz.

Bu darsda

  • Yettita arifmetik amal: + - * / // % **
  • Amallar tartibi va qavslar
  • Qisqartirilgan yozuv: +=, -= va boshqalar
  • round(), abs(), min(), max() funksiyalari
  • Amaliy masalalar: vaqtni hisoblash, raqamlar bilan ishlash

Asosiy amallar

BelgiAmalMisolNatija
+Qo'shish7 + 310
-Ayirish7 - 34
*Ko'paytirish7 * 321
/Bo'lish7 / 23.5
//Butun bo'lish7 // 23
%Bo'linmaning qoldig'i7 % 21
**Darajaga ko'tarish7 ** 249
print(15 + 4)
print(15 - 4)
print(15 * 4)
print(15 / 4)
19
11
60
3.75

Ko'paytirish uchun × emas, yulduzcha *, bo'lish uchun esa ÷ emas, qiya chiziq / ishlatiladi — bu belgilar klaviaturada bor.

Oddiy bo'lish har doim kasr son beradi

/ amali natijasi doim float bo'ladi — hatto son butunlay bo'linsa ham:

print(10 / 2)
print(9 / 3)
5.0
3.0

Butun bo'lish va qoldiq

Maktabda «qoldiqli bo'lish»ni o'rgangansiz: 17 ni 5 ga bo'lsak, 3 chiqadi va 2 qoladi. Python'da buning uchun ikkita amal bor:

17 ta olmani 5 ta bolaga teng bo'lyapsiz. Har biriga 17 // 5 = 3 tadan olma tegadi, 17 % 5 = 2 ta olma esa ortib qoladi.

olmalar = 17
bolalar = 5
print("Har biriga:", olmalar // bolalar)
print("Ortib qoldi:", olmalar % bolalar)

Qoldiq amali % birinchi qarashda uncha kerak emasdek tuyuladi, lekin dasturlashda u juda ko'p ishlatiladi:

daqiqa = 135
soat = daqiqa // 60
qolgan = daqiqa % 60
print(daqiqa, "daqiqa =", soat, "soat", qolgan, "daqiqa")
135 daqiqa = 2 soat 15 daqiqa

Darajaga ko'tarish

** amali sonni darajaga ko'taradi: 2 ** 3 = 2 × 2 × 2 = 8. Ildiz chiqarish uchun esa kasr darajadan foydalanish mumkin: 16 ** 0.5 = 4.0.

print(2 ** 10)
print(5 ** 2)
print(16 ** 0.5)
print(2 ** 64)

Oxirgi natijaga qarang: Python juda katta butun sonlar bilan ham bemalol ishlaydi.

Amallar tartibi

Python matematikadagi kabi amallar tartibiga rioya qiladi:

  1. Avval qavs ichidagilar.
  2. Keyin daraja **.
  3. Keyin ko'paytirish va bo'lish: *, /, //, %.
  4. Oxirida qo'shish va ayirish: +, -.

Bir xil darajadagi amallar chapdan o'ngga bajariladi.

print(2 + 3 * 4)
print((2 + 3) * 4)
print(10 - 4 - 3)
print(2 * 3 ** 2)
14
20
3
18

Tartibga ishonchingiz komil bo'lmasa — qavs qo'ying. Ortiqcha qavs xato emas, aksincha, kodni o'qishni osonlashtiradi: (narx * soni) + yetkazish.

Qisqartirilgan yozuv

O'zgaruvchi qiymatini o'zgartirish juda ko'p uchraydi, shuning uchun Python'da qisqa yozuv bor:

Qisqa yozuvTo'liq yozuv
x += 5x = x + 5
x -= 2x = x - 2
x *= 3x = x * 3
x /= 4x = x / 4
hisob = 100000
hisob += 50000     # maosh tushdi
hisob -= 30000     # xarid qilindi
hisob *= 2         # bonus: ikki baravar!
print("Hisobda:", hisob, "so'm")
Hisobda: 240000 so'm

Foydali funksiyalar

FunksiyaNima qiladiMisolNatija
round(x)Butun songacha yaxlitlaydiround(4.7)5
round(x, n)Verguldan keyin n xonagacha yaxlitlaydiround(3.14159, 2)3.14
abs(x)Sonning moduli (ishorasiz qiymati)abs(-8)8
max(...)Eng kattasimax(3, 9, 4)9
min(...)Eng kichigimin(3, 9, 4)3
print(round(4.7))
print(round(3.14159, 2))
print(abs(-8))
print(max(3, 9, 4), min(3, 9, 4))

Kasr sonlardagi kichik g'alatilik

Bir narsaga oldindan tayyor bo'ling. Mana bu kodni ishga tushiring:

print(0.1 + 0.2)
0.30000000000000004

Bu Python xatosi emas. Kompyuter kasr sonlarni ikkilik tizimda saqlaydi va 0.1 kabi ba'zi sonlarni u yerda aniq yozib bo'lmaydi — xuddi o'nlik tizimda 1/3 ni aniq yozib bo'lmagani kabi (0.3333...). Bu deyarli barcha dasturlash tillarida shunday. Natijani chiroyli ko'rsatish uchun round() ishlating: round(0.1 + 0.2, 2) → 0.3.

Amaliy misol: harorat

Selsiy darajasini Farengeytga aylantirish formulasi: F = C × 9 / 5 + 32.

selsiy = 36.6
farengeyt = selsiy * 9 / 5 + 32
print(selsiy, "°C =", round(farengeyt, 1), "°F")
36.6 °C = 97.9 °F

Mashqlar

1-mashq O'rtacha baho

Talabaning uchta bahosi bor: 5, 4 va 4. O'rtacha bahoni hisoblab, verguldan keyin 2 xonagacha yaxlitlang va chiqaring. Natija 4.33 bo'lishi kerak.

a = 5
b = 4
c = 4
Ishora

Amallar tartibini unutmang: a + b + c / 3 — noto'g'ri, chunki avval faqat c bo'linadi. Yig'indini qavsga oling.

Yechimni ko'rish
a = 5
b = 4
c = 4
ortacha = (a + b + c) / 3
print(round(ortacha, 2))

2-mashq Soniyalarni ajrating

Kino 7385 soniya davom etadi. Buni soat, daqiqa va soniyaga ajrating va 2 soat 3 daqiqa 5 soniya ko'rinishida chiqaring.

jami = 7385
Ishora

Bir soatda 3600 soniya bor. jami // 3600 — soatlar. Qolgan soniyalar — jami % 3600. Ulardan esa xuddi shu usulda daqiqa (60 ga) va soniyani ajrating.

Yechimni ko'rish
jami = 7385
soat = jami // 3600
qoldiq = jami % 3600
daqiqa = qoldiq // 60
soniya = qoldiq % 60
print(soat, "soat", daqiqa, "daqiqa", soniya, "soniya")

3-mashq Raqamlar yig'indisi

Uch xonali son berilgan: 472. Faqat // va % amallaridan foydalanib, uning oxirgi raqamini va raqamlari yig'indisini toping.

Oxirgi raqam: 2
Raqamlar yig'indisi: 13
son = 472
Ishora

Birlar xonasi: son % 10. O'nlar xonasi: son // 10 % 10. Yuzlar xonasi: son // 100.

Yechimni ko'rish
son = 472
birlar = son % 10
onlar = son // 10 % 10
yuzlar = son // 100
print("Oxirgi raqam:", birlar)
print("Raqamlar yig'indisi:", birlar + onlar + yuzlar)

4-mashq Bank omonati

Bankka 1 000 000 so'm yillik 20 foiz bilan 3 yilga qo'yildi. Har yili foiz omonatning joriy summasiga qo'shiladi, ya'ni har yili summa 1.2 baravar oshadi. 3 yildan keyingi summani butun songacha yaxlitlab chiqaring.

omonat = 1000000
Ishora

Uch yil davomida summa uch marta 1.2 ga ko'paytiriladi: omonat * 1.2 * 1.2 * 1.2 yoki qisqaroq — omonat * 1.2 ** 3.

Yechimni ko'rish
omonat = 1000000
natija = omonat * 1.2 ** 3
print(round(natija))

O'zingizni sinang

7 // 2 nimaga teng?

  1. 3.5
  2. 1
  3. 3
  4. 4

To'g'ri. // bo'linmaning faqat butun qismini qoldiradi.

17 % 5 nimaga teng?

  1. 2
  2. 3
  3. 3.4
  4. 12

To'g'ri. 17 = 5 × 3 + 2, ya'ni qoldiq 2.

10 / 5 natijasi qanday chiqadi?

  1. 2
  2. 0
  3. 50
  4. 2.0

To'g'ri. Oddiy bo'lish / natijasi har doim kasr son (float).

2 + 3 * 2 nimaga teng?

  1. 10
  2. 8
  3. 12
  4. 7

To'g'ri. Avval ko'paytirish: 3 × 2 = 6, keyin qo'shish: 2 + 6 = 8.

Son juft ekanini qanday tekshirish mumkin?

  1. son / 2 natijasi 1 ga teng bo'lsa
  2. son ** 2 natijasi musbat bo'lsa
  3. son % 2 natijasi 0 ga teng bo'lsa
  4. son // 2 natijasi 0 ga teng bo'lsa

To'g'ri. Juft son 2 ga qoldiqsiz bo'linadi. Bu usulni shartlar darsida ko'p ishlatamiz.

Xulosa

  • Python'da yettita arifmetik amal bor: + - * / // % **.
  • / doim kasr son beradi; // — butun bo'lish, % — qoldiq.
  • Qoldiq amali juft-toqlikni aniqlash, raqamlarni ajratish va vaqtni hisoblashda juda foydali.
  • Amallar tartibi matematikadagidek; shubha bo'lsa — qavs qo'ying.
  • x += 5 — x = x + 5 ning qisqa yozuvi.
  • round(), abs(), max(), min() — tayyor foydali funksiyalar.