Python Uygulamaları – edabit Örnekleri

Bu yazıda edabit.com üzerinde gördüğüm problemlerden kendim ilginç bulduğum ve çözmeye çalıştıklarımı paylaşacağım.

1-Disarium Sayısı Kontrolü

Bir n sayısının rakamları soldan sağa doğru bulunduğu sıradaki kuvveti alınıp toplandığında elde edilen sonuç n sayısına eşit oluyorsa bu sayıya Disarium sayısı denir. 89, 135, 518 gibi.

Örneğin; 135 sayısı için

1^1 + 3^2 + 5^3 = 1 + 9 + 125 = 135

olduğu için 135 disarium sayısıdır. Bu sayının kontrolü için de aşağıdaki kod parçasını yazdım.

def is_disarium(sayi):
    liste = []
    for i in str(sayi):
        liste.append(i)
    a=0
    for j in range(0,len(liste)):
        a += int(liste[j])**(j+1)
    if sayi == a:
        return True
    else:
        return False


print(is_disarium(135))

Çıktı: True

2-KRİPTOLAMA ÖRNEĞİ

Girilen bir kelimeyi önce ters çevirecek sonra aşağıdaki değişimleri yapıp sonuna “gkhn” ekleyecek kod parçasını yazdım.

# a => 0
# e => 1
# i => 2
# o => 2
# u => 3
a = str(input("Şifrelenicek kelimeyi giriniz: "))

def kripto(kelime):
    liste = []
    for i in kelime:
        liste.append(i)
    liste.reverse()
    listetostr = ''.join(map(str,liste))
    listetostr = listetostr.replace("a", "0")
    listetostr = listetostr.replace("e", "1")
    listetostr = listetostr.replace("i", "2")
    listetostr = listetostr.replace("o", "2")
    listetostr = listetostr.replace("u", "3")
    listetostr = listetostr + "gkhn"
    return listetostr

print(kripto(a))

Çıktı: “denemeakgozgokhan” –> n0hk2gz2gk01m1n1dgkhn

3-KART OYUNU

Verilen iki adet 5’li kart dizisine göre kartların toplamı büyük olan kazanıcak şekilde yazdığım kod parçası.

def win_round(list1,list2):
    list1 = sorted(list1)
    list2 = sorted(list2)

    sayi1 = str(list1[-1]) + str(list1[-2])
    sayi2 = str(list2[-1]) + str(list2[-2])
    print("Senin kartlarının toplamı: " + sayi1)
    print("Rakibinin kartlarının toplamı: " + sayi2)
    if int(sayi1)>int(sayi2):
        print("Kazandın! " + sayi1 + ">" + sayi2)
    elif int(sayi1)<int(sayi2):
        print("Kaybettin :( " + sayi1 + "<" + sayi2)
    else:
        print("Berabere")


    return

win_round([7,3,4,4,5],[3,2,5,4,6])

Çıktı :

Senin kartlarının toplamı: 75
Rakibinin kartlarının toplamı: 65
Kazandın! 75>65

Leave a comment

Design a site like this with WordPress.com
Get started