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)
]