Kod neden çalışmıyor

1den 100e kadar olan sayılardan pisagor üçgeni oluşturanları yazdırmaya çalışıyorum.Fakat sonuçta bir sürü none yazısı alıyorum.

def pisagor(a,b):
c=(a2+b2)**0.5
if(c==int(c)):
return a,b,c

for x in range(1,101):
for y in range(1,101):
print(pisagor(x,y))

None döndürmesinin sebebi, return ifadesini koşula bağlamanız. c köklü sayı olduğu zaman float türünde olduğu için tuple döndürmüyor ve çıktısı None oluyor. Mesela;

x = 1
y = 2
ise sonuç kök 5 olur, o da 2,2 gibi bir şey olur.

2 Beğeni

None dönme sebebi pisagor fonksiyonunda if durumu gerçekleşmezse hiçbirşey döndürmüyor oluşunuz. Mesela şöyle çalışır:


def pisagor(a,b):
    c=(a**2+b**2)**0.5
    if(c==int(c)):
        return a,b,c
    return a,b,"pisagor üçgeni oluşmadı"

for x in range(1,30):
    for y in range(1,30):
        print(pisagor(x,y))
2 Beğeni

Teşekkür ederim, çok yardımcı oldunuz.