초보자가 여기 프로그래밍하는 데 귀하의지도가 필요합니다.Python 연습 : 각 학생의 최소 및 최대 점수를 계산합니다.
저는 무료 온라인 강좌에서 파이썬을 배우고 있습니다.이 연습은 이미 해결했지만 다른 두 가지 방법을 사용하면 다른 결과를 얻을 수 있습니다. 그래서 여기에 ..
질문 : 텍스트 파일 studentdata.txt (아래 표시)를 사용하여 각 학생의 최소 및 최대 점수를 계산하는 프로그램을 작성하십시오. 그들의 이름도 인쇄하십시오.
studentdata.txt:
joe 10 15 20 30 40
bill 23 16 19 22
sue 8 22 17 14 32 17 24 21 2 9 11 17
grace 12 28 21 45 26 10
john 14 32 25 16 89
내 마지막 시도 :
xFile = open("studentdata.txt", "r")
for xLine in xFile:
xList = xLine.split()
min = 100
max = 0
for x in xList[1:]:
if int(x) > max:
max = int(x)
for x in xList[1:]:
if int(x) < min:
min = int(x)
print(xList[0],"\tmin: ",min,"\tmax: ",max)
xFile.close()
결과 :
다음joe min: 10 max: 40
bill min: 16 max: 23
sue min: 2 max: 32
grace min: 10 max: 45
john min: 14 max: 89
나는 사이트에서 제공하는 소정의 대답 (내 스타일을 재 작성)에 비해 :
xFile = open("studentdata.txt", "r")
for xLine in xFile:
xList = xLine.split()
print(xList[0],"\tmin: ",min(xList[1:]),"\tmax: ",max(xList[1:]))
xFile.close()
어느 것이 더 간단합니까? 그것은 약간 다른 (그러나 중요한) 결과를 T : 에 대한 결과가이 다른 소송을 제기 할 것을
joe min: 10 max: 40
bill min: 16 max: 23
sue min: 11 max: 9
grace min: 10 max: 45
john min: 14 max: 89
알 수 있습니다. '자동'버전은 올바른 결과를 산출하지 못합니다. 어떻게 된거야?
감사합니다.
자동 버전을 worked-, 문자열 9는 11보다 "더 큰"있는 그대로 - 나노 초 이전 @ niemmi 대답 ;-) – Dilettant
그것은 분명하다. 감사! 그러나 마지막 명령을 수정하려고했습니다 : print (xList [0], "\ tmin :", min (int (xList [1 :])), "\ tmax :", max (int (xList [1 :]))),이 오류가 발생했습니다 : TypeError : int() 인수는 'list'가 아닌 문자열 또는 숫자 여야합니다. 분명히 max/min은 'list'모드를 지원하지 않습니다. 따라서 첫 번째 (수동) 대답이 올바른 것입니다. 어떻게 이것을 단순화 할 수 있습니까? 감사합니다 – NunNo
아, 아니, int() 메서드에 인수로 지정하여 int로 문자열 목록을 캐스팅 할 수 없습니다. int 캐스트는 목록에서 읽을 때 수행해야하는 작업입니다 .--) min 및 (x : xList [1 :]]의 x에 대한 int (x)) – Dilettant