2011-03-23 4 views
0

나는이 책을 사용하여 파이썬을 배우려고했지만이 도전에 매달려있는 것 같다.절대 초보자를위한 파이썬 프로그래밍 제 7 장 챌린지 2

"2. 퀴즈 챌린지 게임을 개선하여 파일에 높은 점수 목록을 유지합니다. 플레이어는 목록을 만들면 플레이어의 이름과 점수를 기록해야하며, 절인 개체를 사용하여 최고 점수를 저장하십시오. "

나는 사전 점수를 분류 할 수 없기 때문에 사전 대신 목록을 사용하기로 결정했습니다. 그러나 질문 당 사전 버전을 업데이트하려면 사전을로드 할 때 다른 변수를 입력 한 다음 해당 변수를 원본에 추가하십시오.

는 그래서는 다음과 같이 갈 것이다 :

먼저 나는 사전을 잡고 빈 목록을 만들었습니다.

high_scores = [] 

그런 다음 점수를 업데이트하기 위해 별도의 프로그램을 실행하십시오.

new_score = {score: player} 

f = open("high_Scores.txt", "rb") 
score_list = high_scores 
f.close() 
score_list.append(new_score) 
score_list = score_list[:10] 
f = open("high_scores.txt", "wb") 
pickle.dump(score_list, f) 
f.close() 

이것은 10 점 만 보유하고 사전을 업데이트합니다. 나는 점수를 로 분류하는 방법을 알아 내지 못했고 독서에서이 시점에서 책을 읽는 것이 가능하지 않다고 생각합니다. 목록이나 다른 것으로 전환하려고 생각했습니다. 나는 정말로 그것에 관해 연구하지 않았다. 그래서 나는이 점에서 확실하지 않다. 네가 알아 내면 알려줘. 내가 여기 당신을 위해 모든 것을 할 싶어하지 않지만

+3

먼저 정직한 시도를 먼저하고, 실패 할 경우 갖고있는 것과 함께 돌아와 __then__ 도와주세요. 너가 이것을하지 않으면 너는 전혀 배우지 않을 것이다. – orlp

+0

파이썬에서 표현하기 어려운 부분은 무엇입니까? – nmichaels

+6

가짜 코드가 좋아 보인다. 이제 그것을 파이썬 구문에 넣는 방법을 찾아보십시오. 그 어려운 부분은 내 생각에 이루어집니다 – Spidy

답변

0

는 몇 가지 힌트입니다 : 사전에

필요 없음, 사전 순서가 있습니다. 정렬 된 2 조의 목록을 사용하십시오 : high_scores = [(score1, name1), (score2, name2), ...]. 역순으로 목록을 정렬하십시오 : high_scores.sort(reverse=True). listappendpop 메서드를 사용하여 새 항목을 추가하고 더 이상 상위 10 개에없는 항목을 제거하십시오.

+0

힌트를 주셔서 감사합니다. 사전이 작동하지 않을 것이라는 것을 깨달았 기 때문에 목록을 만지기 시작했습니다. 목록을 작동시키는 방법을 생각할 수 없지만 힌트가 실제로 도움이되었습니다. 정말 힌트를 주셔서 감사합니다. 감사! – Ben

관련 문제