İki kelime arası fark

# -*- coding:cp1254 -*-

while True:
    cıkıs=input("Metinler arası harf farkını bulma programı!(Enter=Programa giriş)(Q=çıkış)\n")
    ızın="Q "
    for x in cıkıs:
        if x not in ızın:
            print("Enter=Programa giriş\nQ=Çıkış\n")
            quit()

    ılkmetın=input("1.metni giriniz:\t")
    if not ılkmetın:
        continue
        print("Boş bırakmayınız!")

    ıkıncımetın=input("2.metni giriniz:\t")
    if not ıkıncımetın:
        continue
        print("Boş bırakmayınız!")



    while True:
        print("\n","1.metin:{}".format(ılkmetın),"\n","2.metin:{}".format(ıkıncımetın),"\n",sep="")

        s=input("hangi metin arası farkı istiyorsunuz.\n(Q=programın başına dönmek)\n")

        if not s:
            pass
    #pass diyerek kullanıcı bir şey girmesse,birşey yapmamasısnı sağlıyoruz.

        elif s == "1.metin":
            for i in ılkmetın:
                if i not in ıkıncımetın:
                    print(i,end="\n")
                    continue


        elif s=="2.metin":
            for ı in ıkıncımetın:
                if ı not in ılkmetın:
                    print(ı,end="\n")

        elif s=="Q":
            break

    else:
        print("1.metin veya 2. metin yazınız!")

Programı daha iyi yazma konusunda fikirlerinizi alabilirim arkadaşlar.Benim sıkıntım şu metinlerde farkı gösterirken aynı harfleri göstermesi.Üstüne 7. dizede programdan çıkmak yerine baş tarafa dönmek için ne yapabilirim.Programlamada yeniyim istihza’nın yazdığı kitaptan çalışıyorum.Böyle bir programın ne işimize yariyacağını sorucaksınız.Amacım kendimi geliştirmek.Şimdiden teşekkür ederim.

Yapmak istediğiniz şey tam olarak bu mu?

# -*- coding:cp1254 -*-

print("Metinler arası harf farkını bulma programı!\n\n")


while True:
    metin1 = input("1. Metin: ")
    metin2 = input("2. Metin: ")
    
    fark1 = ""
    fark2 = ""
    
    for i in metin1:
        if i not in metin2:
            fark1 += i
    
    for x in metin2:
        if x not in metin1:
            fark2 += x
    
    
    print("""
    1. metinde olup, 2. metinde olmayan harfler: {}
    2. metinde olup 1. metinde olmayan harfler: {}\n""".format(fark1, fark2))
1 Beğeni

İsterseniz bir de bu algoritmayı kullanın. Belki işinize yarayabilir.

2 Beğeni

Öncelikle continue komutu döngü içersinde kendisinden sonraki kodları çalıştırmaz. Döngüde tekrar başa döner. Yani ekranda yazdırmak istediğiniz “Boş bırakmayınız” yanıtını bu komuttan önce yazdırmalısınız if not ıkıncımetın: print("Boş bırakmayınız!") continue gibi. 7. satırda da bu işlemi yaparak başa dönebilirsiniz.

   cıkıs=input("Metinler arası harf farkını bulma programı!(Enter=Programa giriş)(Q=çıkış)\n")
ızın="Q"
if(cıkıs == ızın):
    continue #  burada program başa dönecektir. isterseniz break ile çıkabilirsiniz
1 Beğeni

Evet teşekkür ederim

peki bu olay setlerin farkı şeklindede olmazmı

Setlerin farkı değil, burada farklı bir yöntem kullanılıyor.

Anladım şöyle düşündüm (konunun hepsini okumadım)
kelimeleri küme haline getirip farkını da bir küme yaparız öyle

@coderistan’nın da değiği gibi kümelerin farkı, farklı bir sonuç veriyor. Hem küme kullanmak da çok sağlıklı değil:

>>> set("Merhaba") == set("ahbareM")
True
1 Beğeni

Anladım farkındada aynı harfleri gösterimiyor

Mesela “kalem” ve “kelime” kelimelerinin küme farkı i oluyor. Ama bu bize bir bilgi sağlamaz. Ya da “makarna” ve “karaman” kelimelerinin küme farkı 0 olduğu için benzer kelimedir diyemeyiz. Yazdığım script, “makarna” ve “karaman” kelimelerinin farklı olduğunu söyleyebiliyor mesela.

https://coderistan.github.io/public/levenshtein/levenshtein.html

1 Beğeni

anladım saolun …

1 Beğeni