पायथन अगली पंक्ति (यदि) क्यों नहीं पढ़ता है?
मैंने पाइथागोरस के बारे में प्रोग्राम लिखा था मुझे मेरा जवाब मिल गया लेकिन (if) के बाद पाइथन (ब्रेक) नहीं पढ़ता है। मेरे कार्यक्रम का शीर्षक: (विशेष पायथागॉरियन ट्रिपलेट), एक उत्तर मौजूद है क्योंकि ((a+b+c=1000)&(a**2 + b**2 =c**2) )
मैं a b c खोजना चाहता हूं । मुझे पता है (a=200, b=375, c=425)
लेकिन जब प्रोग्राम शुरू होता है तो यह कभी नहीं रुकता और चलता रहता है। यह इन तीन संख्याओं का गुणनफल भी टाइप करता है।
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
जवाब
pyth
चर की कोई आवश्यकता नहीं है । आप बस उपयोग कर सकते हैं return True
या return False
.
if
बयान इंडेंट किए जाने की तो यह पाश में है की जरूरत है।
आपको फ़ंक्शन कॉल के मान का परीक्षण करने की आवश्यकता है।
आपको जरूरत नहीं है else: continue
। लूप्स अपने आप तब तक जारी रहते हैं जब तक आप उनमें से बाहर नहीं निकल जाते। continue
केवल तभी आवश्यक है जब आप शेष लूप बॉडी को छोड़ना चाहते हैं और अगला पुनरावृत्ति प्रारंभ करना चाहते हैं; शरीर के अंत में इसकी आवश्यकता नहीं है।
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