Mengapa Python tidak membaca baris berikutnya (if)?
Saya menulis program tentang Pythagoras Saya mendapat jawaban saya tetapi python tidak membaca (putus) setelah (jika). Judul program saya: (Triplet Pythagoras Khusus), ada satu jawaban untuk ((a+b+c=1000)&(a**2 + b**2 =c**2) )
Saya ingin menemukan b c. Saya tahu (a=200, b=375, c=425)
tetapi ketika program dimulai, itu tidak pernah berhenti dan terus berlanjut. Ini juga mengetikkan produk dari ketiga angka ini.
import random as r
def pyth(b,d,c):
pyth = None
if b**2+c**2 == d**2 :
pyth = True
h=d*c*b
print(h)
return pyth
if b**2+d**2==c**2 :
pyth= True
h=d*c*b
print(h)
return pyth
if d**2 + c**2 == b**2:
pyth =True
h=d*c*b
print(h)
return pyth
else:
pyth = False
return
a = list(range (150,1000))
b=0
c=0
d=0
h = 0
for i in range(0,10000000):
b = r.choice(a)
c = r.choice(a)
d = 1000-b-c
e = b+c+d
if e == 1000 :
pyth(b,d,c)
if pyth == True:
break
else:
continue
Jawaban
pyth
Variabel tidak diperlukan . Anda bisa menggunakan return True
atau return False
.
The if
Pernyataan perlu menjorok sehingga dalam lingkaran.
Anda perlu menguji nilai pemanggilan fungsi.
Anda tidak perlu else: continue
. Pengulangan secara otomatis berlanjut kecuali Anda memutuskannya. continue
hanya diperlukan saat Anda ingin melewatkan sisa badan pengulangan dan memulai iterasi berikutnya; itu tidak dibutuhkan di ujung tubuh.
import random as r
def pyth(b,d,c):
if b**2+c**2 == d**2 :
h=d*c*b
print(h)
return True
if b**2+d**2==c**2 :
h=d*c*b
print(h)
return True
if d**2 + c**2 == b**2:
h=d*c*b
print(h)
return True
else:
return False
a = list(range (150,1000))
for i in range(0,10000000):
b = r.choice(a)
c = r.choice(a)
d = 1000-b-c
e = b+c+d
if e == 1000 and pyth(b,d,c)
break