저는 방금 파이썬을 배우기 시작했고 주사위 게임을위한 코드를 작성했고, 최고 점수를 텍스트 파일에 저장했으며 마지막에는 상위 5 개 최고 점수를 출력하고 싶습니다.
이 구조로 텍스트 파일에 각 점수를 저장했습니다 : 이름 : 점수
다음은 작성된 코드입니다.
file = open ("DiceGameScores","r")
for line in file:
file_line = line.split(": ")
value = file_line[-1]
print (value)
scores = value
print (scores)
mylist = []
mylist.extend (scores)
print (mylist)
mylist.sort(reverse = True)
print (mylist[0:5])
file.close()
확인하기 위해 점수와 목록을 출력했으며 실행하면 다음과 같이 표시됩니다.
62
58
57
44
46
46
['4', '6', '\n']
['6', '4', '\n']
46은 프로그램이 각 숫자를 목록 값으로 입력하고 코드의 새 줄 (\ n) 부분을 받아들이는 가장 최근의 최고 점수입니다.
상위 5 개 최고 점수를 순서대로 정수로 얻으려면 어떻게해야합니까?
두 가지 주요 문제는 다음과 같습니다.
extend
...extend
iterable (이 경우 파일의 문자열)을 취하고 모든 요소 를 목록에 추가 합니다. 이것이 당신이 얻는 이유 ['4', '6']
입니다. 그 외에도 루프 밖에서 수행하기 때문에 하나의 숫자 만 얻습니다. 다음을 사용하여 전체 번호를 추가해야 append
하고이를 내부 루프. 적절한 정렬을 위해 점수를 int로 변환해야합니다.
mylist = []
with open("DiceGameScores","r") as file:
for line in file:
file_line = line.split(':')
value = file_line[-1]
print (value)
mylist.append(int(value))
print(mylist)
mylist.sort(reverse=True)
print(mylist[:5])
를 사용 with
하여 파일을 여는 것에 유의하십시오. 이것은 Python에서 파일을 처리하는 관용적 인 방법입니다. 를 사용하는 것보다 훨씬 낫습니다 open/close
. 받아들이세요!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다