मैंने निम्नलिखित कोड किया है, लेकिन अगर छात्र एक विषय में फेल हो जाता है तो यह ग्रेड प्रिंट करता है यहां कोड दर्ज करें

sub1=int(input("Enter marks of the first subject: "))
sub2=int(input("Enter marks of the second subject: "))
sub3=int(input("Enter marks of the third subject: "))
sub4=int(input("Enter marks of the fourth subject: "))
sub5=int(input("Enter marks of the fifth subject: "))
avg=(sub1+sub2+sub3+sub4+sub4)/5

if avg >= 60:
    print(avg)
    print('a')
elif avg >= 50 and avg < 60:
    print(avg)
    print('b')
elif avg >= 40 and avg < 50:
    print(avg)
    print('c')
elif avg >= 35 and avg < 40:
    print(avg)
    print('d')
elif sub1 or sub2 or sub3 or sub4 or sub5 < 35: #not sure about this
    print('na')
    print("you're failed")
1
kumarparmar55 7 सितंबर 2020, 12:47

2 जवाब

सबसे बढ़िया उत्तर

यह काम कर जाना चाहिए:

results = [sub1,  sub2,  sub3,  sub4,  sub5]
if any([res < 35 for res in results]):
    print('na')
    print("you've failed")
elif avg >= 60:
    print(avg)
    print('a')
elif avg >= 50:
    print(avg)
    print('b')
elif avg >= 40:
    print(avg)
    print('c')
elif avg < 40:
    print(avg)
    print('d')

कुंजी पंक्ति की व्याख्या:

यदि कोई हो ([res <35 परिणामों में res के लिए]) सूची समझ, यह जांचना कि क्या परिणाम में प्रत्येक आइटम 35 से कम है। किसी भी के उपयोग का अर्थ है कि यदि कोई या अधिक परिणाम 35 से कम है, तो स्थिति का मिलान किया जाता है। के बारे में अधिक जानकारी के लिए यहां डॉक्स देखें। कोई भी

0
Mostafa Ghadimi 8 सितंबर 2020, 10:28

आपका अंतिम elif विवरण वह नहीं कर रहा है जिसकी आप अपेक्षा करते हैं। or कथनों के लिए, आपको or कथनों के बीच प्रत्येक बिट कोड के बारे में कुछ ऐसा सोचना होगा जो सही या गलत लौटाएगा।

उदाहरण के लिए, यह जांचने के लिए कि क्या दो चरों में से कोई एक, a और b, 5 से कम हैं, आप यह करना चाहेंगे

if a < 5 or b < 5:

इसलिए आप परीक्षण कर रहे हैं कि या तो (a<5) सच है, या (b<5) सच है। यदि इसके बजाय आपके पास if a or b < 5: होता तो आप वास्तव में परीक्षण कर रहे होते कि क्या (a) सत्य था, या (b<5) सत्य था, जो कि वह नहीं है जो आप करना चाहते थे।

तो इसे अपने कोड पर लागू करने के लिए, मुझे लगता है कि आपको उस अंतिम कथन को शीर्ष पर ले जाना चाहिए, और उसके बाद अन्य शर्तों को घोंसला बनाना चाहिए।

if any(np.array([sub1, sub2, sub3, sub4, sub5]) < 35):
    print('Unfortunately, you have failed.')
else:
    #If they have managed to get at least 35 in each of their assessments
    if avg >= 60: 
        Grade = 'A'
    elif avg < 60 and avg >= 50: 
        Grade = 'B'
    elif avg < 50 and avg >= 40: 
        Grade = 'C'

    print('Overall, average:', avg, ', grade:', Grade)

any() कथन if sub1<35 of sub2<35 ... करने का एक अधिक साफ-सुथरा तरीका है - np.array([sub1, sub2, sub3, sub4, sub5]) < 35 सही और गलत मानों की एक सरणी लौटाएगा, और any() फ़ंक्शन जांच करेगा कि क्या उस सरणी में कोई भी सही मान हैं (अर्थात यदि कोई ग्रेड 35 से नीचे है)।

0
Bethan 7 सितंबर 2020, 13:14