Sonlar bilan tanishish
Son ma'lumot turlari raqamli qiymatlarni saqlash uchun ishlatiladi.
Python integerlar, floating-point sonlar va kompleks sonlarni qo'llab-quvvatlaydi. Ular Pythonda int, float va complex klasslari sifatida belgilanadi.
int — cheklanmagan uzunlikdagi ishorali (signed) integerlarni saqlaydi.float — kasr nuqtali sonlarni saqlaydi va 15 xonagacha aniq bo'ladi.complex — kompleks sonlarni saqlaydi.Integer va floating-point sonlar kasr nuqtasining mavjudligi yoki yo'qligi bilan ajratiladi. Masalan,
5 — integer
5.42 — floating-point son.
Kompleks sonlar x + yj ko'rinishida yoziladi, bu yerda x — haqiqiy (real), y esa mavhum (imaginary) qism.
Qaysi klassga tegishli ekanligini bilish uchun type() funksiyasidan foydalanishimiz mumkin.
Keling, bir misolni ko'rib chiqamiz,
num1 = 5
print(num1, 'is of type', type(num1))
num2 = 5.42
print(num2, 'is of type', type(num2))
num3 = 8+2j
print(num3, 'is of type', type(num3))
Natija
5 is of type <class 'int'>
5.42 is of type <class 'float'>
(8+2j) is of type <class 'complex'>
Yuqoridagi misolda biz mos ravishda 5, 5.42 va 8+2j qiymatlariga ega uchta o'zgaruvchi yaratdik: num1, num2 va num3.
Muayyan o'zgaruvchi qaysi klassga tegishli ekanligini bilish uchun type() funksiyasidan ham foydalandik. Chunki,
5 — integer qiymat, type() num1ning klassi sifatida intni, ya'ni <class 'int'>ni qaytaradi5.42 — floating qiymat, type() num2ning klassi sifatida floatni, ya'ni <class 'float'>ni qaytaradi1 + 2j — kompleks son, type() num3ning klassi sifatida complexni, ya'ni <class 'complex'>ni qaytaradiBiz kundalik hayotda ishlatadigan sonlar o'nlik (decimal, 10-asosli) sanoq sistemasiga tegishli.
Ammo dasturchilarga ikkilik (binary, 2-asosli), o'n oltilik (hexadecimal, 16-asosli) va sakkizlik (octal, 8-asosli) sanoq sistemalari bilan ishlash kerak bo'ladi.
Pythonda bu sonlarni mos prefiksni son oldiga qo'yish orqali ifodalashimiz mumkin. Quyidagi jadvalda bu prefikslar keltirilgan.
| Sanoq sistemasi | Prefiks |
|---|---|
| Ikkilik (Binary) | 0b yoki 0B |
| Sakkizlik (Octal) | 0o yoki 0O |
| O'n oltilik (Hexadecimal) | 0x yoki 0X |
Mana bir nechta misollar
print(0b1101011) # 107 ni chop etadi
print(0xFB + 0b10) # 253 ni chop etadi
print(0o15) # 13 ni chop etadi
Dasturlashda tur konvertatsiyasi — bir turdagi sonni boshqasiga aylantirish jarayoni.
Qo'shish, ayirish kabi amallar, agar operandlardan biri float bo'lsa, integerlarni yashirin (implicit, avtomatik) ravishda floatga aylantiradi. Masalan,
print(1 + 2.0) # 3.0 ni chop etadi
Bu yerda, yuqorida ko'rib turganimizdek, 1 (integer) qo'shish uchun 1.0ga (float) aylantiriladi va natija ham kasr sonli (floating point) son bo'ladi.
Aniq tur konvertatsiyasi (Explicit Type Conversion)
Turlar orasida aniq konvertatsiya qilish uchun int(), float() va complex() kabi tayyor funksiyalardan ham foydalanishimiz mumkin. Bu funksiyalar hatto satrlardan ham konvertatsiya qila oladi.
num1 = int(2.3)
print(num1) # 2 ni chop etadi
num2 = int(-2.8)
print(num2) # -2 ni chop etadi
num3 = float(5)
print(num3) # 5.0 ni chop etadi
num4 = complex('3+5j')
print(num4) # (3 + 5j) ni chop etadi
Bu yerda, floatdan integerga aylantirilganda, son kesib tashlanadi (decimal qismlar olib tashlanadi).
Xuddi shunday, integerdan floatga aylantirilganda, songa .0 qo'shiladi.
Python'da tur konvertatsiyasi haqida ko'proq bilish uchun Python Type Conversion sahifasiga tashrif buyuring.
Python tasodifiy sonlar generatsiya qilish yoki iteratordan tasodifiy elementni tanlash uchun random modulini taklif etadi.
Avval random modulini import qilishimiz kerak. Masalan,
import random
print(random.randrange(10, 20))
list1 = ['a', 'b', 'c', 'd', 'e']
# list1'dan tasodifiy elementni olish
print(random.choice(list1))
# list1'ni aralashtirish
random.shuffle(list1)
# Aralashtirilgan list1'ni chop etish
print(list1)
# Tasodifiy elementni chop etish
print(random.random())
Natija
15
a
['d', 'b', 'c', 'e', 'a']
0.6716121217631744
random moduli haqida ko'proq bilish uchun Python Random Module sahifasiga tashrif buyuring.
Python trigonometriya, logarifmlar, ehtimollik va statistika kabi turli matematik amallarni bajarish uchun math modulini taklif etadi. Masalan,
import math
print(math.pi)
print(math.cos(math.pi))
print(math.exp(10))
print(math.log10(1000))
print(math.sinh(1))
print(math.factorial(6))
Natija
3.141592653589793
-1.0
22026.465794806718
3.0
1.1752011936438014
720
Python math modulida mavjud bo'lgan funksiyalar va atributlarning to'liq ro'yxatini shu yerdan topishingiz mumkin.