CodeGym /Kurslar /Python SELF AZ /Rəqəmsal tiplərlə işləmək

Rəqəmsal tiplərlə işləmək

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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 TrueFalse xüsusi tam ədədlərdir və müvafiq olaraq 10 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()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.

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ırma
  • floor() — 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)              
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION