SIRINDOSCARF
Kilopat
Daha fazla
- Cinsiyet
- Erkek
[CODE lang="python" title="Arkadaşının yazdığı kod"]def Hesapla(b=48):
x=0
for a in range(1,99,1):
if (b == a**3-a**2):
print(a)
x+=1
else:
if x==0:
print("0-100 arasında öyle bir tam sayı değeri yoktur")
b = int(input())
Hesapla(b)[/CODE]
[CODE lang="python" title="default değeri eklendiğinde benim kod"]def hesapla(b=48):
l = []
for a in range(101):
if b == (a**3)-(a**2):
l.append(a)
if l == []:
print("Şartı Sağlayan Bir değer Yok")
else:
print(l)
hesapla()[/CODE]
Gördüğünüz üzere hiçbir fark yok ikisi de aynı.
Yalnızca arkadaşınız gereksiz olarak for döngüsündeki range sınıfının üçüncü parametresine 1 yazmış. Bu üçüncü parametre kaçar kaçar ilerleyeceğini belirten fonksiyon default değeri zaten 1 yani 3. parametre verilmediği taktirde 1 olacak. Benim yazdığım kodu düzenleyip b parametresinin default argumanı 48 yaptığımızda ayrıyeten fonksiyona parametre vermemiş oluyoruz.
Son olarak yazdığım koddaki döngüde kullanılan range(101) şu anlama geliyor: 0-100 arasındaki sayılar.
Arkadaşınız 1-98 arasındaki sayılarla işlem yapan bir döngü kurmuş.
Bizden istenen de 0-100 arasındaki sayılarla işlem yapması.
Tamam o kısmı çözük.
Kod:
def Hesapla(b=48):
for a in range(1,99,1):
if (b == a**3-a**2):
print(a)
break
else:
print("0-100 arasında öyle bir tam sayı değeri yoktur")
b = int(input())
Hesapla(b)
Şeklinde olunca çıkıyor.
Break yazınca direk çıktı.