Esdeath.xyz
Megapat
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ı.
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)
Yazdığımı bir denermisiniz ?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ı.
Yazdığımı bir dener misiniz?
hemen hemen aynı şeyleri söylüyoruz zaten
Nasıl değer girilmiyor ?Kodu denedim. Çalıştır dediğim zaman direk koddan çıkıyor. Değer girilmiyor.
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(0)
[0, 1]
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(25)
Şartı Sağlayan Bir değer Yok
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()
Bu matematik işlemini kağıt üzerinde gerçekten hesaplayıp test etmedim. Buradaki algoritmaya göre a'nın küpü eksi a'nın karesinin farkı belirlediğimiz b parametresine eşit mi değilmi onun kontolünü yapıyor. Eşit ise eşit olan değerleri değil ise boş bir listeyi döndürüyor(bizde bunu yakalayıp şarta uymuyor diyoruz)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()
Kodunda "[4]" şeklinde bir çıktı veriyor ve direk çıkıyor. Değer girilmiyor.
En son attıklarında galiba yazdığın değer için direk sonuç çıkıyor. Ama yine değer girlmiyor onda.
Değer girmekten kastın bir input fonksiyonunun olmaması mı ?Ama yine değer girlmiyor onda.
Bu matematik işlemini kağıt üzerinde gerçekten hesaplayıp test etmedim. Buradaki algoritmaya göre A'nın küpü eksi A'nın karesinin farkı belirlediğimiz b parametresine eşit mi değil mi onun kontolünü yapıyor. Eşit ise eşit olan değerleri değil ise boş bir listeyi döndürüyor(bizde bunu yakalayıp şarta uymuyor diyoruz)
Kodda 4 çıktısının vermesinin sebebi b parametresine herhangi bir arguman vermediğimiz için. Burada da default hali 48 olduğundan 48 ile ilgili bir işlem yapıyor bundan dolayı 4 sonucu veriyor.
Fonksiyonda oluşturulan b parametresinin yanına bakarsanız "=48" ibaresini görürsünüz. Bu da bu fonksiyona herhangi bir arguman (parametreye girilen bir değer) girilmezse atanan değer ile işlem yapmasını sağlıyor.
Değer girmekten kastın bir input fonksiyonunun olmaması mı?
Yoksa şakır şakır değer giriliyor.
Çok şükür.Aynen input fonksiyonunun olmadığı için direk çıkıyor.
Nereye işlemleri yazarken ?İşlemleri oraya yazarken paranteze gerek var mı?
Nereye işlemleri yazarken?
Ne işlemi?
Evet işlem önceliğini belirliyor.işlem önceliğini mi belirliyor?