Girdimize en yakın palindrom değeri bulan program (Python3 ile)

Girdimize en yakın palindrom değeri bulan program (Python3 ile) 

Merhabalar, yeni yazıma hoşgeldiniz. Bu sefer palindrom sayılar ile uğraşalım istedim. Nedir bu palindrom sayılar? Biz bu sayıları program yardımıyla nasıl bulabiliriz? gibi sorulara cevap arayacağız.

Palindrom sayılar hakkında kısa bir vikipedi yazısını altta görmektesiniz.



Yukarıda gördüğünüz palindrom sayıların hepsini biz programda göstermeyeceğiz tabi ki. Bizim amacımız girdiğimiz herhangi bir değere en yakın palindrom sayı değerini bulmak. Bunu yaparken ilk başta yukarı gitmekteyiz. Eğer yukarı ve aşağı aynı mesafede iki ayrı palindrom değer var ise, biz yukarıdaki değeri ekranda göstereceğiz. Siz isterseniz bunu değiştirebilir veya ikisini aynı anda gösterecek şekilde kodu düzenleyebilirsiniz. Artık orası size kalmış. 

Altta çıktı görselimizi görmektesiniz. Hemen devamında kaynak kodumuzu da bulabilirsiniz.

Çıktı görseli



Kaynak kod


import sys # Kütüphanemizi çağırıyoruz.


# Bu alttaki fonksiyonda bir değerin palindrom olup olmadığını kontrol ediyoruz.
def areYouPalindrome(inputLen, myInput):
returnVal = True
if inputLen >= 1:
for i in range(inputLen // 2 + 1):
if myInput[i] != myInput[
inputLen - i -
1]: # Elimizdeki değeri yarıya bölüp kontrol ediyoruz.
returnVal = False
else:
returnVal = False
return returnVal # Herhangi bir olumsuz durumla karşılaşmaz ise buradan true değeri döndürecektir.


def findNearestPalindrome(myInput):
ispalindrome = True
palindromeFound = False
counterForPalindrome = 0
thePalindrome = 11
inputLen = len(myInput)
# İlk önce tanımlamalarımızı tamamladık.

while palindromeFound == False:
counterForPalindrome += 1
if areYouPalindrome(inputLen, str(int(myInput))) == True: # Burada yukarı doğru gidiyoruz.
palindromeFound = True
thePalindrome = str(int(myInput))
#print(thePalindrome)
return thePalindrome
if areYouPalindrome(inputLen, str(int(myInput) + counterForPalindrome)
) == True: # Burada yukarı doğru gidiyoruz.
palindromeFound = True
thePalindrome = str(int(myInput) + counterForPalindrome)
#print(thePalindrome)
return thePalindrome
elif areYouPalindrome(inputLen, str(int(myInput) - counterForPalindrome)) == True:
# Burada aşağı doğru gidiyoruz.
palindromeFound = True
thePalindrome = str(int(myInput) - counterForPalindrome)
return thePalindrome
# Bulduğunda bize en yakın sonucumuzu döndürüyor. Gayet güzel buluyor bence :D


# Main kod buradan başlıyor.
myInput = str(132423) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(34) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(
f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}"
) # Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(3456) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(107) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(22) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(10) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

myInput = str(7) # Buraya kendi istediğiniz değeri girebiliyorsunuz.
print(f"{myInput} değerine en yakın palindrom değer: {findNearestPalindrome(myInput)}")
# Burada bize dönülen çıktı bize en yakın olan çıktıdır.

# Burada iki tane fonksiyon yazmış bulunmaktayız.
# Biri değerimizin palindrom olup olmamaması, diğeri de palindrom değeri bulmak için aynı anda
# hem yukarı, hem de aşağı doğru gidiyor olduğumuz fonksiyondur. Projelerinizde istediğiniz
# gibi revizyon yapabilirsiniz. Şuanda aynı yakınlıkta olması durumunda çıktıyı üstteki
# değer olarak veriyor ama siz bunu değiştirebilirsiniz isterseniz.
# İyi çalışmalar dilerim.

Yorumlar

Bu blogdaki popüler yayınlar

Python ile Turtle Kütüphanesiyle Çizim Denemesi 2

Python ile Yazıyı Piramit Gibi Çizdirme