Python input ve if elif işlemleri

entry = input("Kullanıcı Adı : ")

harf = 0

for i in entry:

with open(f"{harf}.txt","w") as file:

    file.write(i)

Burda dosyaları oluşturduk

    for i in entry:

        with open(f"{harf}.txt","r") as demo:

            demo.seek(0)

#burda oluşturduklarımızı okuduk
if ("{harf}.txt".index == “b” or “B”):

                print("b or B")

            elif (i == "a" or "A"):

                print("a or A")

bu kodda kullanıcının girdiği harf kadar dosya oluşturduk o dosyaları okuduk fakat bu dosyaları if elif komutlarıyla kontrol etmek istediğimde hata veriyor hata ise şu : ben a yazıyorum normalde kodun “a or A” yazması gerekiyor ama kod “a or A” “b or B yazıyor” yani bütün hepsini okuyor bunun bir çözümü varmıdır

entry = input("Kullanıcı Adı : ") 
harf = 0 
for i in entry: 
    with open(f"{harf}.txt","w") as file:
        file.write(i) 
        for i in entry: 
            with open(f"{harf}.txt","r") as demo:
                demo.seek(0)
                if ("{harf}.txt".index == "b" or "B"):
                    print("b or B")
                elif (i == "a" or "A"):
                    print("a or A")
                harf += 1

kod budur

ilk if de denediğim şekilde olmadı elif de olmadı

Anladığım kadarıyla dosyaların içindeki verileri okuyup verilerin bazı belli değerlere eşit olduğu vakit bir komut çalıştırmak istiyorsun.

if (“{harf}.txt”.index == “b” or “B”):

Burada ne yapmaya çalıştığını anlamadım. Bu kod bloğu “{harf}.txt” metninin index özelliğinin (komut ya da fonksiyon için parantez kullanmak gerekiyor) “b” ye ya da “B” ye eşit olup olmadığını kontrol ediyor. Ayrıca “b” or “B” yerine ikisini de ayrı ayrı tamamıyla yazarak karşılaştırmanı öneririm. Python farklı sürümlerinde bu kısım farklı çalışabilir. En son olarak metne değişken eklemek için başına f harfini koyman lazımdı.

entry = input("Kullanıcı Adı : ") 
harf = 0 
for i in entry: 
   with open(f"{harf}.txt","w") as file:
       file.write(i) 
   harf += 1
     
for i in range(len(entry)):
   with open(f"{i}.txt","r") as file:
       data = file.read()
   if data.lower() == "a":
       print("Çalıştı!")

Bunun istediğin şekilde çalışması lazım.

2 Beğeni

çok teşekkürler çalıştı bir sorum olucak data.lower() daki lower ne işe yarıyor

String veri türünde tüm harfleri küçük yapmaya yarıyor.

entry = input("Kullanıcı Adı : ") 
harf = 0 
for i in entry: 
   with open(f"{harf}.txt","w") as file:
       file.write(i) 
   harf += 1
     
for i in range(len(entry)):
    with open(f"{i}.txt","r") as file:
        data = file.read()
    if data.lower() == "a":
        x = 22
        y = ((7 * x) + 9) - (x / 2)
        with open("Yeni Metin Belgesi.txt" , "r") as a:
            a.seek(0)
            verilen = len(a.read())
            with open("Yeni Metin Belgesi.txt" , "a") as A:
                A.seek(verilen + 2)
                A.write(y)
    elif data.lower() == "b":
        x = 13
        y = ((((5 * x) + 11) - (x - 1)) / 2) + 1
        with open("Yeni Metin Belgesi.txt" , "r") as b:
            b.seek(0)
            verilen = len(b.read())
            with open("Yeni Metin Belgesi.txt" , "a") as B:
                B.seek(verilen + 2)
                B.write(y)

hocam çıkmadan bir soru daha sorsam bu dosyaların içindeki harf değerlerini bulduktan sonra o harflere karşılık gelen sayı değerini bir fonksiyondan geçirip bir y değeri buldum ve bunu yeni metin belgesi adlı bir dosyaya kayıt etmeye çalıştım ama bu değer int olduğu için kaydedilmedi yazdı bununla ilgili bir çöüm varmı

str() komudunu kullanarak int değerini string e çevirebilirsin.

2 Beğeni

çok teşekkürler hocam iki gündür kafayı yemek üzereydim nasıl yapabilirim diye

Ayrıca daha az kod kullanmak için metin belgesini “a+” modunda açmayı deneyebilirsiniz.

1 Beğeni