3.1 Ədədi tiplər: int
, float
, complex
Python müxtəlif ədədi tiplərə sahibdir və hər biri fərqli vəzifələr və məlumatların emalı üçün uyğundur. Biz artıq int
, float
, complex
tipli məlumatları, həmçinin tam ədədlərin subclass-ı olan bool
(Boolean) tipi qeyd etmişdik. İndi isə bu tiplərin hər birini daha ətraflı nəzərdən keçirəcəyik.
int
(Tam ədədlər):
Bu, bəlkə Python-da ən çox istifadə olunan ədədi tiplərdən biridir. Tam ədədlər həm müsbət, həm də mənfi ola bilər və onluq nöqtələrə malik deyildirlər. Python məhdudiyyətsiz dəqiqliyi dəstəkləyir, yəni yaddaş limiti xaricində işləyə biləcəyiniz ədədlərin ölçüsü ilə bağlı məhdudiyyətlər yoxdur.
float
(Üzən nöqtəli ədədlər):
Bu ədədlər real rəqəmləri təmsil etmək üçün istifadə olunur və onluq nöqtələri saxlaya bilər. Python üzən nöqtəli ədədləri IEEE 754 double-precision standartına uyğun həyata keçirir, bu da vergüldən sonra təxminən 15 rəqəm dəqiqliyini təmin edir.
complex
(Kompleks ədədlər):
Kompleks ədədlərin həm real, həm də xəyali hissələri var. Hər ikisi üzən nöqtəli ədədlərlə təmsil olunur. Python-da xəyali hissəni təmsil etmək üçün j
və ya J
şəkilçisi istifadə olunur. Məsələn, kompleks ədədi bu cür yarada bilərsiniz:
complex_number = 3 + 5j
bool
(Boolean dəyərlər):
Python-da True
və False
xüsusi tam ədədlərdir və müvafiq olaraq 1 və 0 kimi işləyir. Bu, onların riyazi əməliyyatlarda və digər hesablamalarda istifadə olunmasına imkan yaradır.
Riyazi əməliyyatlar:
Python bütün əsas riyazi əməliyyatları dəstəkləyir, o cümlədən toplama, çıxma, vurma, bölmə, tam bölmə, bölmə qalıqlarını tapma və qüvvətə yüksəltmə. Məsələn:
- Toplama: 3 + 2
- Çıxma: 5 - 2
- Vurma: 2 * 3
- Bölmə: 7 / 2
- Tam bölmə: 7 // 2
- Bölmə qalıqı: 7 % 2
- Qüvvətə yüksəltmə: 2 ** 3
Tip çevrilməsi:
Tip çevrilməsi (və ya tipin dəyişdirilməsi) barədə artıq danışmışıq. Bir növ ədədi digərinə çevirmək üçün int()
, float()
və complex()
kimi tip çevrilmə funksiyalarından istifadə edə bilərsiniz.
Ədədi tiplərin çevrilməsi ilə bağlı bəzi məsələləri artıq nəzərdən keçirmişik, digərlərini isə növbəti dərslərimizdə daha ətraflı öyrənəcəyik.
3.2 Psevdotəsadüfi ədədlər
Bəzən proqramçı sadə görünən məsələlərlə rastlaşır: «axşam baxmaq üçün siyahıdan təsadüfi bir film seçmək», «lotereyada qalibini seçmək», «smartfonu silkələməklə mahnı siyahısını qarışdırmaq», «mesajı şifrələmək üçün təsadüfi bir rəqəm seçmək». Bu vəziyyətlərdə həmişə belə bir sual meydana çıxır: bu təsadüfi rəqəmi necə əldə etmək olar?
«Həqiqi» təsadüfi rəqəm almaq olduqca çətindir. Hətta bu məqsədlə kompüterə xüsusi riyazi köməkçi prosessorlar yerləşdirilir ki, bu rəqəmləri «həqiqi təsadüf» tələblərinə uyğun olaraq yarada bilsinlər.
Buna görə proqramçılar öz həll yollarını tapdılar – psevdotəsadüfi rəqəmlər. Psevdotəsadüfi rəqəmlər - bu bəzi ardıcıllıqdır, həmin ardıcıllıqda ilk baxışda rəqəmlər təsadüfi görünür, amma mütəxəssis detallı analiz etdikdə müəyyən qanunauyğunluqlar tapar. Gizli sənədləri şifrələmək üçün belə rəqəmlər uyğun deyil, amma oyunda zərdəkin atılmasını imitasiya etmək üçün tam uyğundur.
Çoxlu psevdotəsadüfi rəqəmlərin ardıcıllığını yaratmaq üçün alqoritmlər var və onların əksəriyyəti növbəti təsadüfi rəqəmi əvvəlkisinə və digər köməkçi rəqəmlərə əsaslanaraq yaradır.
Məsələn, bu proqram ekrana 1000 təkrarlanmaz rəqəm çıxaracaq:
a = 41
c = 11119
m = 11113
seed = 1
def get_next_random():
global seed
seed = (a * seed + c) % m
return seed
for t in range(1000):
x = get_next_random()
print(x)
Yeri gəlmişkən, biz yalnız psevdotəsadüfi rəqəmlər haqqında danışmırıq, eyni zamanda onların ardıcıllığı haqqında da danışırıq. Çünki bir rəqəmə baxaraq onun təsadüfi olub olmadığını başa düşmək mümkün deyil.
Təsadüfi rəqəm müxtəlif yollarla əldə edilə bilər:
def get_random_number():
return 4 # bu tam təsadüfi rəqəmdir (z onu zərlə atıb), bax "Zərlə zarafat"
3.3 random
kitabxanası
Python-da daxili random kitabxanası var, və onunla işləmək maraqlı olacaq. Ola bilər ki, adından artıq bildiniz, bu kitabxana ilə [psevdo]təsadüfi ədədlər yarada bilərsiz.
random
kitabxanası daxili olsa da, ayrı bir kitabxanadır, ona görə istifadə etməzdən əvvəl, onu kodumuza qoşmaq lazımdır. Bunu etmək üçün import
açar sözündən istifadə edirik. Məsələn:
import random
Random kitabxanasında çox maraqlı metodlar var, amma bu gün yalnız ikisi ilə tanış olacağıq: random()
metodu və randint()
metodu. Onlar oxşar, amma fərqli işlər görürlər:
random.random() metodu:
Bu metod 0.0 ilə 1.0 arasında təsadüfi float növündə rəqəm qaytarır. Ədədlər bu aralıqda bərabər paylanır. Yəni, bu aralıqdan hər bir rəqəm eyni ehtimalla seçilir.
import random
probability = random.random()
print("Təsadüfi ehtimal:", probability)
random.randint(a, b) metodu:
Bu funksiya a
-dan b
-yə qədər (hər iki sərhəd daxil olmaqla) təsadüfi tam ədəd qaytarır. random.random()
, ədədləri 0-dan 1-ə qədər float kimi qaytarırsa, randint()
tam ədəd seçmək üçün istifadə olunur. Məsələn, random.randint(1, 10)
tamlıqda 1-dən 10-a qədər (hər iki sərhəd daxil olmaqla) hər hansı bir rəqəm qaytara bilər.
import random
dice_roll = random.randint(1, 6) # Zər atma simulyasiyası
print("Düşən rəqəm:", dice_roll)
Bunlar çox faydalı və maraqlı metodlardır, rahatlıqla istifadə edin.
3.4 math
kitabxanası
Yaxşı, bu mövzunu davam edək, gəlin sizi daha bir maraqlı kitabxana ilə tanış edim. Bu math
kitabxanası-dır. Burada əsas riyazi funksiyalar və sabitlər, məsələn, π və e kimi rəqəmlər saxlanılır.
Və random
kitabxanası kimi, bu kitabxananı da istifadə etmədən öncə import etmək lazımdır:
import math
Python-dakı math
kitabxanasının əsas funksiyaları və sabitləri ilə bağlı cədvəl:
Funksiya/Sabit | Təsviri |
---|---|
math.pi | π sabiti, təxminən 3.14159-a bərabərdir |
math.e | Təbii logaritmin əsası, təxminən 2.71828-ə bərabərdir |
math.sqrt(x) | x-in kvadrat kökünü qaytarır |
math.exp(x) | e üzərinə x dərəcəsini qaytarır |
math.log(x[, base]) | Əgər base göstərilibsə, x-in base üzərindəki logaritmini qaytarır; göstərilməzsə təbii logaritmi qaytarır. |
math.cos(x) | x-in kosinusunu qaytarır, x radianla göstərilməlidir |
math.sin(x) | x-in sinusunu qaytarır, x radianla göstərilməlidir |
math.tan(x) | x-in tangensini qaytarır, x radianla göstərilməlidir |
math.ceil(x) | Ədədin qiymətini yuxarıya doğru tam ədədə yuvarlaqlaşdırır |
math.floor(x) | Ədədin qiymətini aşağıya doğru tam ədədə yuvarlaqlaşdırır |
math.factorial(x) | x-in faktoriyalını qaytarır |
Hətta riyaziyyatı çox da sevməsəniz və bu funksiyaları yaxın 10 il ərzində istifadə etməyi planlaşdırmasanız belə, burada ən azı üç çox faydalı funksiya var:
sqrt()
— ədədin kvadrat köküceil()
— yuxarıya doğru tam ədədə yuvarlaqlaşdırmafloor()
— aşağıya doğru tam ədədə yuvarlaqlaşdırma
Nümunələr:
import math
number = 9.7
rounded_up = math.ceil(number) # Yuxarıya doğru yuvarlaqlaşdırır, nəticə 10
rounded_down = math.floor(number) # Aşağıya doğru yuvarlaqlaşdırır, nəticə 9
print("Yuxarı yuvarlaqlaşdırılmış ədəd:", rounded_up)
print("Aşağı yuvarlaqlaşdırılmış ədəd:", rounded_down)
GO TO FULL VERSION