एक फ़ंक्शन लिखें is_better_than_avg(students, pos)
, जो दो तर्क लेता है students
सभी छात्रों के शब्दकोशों की सूची है स्थिति एक पूर्णांक है - उस सूची में छात्र की स्थिति जिसे हम जांचना चाहते हैं। चेकिंग इस तरह काम करता है - स्कूल में सभी ग्रेडों का औसत गिनें (ऊपरी सेल) मान की तुलना छात्र के औसत से करें। यदि छात्र का औसत स्कूल औसत से अधिक है, तो True
लौटाएं, अन्यथा, False
लौटाएं।
मुझे नहीं पता कि प्रोग्राम का दूसरा निष्पादन False
के बजाय True
क्यों कहता है।
# Function for testing purposes
def test(got, expected):
if got == expected:
prefix = ' OK '
else:
prefix = " Something's wrong "
print(prefix,' got:',repr(got),'expected:',repr(expected))
list_of_students = []
list_of_students.append(kosma) # appending the student k1sma
def is_passed(student_dict):
return avg(student_dict)>=3.0
def school_avg(students):
all = 0
licznik = 0
for a in students:
all = all + avg(a) #dodaje średnią sprawdzanego studenta do 'all'
licznik = licznik + 1 #dodaje 1 do liczniku
return all / licznik
list_of_students.append({
"username": "mikub",
"age":24,
"is_blocked": False,
"grades": [5,5,5,5]
})
list_of_students.append({
"username": "ewa",
"age":24,
"is_blocked": False,
"grades": [1,3,3,2,1,1,1,1,1,1]
})
list_of_students.append({
"username": "robert",
"age":24,
"is_blocked": False,
"grades": [5,5,5,5,5,1]
})
list_of_students.append({
"username": "radek",
"age":24,
"is_blocked": False,
"grades": [1,3,3,2,5,5,5]
})
list_of_students.append({
"username": "kasia",
"age":24,
"is_blocked": False,
"grades": [5,5,5,1]
})
list_of_students.append({
"username": "kasia",
"age":24,
"is_blocked": False,
"grades": [5,1,1,1,1,5,1]
})
list_of_students.append({
"username": "jola",
"age":24,
"is_blocked": False,
"grades": [5,4,5,5,5,4]
})
#this is the important part
def is_better_than_avg(students,pos):
for pos in students:
if avg(pos) > school_avg(students):
return True
elif avg(pos) < school_avg(students):
return False
test(is_better_than_avg(list_of_students,0),True) #returns True as it should
test(is_better_than_avg(list_of_students,6),False) #idk why this returns True as well
1 उत्तर
मुझे लगता है कि आपको is_better_than_avg
फ़ंक्शन को इस तरह बदलना चाहिए:
def is_better_than_avg(students,pos):
student = students[pos]
if avg(student) > school_avg(students):
return True
elif avg(student) < school_avg(students):
return False
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
kosma
औरavg
परिभाषित नहीं हैं, कृपया इसे ठीक करेंjola
का औसत 4.6 है, जो स्कूल के औसत 3.5 . से अधिक है