Xoşbəxtlər ölkəsinin parlamenti

   Xoşbəxtlər ölkəsinin çox maraqlı parlamenti var idi. Amfiteatr formasında olan bu parlamentdə millət vəkilləri çox orijinal bir qayda ilə əyləşirdilər. Bu qayda deputatların təvəllüdlərinin palindromluq dərəcəsinə əsaslanırdı.

amphitheater-at-club-o7

   Təvəllüdlərinin palindromluq dərəcəsi 0 olan deputatlar ön sırada, 1 olanlar növbəti, 2 olanlar ondan sonrakı sırada əyləşirdilər. Və beləcə bu palindromluq dərəcəsi artdıqca millət vəkilləri də amfiteatrın yuxarılarına doğru öz yerlərini tuturdular. Palindromluq dərəcəsini öyrənmək üçün hər deputat öz təvəllüdünü ggaaiiii formatında (məs. 10011001) təqdim etməliydi.

   Gəlin əvvəlcə palindrom ədəd və palindromluq dərəcəsinin nə olduğunu aydınlaşdıraq. Əgər verilmiş natural ədəd özünün tərsinə yazılışı ilə eynidirsə, bu ədəd palindrom ədəd adlanır. Məsələn 10011001 ədədi kimi. Əgər verilmiş ədəd palindrom deyilsə, onun rəqəmlərini əks sırada yazırıq və verilən ədədlə toplayırıq. Bu prosesi palindrom ədəd alınana qədər davam etdirirk. İcra edilən əməliyyatların sayı verilmiş ədədin palindromluq dərəcəsi adlanır.

  Sizdən tələb olunan təqdim edilmiş təvəllüdə görə palindromluq dərəcəsini müəyyən edən proqram tərtib etməkdir.

Giriş verilənlərinə nümunə:

10121978

   Çıxış verilənlərinə nümunə:

5

   Proqramı özünüz tərtib etməyə çalışın. Alınmasa, aşağıdakı həll ilə tanış ola bilərsiniz:

Screen Shot 2019-01-01 at 21.36.04

ord() və chr() funksiyaları

   Python proqramlaşdırma dilinin built-in (daxili) funksiyalarından olan chr()ord() funksiyaları simvollarla işləyərkən işimizə yarayır.

ord(simvol)

Bu funksiya Unicode simvolunun kodunu qaytarır:

>>> ord('a') 
97 
>>> ord('\u263E') 
9790 
>>>

chr(kod)

Bu funksiya verilmiş koda əsasən unicode simvolunu qaytarır:

>>> chr(97) 
'a' 
>>> chr(9790) 
'☾' 
>>>

str() və repr() funksiyaları

   Python proqramlaşdırma dilində qiymətləri sətir tipinə çevirən iki funksiya nəzərdə tutulmuşdur: str()repr(). Siz bunlardan birincisi ilə artıq tanışsınız. Bu dərsimizdə repr() funksiyasını da nəzərdən keçirib onun str() funksiyasından fərqini göstərəcəyik.

   str() funksiyası verilmiş qiyməti sətir tipinə çevirib insan üçün oxunaqlı şəkildə təqdim edir. Ondan fərqli olaraq repr() funksiyası sətir tipinə çevirdiyi veriləni interpretatorun anlayacağı formaya salır. Bu zaman əgər ekvivalent sintaksis aşkar olunmursa, SytaxError xətası qeydə alınır. İnsan tərəfindən oxuna bilən formada təsvir edilə bilməyən obyektlər üçün str() funksiyası repr() funksiyasının qaytardığı qiyməti verəcək. Əsasən ədəd və strukturlar (siyahı və lüğət kimi) üçün hər iki funksiyanın qaytardığı qiymətlər eyni formada olur. Sətirlərdə isə nəticələr fərqli olur.

Aşağıdakı nümunələri nəzərdən keçirin:

>>> s='Salam Azərbaycan' 
>>> str(s) 
'Salam Azərbaycan' 
>>> repr(s) 
"'Salam Azərbaycan'" 
>>> 
>>> h1=str('salam\n') 
>>> h2=repr('salam\n') 
>>> print(h1) 
salam
 
>>> print(h2) 
'salam\n' 
>>>

Kvadrat tənliyinin kökləri

   Aşağıdakı proqram kvadrat tənliyinin köklərini tapmaq üçün tərtib olunmuşdur:

import math 

a=float(input('a-nı daxil edin: ')) 
b=float(input('b-ni daxil edin: ')) 
c=float(input('c-ni daxil edin: ')) 
d=b**2-4*a*c
if d>0:
    x1=(-b+math.sqrt(d))/(2*a)
    x2=(-b-math.sqrt(d))/(2*a)
    print('x1=',x1)
    print('x2=',x2)
elif d==0:
    x1=-b/(2*a)
    print('x1=x2=',x1)
else:
    print('Tənliyin həqiqi kökləri yoxdur.')

   Biz burada sqrt() funksiyasından istifadə etmək üçün standard modullardan olan math modulunu daxil etməliyik.