2013-11-02 3 views
-2

저는 파이썬 프로그래밍의 초보자입니다. 저는 수업 숙제를하고 있으며 지금까지 아래의 코드를 받았습니다. 힘들어하는 다음 단계는 가장 낮은 점수와 평균 점수를 표시하거나 인쇄하는 기능을 작성하는 것입니다. 어떤 방향이라도 대단히 감사 할 것입니다.파이썬 함수는 가장 낮은 평균 점수를 얻습니다.

scores = """Aturing:Mark$86: 
Inewton:Mark$67.5: 
Cdarwin:Mark$90: 
Fnightingale:Mark$99: 
Cvraman:Mark$10:""" 

students = {} 
for studentdata in scores.split('\n'): 
data = studentdata.split(':') 
name = data[0] 
students[name] = {} 
for class_data in data[1:]: 
    if class_data: 
     Mark,class_score = class_data.split('$') 
     students[name][Mark] = class_score 

def Grade_Show(student,Mark): 
    if student in students: 
     if Mark in students[student]: 
      print "Student %s got %s in the assignment %s" % (student,students[student][Mark],Mark) 
     else: 
      print "subject %s not found for student %s" % (Mark,student) 
    else: 
     print "student %s not found" % (student) 

#do some testing 
Grade_Show("Inewton","Mark") 
+1

정확히 구현할 수 없거나 잘못 되었습니까? – alko

답변

0

테스트와 함께 : scores = {'alex': 1, 'dave': 1, 'mike': 2}; 첫째

가, 가장 낮은 점수를 찾으려면 min() 기능을 사용하십시오.

그래서 :

min_keys = [k for k, x in scores.items() if not any(y < x for y in scores.values())] 

print('Lowest score:', str(min(scores.values())) + '.', 'Achieved by: ') 
for student in min_keys: 
    print(student) 

출력 : 둘째

Lowest score: 1. Achieved by: 
alex 
dave 

, 당신은 평균 평균 찾고있는 가정, 당신은이 작업을 수행 할 것입니다 :

print('The average score was:', str(sum(scores.values())/len(scores)))

출력 :

!

The average score was: 1.3333333333333333

희망은 내가 도움이 - 당신이 지금해야 할 일은 data라는 매개 변수를 사용하여 해당 코드를 포함하는 함수를 만드는 것입니다. 그렇게하면 여러 클래스 나 테스트를 나타내는 여러 개의 사전을 가질 수 있습니다. 코드의 score의 모든 인스턴스를 data으로 바꿉니다.

또한 '최소 점수'코드는 최대 점수를 부여하도록 쉽게 수정할 수 있습니다. 마지막으로, 프로그램의 크기에 따라 print 문을 사용하는 대신 출력을 변수에 저장할 수 있으므로 나중에 다시 호출 할 수 있습니다. 이것은 또한 결과가 return이어야하며, print이 아님을 의미합니다.

0

고민하고 다음 단계는 함수를 작성하는 것입니다 것 쇼/인쇄 가장 낮은 점수와 평균 점수.

1 단계 : 당신은 당신의 데이터 구조 (students)와 print에만 점수를 반복 할 수

? 당신이 그것을 할 수 있다면, 당신은을 통해 실행할 수 있어야하며 가장 낮은 점수를 찾으십시오.

가장 낮은 점수를 찾으려면 상상 가능한 최대 값으로 시작하고 (예를 들어 가능한 한 가장 높은 값으로 100을 설정하고 모든 점수를 반복합니다 (for score in score... 등) 테스트하여 당신이 얻는 각 값이 당신이 만든 변수보다 낮 으면.

낮은 경우 인 경우 생성 한 변수를 더 낮은 값으로 설정하십시오. 그 후, 새로운 값이이 새로운 '최저값'보다 작은지를보기 위해 iterating을 계속할 것입니다. 그것이 끝날 때까지, 그것은 당신에게 가장 낮은 가치를 제공해야합니다.

까다로운 부분 중 하나는 질문에 필요한 경우 가장 낮은 값과 가장 낮은 값을 모두 인쇄하는 것입니다.

단계 : 2

, 당신은 당신이 점수를 반복 비슷한 일을 할 것이다, 평균 문제를 해결할 새로운 데이터 구조에 추가 한 후 평균을하는 방법을 알아낼 그들.

관련 문제