Console'daki output ları değişkene atama

Outputlarımı değişkene atadığımda “None” sonucunu veriyor.

Kodu görebilirmiyiz ?

print fonksiyonu bir değer döndürmediği için None veriyor. Önce değişkene atayın sonra print kullanın. Eğer kullanıcıdan girdi almaya çalışıyorsanız input fonksiyonunu kullanın. Bir de ne yapmaya çalıştığınızı biraz daha açık anlatırsanız daha kolay cevaplayabiliriz.

def check_intersection(talepler: int, hatlar: int):
    for i in read_file(talepler):
        for j in read_file(hatlar):
            intersection = False
            save = [k for k in j]
            if i[0] in j:
                index1 = j.index(i[0])
                j.remove(i[0])
                if i[1] in j:
                    index2 = save.index(i[1])
                    if index2 >= index1:
                        intersection = True
            if intersection:
                print(True, "->", i, save)
            else:
                continue
     
check_intersection("talepler.txt", "hatlar.txt")


hatlar = check_intersection("talepler.txt", "hatlar.txt")
print(hatlar)

Gerekli bölümü şu şekilde değiştirirseniz çıktı alabileceksiniz:

if intersection:
    return "True->"+i+save

Bir de yield deyimi var. Araştırmanızı öneririm.

Output’ları değişkene atamak yerine değişkenlerin output vermesini sağlayın.

Nasıl yapabilirim onu?

Basitçe :

output = input("Verilmesi istenen çıktıyı giriniz : ")
print(output)

Sizinle paylaştığım ilk intersection fonksiyonu yerine sonradan paylaştığımı kullanmanızı tavsiye ederim.

def intersection(x, y):
    result = {i: False for i in x}
    if len(result) == 1 and y.count(x[0]) < x.count(x[0]):
        return False
    for i, j in enumerate(x):
        for k, m in enumerate(y):
            if j == m and all(n in y[k:] for n in x[i:]):
                result[j] = True
    return all(result.values())


def check_intersection(filename1, filename2):
    return [
        (intersection(i, j), i, j)
        for i in read_file(filename1)
        for j in read_file(filename2)
    ]