Generatorlar

   Generatorlar hər iterasiya (təkrarlanan əməliyyat) zamanı müəyyən bir qiyməti qaytaran funksiyalardır. Proqramlaşdırmada generatorlara təmbəl iteratorlar da deyilir. Belə ki, generatorlar yalnız onlardan tələb olunduğu zaman qiymət qaytarırlar. Adi funksiyalardan fərqli olaraq generatorlar qiyməti yield açar sözü ilə qaytarırlar. Generatorlarda funksiyadan çıxış nöqtəsi (daxili dəyişənlərin cari qiymətləri) yadda saxlanılır və növbəti müraciət zamanı funksiyanın işi qaldığı yerdən davam edir.

   Gəlin tələb olunan sayda Fibonaçi ədədlərini əldə etmək üçün generator funksiyadan istifadə edək. Riyaziyyatdan da bildiyiniz kimi ilk iki Fibonaççi ədədləri 0 və 1-dir. Sonra gələn ədəd özündən əvvəlki ilk iki qonşusunun cəminə bərabərdir: 0, 1, 1, 2, 3, 5, 8, 13… Bəzi mənbələrdə sıranın ilk ədədi 0 yox, 1 götürülür.

def fibonacci(n):
    fib1, fib2 = 0, 1
    print('Generasiya başladı...')
    for i in range(n):
        fib1, fib2 = fib2, fib1+fib2
        yield fib1
    print(end='\n')	
    print('Generasiya sona çatdı.')

for fib in fibonacci(10):
    print(fib, end=' ')

    Proqramı incələyək. Əvvəlcə fibonacci() adlı generator təyin edilir. Daha sonra sayğaclı dövrdə dövr ardıcıllığı kimi bu generatordan arqument (10) göndərilərək istifadə edilir. Gördüyünüz kimi dövrdə hər dəfə fibonacci() generator funksiyasına müraciət olunur. Və hər müraciətin nəticəsində generator bir qiymət qaytarır. Generatora ilk müraciətdə əvvəlcə ekrana Generasiya başladı məlumatı çıxarılır. Diqqət yetirin ki, bu sətir yalnız bir dəfə çap olunur. Generatorun daxilində sayğaclı dövr qurularaq Fibonaçi ədədi tapılır və yield açar sözü ilə qiymət olaraq qaytarılır. Burada yield operatorunun istifadəsi generator funksiyanın işində pauza verir və daxili dəyişənlərin (i, fib1, fib2) cari qiymətləri yadda saxlanılır. Bununla da generatorun qaytardığı ilk qiyməti (1) proqramdakı sayğaclı dövrün idarəetmə dəyişəni olan fib qəbul edir və ekranda çapa verilir. Biz burada print() funksiyasında end=’  parametrindən istifadə edirik. Bunu ona görə edirik ki, növbəti Fibonaçi ədədi eyni sətirdə çıxsın. İlk Fibonaçi ədədi ekrana çıxdıqdan sonra dövrdə yenidən fibonacci() generatoruna müraciət olunur və generator öz işinə qaldığı yerdən davam edir. Proses bu minvalla o vaxta qədər davam edir ki, generator daxilindəki sayğaclı dövrün i parametri sonuncu qiymətini (9) almış olsun. Bundan sonra proqramdakı dövrdə yenidən generatora müraciət edildiyi zaman (generator daxilindəki sayğaclı dövr öz işini yekunlaşdırdığına görə) kursor növbəti sətrə keçirilir və ekrana Generasiya sona çatdı məlumatı çıxarılır.

Generasiya başladı...
1 1 2 3 5 8 13 21 34 55 
Generasiya sona çatdı.

Python ilə yazılmış 10 ən məşhur sayt

  Python proqramlaşdırma dilinin universal bir dil olması onu gündən günə daha da populyar edir. Xüsusilə də veb layihələrin hazırlanmasında Python dili əvəzsiz rola malikdir. Bu məqaləmizdə Python ilə yazılmış 10 ən məşhur saytdan bəhs edəcəyik.

Top10PythonApp

Google
Bu gün dünyanın 1 nömrəli axtarış motoru olan Google‘u tanımayan yoxdur. Amma çox adam bilir ki, Google’un gücünə güc qatan məhz Python’dur. Həm axtarış motoru, həm də onun əlavə tətbiqləri Python dilinin hesabına ərsəyə gəlmişdir.

