Арифметика
Дар мавзӯъҳои гузашта мо ҷамъ, тарҳ ва зарб мекардем. Акнун тақсимро дида мебароем — дар барномасозӣ он се навъ мешавад — ва амалҳои дигари фоиданокро.
Се навъи тақсим
print(17 / 5) # 3.4 — тақсими оддӣ
print(17 // 5) # 3 — қисми бутун (хориҷи қисмати нопурра)
print(17 % 5) # 2 — бақияи тақсим
/— тақсими оддӣ. Натиҷа ҳамеша касрӣ аст (float): ҳатто10 / 25.0медиҳад.//— тақсими бутун: тақсимкунанда чанд бор пурра ба тақсимшаванда меғунҷад.%— бақия: пас аз тақсими бутун чӣ боқӣ монд.
Онҳо бо ҳам алоқаманданд: a == (a // b) * b + a % b. Барои 17 ва 5: 3 * 5 + 2 = 17.
Мисол: тухмҳо дар қуттиҳо
Ба як қуттӣ 12 тухм ҷой мегирад. Аз 100 тухм чанд қуттии пурра мешавад ва чанд тухм боқӣ мемонад?
eggs = 100
print(eggs // 12) # 8 қуттии пурра
print(eggs % 12) # 4 тухм боқӣ монд
Мисол: рӯзҳо ва ҳафтаҳо
days = 45
weeks = days // 7 # 6
rest = days % 7 # 3
print(weeks, rest) # 6 3
Рақамҳои адад
Бақияи тақсим ба 10 — рақами охирин аст, тақсими бутун ба 10 бошад рақами охиринро мепартояд:
n = 4096
print(n % 10) # 6 — рақами охирин
print(n // 10) # 409 — адад бе рақами охирин
print(n % 100) # 96 — ду рақами охирин
Бо омезиши // ва % ба ҳар рақам расидан мумкин аст. Кӯшиш кун худат аз 4096 рақами 0-ро гирӣ.
Ҷуфтӣ
Адад ҷуфт аст, агар бақияи тақсим ба 2 ба сифр баробар бошад: n % 2 барои ҷуфтҳо 0 ва барои токҳо 1 медиҳад. Ин дар мавзӯи шартҳо ба кор меояд.
Ададҳои манфӣ
// ба поён (ба сӯи минус беохирӣ) яклухт мекунад, на ба сӯи сифр: -7 // 2 ин -4 аст, -7 % 2 бошад 1. Дар аксари масъалаҳо ададҳо мусбатанд, вале инро дар хотир дор.
Ададҳои касрӣ
Ададҳо бо нуқта — float: 3.14, 0.5, 2.0. Тақсими / ҳамеша float медиҳад.
price = 250
people = 3
print(price / people) # 83.33333333333333
Ададҳои касрӣ дақиқии маҳдуд доранд: 0.1 + 0.2 0.30000000000000004 медиҳад. Бинобар ин дар масъалаҳо бо ҷавоби касрӣ одатан менависанд «ҷавоб бо хатогии 10-6 қабул мешавад» — фарқҳои хурд дар рақамҳои охирин муҳим нестанд.
Яклухткунӣ:
print(round(3.7)) # 4
print(round(3.14159, 2)) # 3.14 — то ду рақам баъди нуқта
print(int(3.99)) # 3 — int() қисми касриро мепартояд
Дараҷа ва модул
print(3 ** 4) # 81 — дараҷа
print(2 ** 0.5) # 1.4142135623730951 — реша тавассути дараҷа
print(abs(-12)) # 12 — модул (масофа то сифр)
print(abs(5 - 9)) # 4 — масофа байни ададҳо
Модули math
Барои функсияҳои математикӣ китобхонаи дохилии math ҳаст. Онро бо фармони import дар аввали барнома пайваст мекунанд:
import math
print(math.sqrt(16)) # 4.0 — решаи квадратӣ
print(math.pi) # 3.141592653589793
print(math.floor(4.7)) # 4 — яклухткунӣ ба поён
print(math.ceil(4.2)) # 5 — яклухткунӣ ба боло
math.ceil барои яклухткунӣ ба боло қулай аст, вале бо ададҳои хеле калон тавассути тақсими / дақиқиро гум кардан мумкин аст: float тақрибан 15–16 рақами муҳимро нигоҳ медорад. Агар ададҳо дар масъала калон ва бутун бошанд, кӯшиш кун бо амалҳои бутуни // ва % иҷро кунӣ.
Тартиби амалҳо
- қавсҳо;
**;*,/,//,%— аз чап ба рост;+,-— аз чап ба рост.
print(2 + 3 * 2 ** 2) # 14: аввал 2**2=4, баъд 3*4=12, баъд 2+12
print(20 // 3 % 4) # 2: 20//3=6, баъд 6%4=2
Агар шубҳа дошта бошӣ — қавс гузор, онҳо кодро фаҳмотар мекунанд.
Хулоса
/— тақсими касрӣ,//— қисми бутун,%— бақия;n % 10— рақами охирин,n // 10— адад бе он;**— дараҷа,abs— модул,round— яклухткунӣ;import mathsqrt,floor,ceil,pi-ро мекушояд;- барои ададҳои калони бутун
//ва%-ро истифода бар, наfloat.