YouTube
Alexa reytinqinə görə dünyada ikinci ən məşhur sayt YouTube‘dur. Necə məşhur olmasın ki, Python ilə yazılan bu video paylaşım saytına hər dəqiqə 400 saatlıq video yüklənir, gün ərzində izlənən videoların müddəti isə artıq bir milyard saatı keçib. Yenə  Python, yenə uğur!

Quora
Bilgi toplamağın ən asan yolu sual verməkdir. Sual verməyin ən uyğun yeri də Quora‘dır. Bu Quora elə bir məkandır ki, insanlar burada suallarını verir, başqaları onları cavablandırır və Quora’nın üzvləri də bütün bunları düzənləyir. Python ilə yazılan bu saytın bu gün 100 milyondan çox istifadəçisi vardır.

DropBox
Xatırlayırsızsa, vaxt var idi, hansısa qeyd və məlumatları bloknota yazar, cibimizə qoyardıq. Kompüterlər həyatımıza daxil olandan sonra bu bloknotları əvvəlcə CD/DVD-lər, sonra da fleş disklər əvəz etdilər. Günümüzdə isə sonunculardan da imtina edib bulud yaddaşlardan istifadə etməyə başladıq. Bulud texnologiyasına əsaslanan DropBox xidməti fayllarımızı yadda saxlamağa, onları digər insanlarla paylaşmağa və dünyanın istənilən yerindən və istənilən cihazdan bu məlumatlara giriş əldə etməyə imkan verir. DropBox da Python ilə yazıldığına görə qürur duyur!

Yahoo!
Google’un ən böyük rəqibi Yahoo! da özünün əsas proqram təminatlarını Python dilində işləyib hazırlamışdır. Xüsusilə də pulsuz kartoqrafiya xidməti olan Yahoo! Maps xəritələri var olmalarını Python dilinə borcludur. Yahoo Maps lokasiyaları tapmaq, istiqamətləri təyin etmək, məkanlar haqda məlumat vermək və s. kimi funksional imkanlara malikdir.

Reddit
Sualınız var, nəyisə müzakirə etmək, ya da maraqlı bir xəbəri paylaşmaq istəyirsiniz? O zaman Reddit tam Sizə görədir. Reddit’i qısa şəkildə sosial xəbər saytı da adlandırmaq olar. İnternet dünyasının ən geniş açıq icmalarından biri sayılan Reddit də Python ilə yazılıb.

Instagram
Şəkil və videoları paylaşmaq heç bu qədər əyləncəli olmamışdır. Yəgin ki, söhbətin Instagram‘dan getdiyini anladınız. Şəkli çək, xüsusi effektlər ver və paylaş. Dostların da gəlsin, bəyənsin və rəy yazsın. 2010-cu ildən şəkil və video paylaşım sosial şəbəkəsi kimi fəaliyyət göstərən Instagram da Python ilə ərsəyə gətirilmişdir.

Spotify
Musiqi striminqi (audio-axını) olan Spotify xidmətindən bu gün dünyanın 80-ə yaxın ölkəsində istifadə edirlər. Spotify bəyəndiyiniz musiqi parçalarını kompüter və ya mobil qurğunuza endirmədən dinləməyə imkan verən platformadır. Belə bir xidmətin meydana gəlməsi Python dilinin hesabına mümkün olmuşdur.

Survey Monkey
Onlayn sorğu deyəndə ilk ağla gələn Survey Monkey portalıdır. Survey Monkey ilə istədiyiniz anketləri hazırlayıb geniş kütlələlərə çatdıra bilərsiniz. Hazırda bu portalın 25 milyon istifadəçisi vardır. Survey Monkey bu istifadəçilərə gün ərzində 20 milyon suala cavab tapmaqda kömək edir. Bu uğurlu layihə də Python dili ilə hazırlanmışdır.

Hipmunk
Əgər Siz səyahət etməyi sevirsinizsə, yəgin ki, Booking, Expedia, Kayak kimi saytların xidmətindən çox istifadə etmisiniz. Bu kimi saytlar bizə ucuz bilet və hotel tapmaqda çox kömək edir. Səyahətimizi planlayarkən adətən bir neçə belə sayta müraciət etməli oluruq, sonra da ən münasib variantın üzərində dayanırıq. Hipmunk isə bizi bu əziyyətdən xilas edir. Hipmunk bilet, hotel, avto-kirayə təqdim edən nə qədər sayt varsa, hamısını ələk-vələk edirək bizə ən ucuz qiymətləri tapıb təqdim edir. Vaxtımıza və pulumuza qənaət etdirən Hipmunk da Python ilə yazılmışdır.