저는 초보자이며 원시 점수 목록을 문자 성적 목록으로 변환하는 프로그램을 작성하려고합니다. 루프, 파일 열기/닫기, if-elif-else 문 및 내 과제 기준에 대한 2 개의 함수가 필요합니다.왜이 유형 오류가 발생합니까? TypeError : '> =' 'str'과 'int'인스턴스 간에는 지원되지 않습니다.
내가 테스트를 위해 개방하고있어 파일은 다음과 같습니다 : 여기
108
99
0
-1
지금까지 본 프로그램의 :
def convertscore(score):
grade = ""
if score >=101:
print("Score is over 100%. Are you sure this is right?")
grade = "A"
elif score >=90:
grade = "A"
elif score >=80 <=89:
grade = "B"
elif score >=70 <=79:
grade = "C"
elif score >= 60 <=69:
grade = "D"
elif score >=0 <=59:
grade = "F"
elif score < 0:
print("Score cannot be less than zero.")
else:
print("Unable to convert score.")
print(grade)
def main():
print("This program creates a file of letter grades from a file of scores on a 100-point scale.")
print()
#get the file names
infileName = input("What file are the raw scores in? ")
outfileName = input("What file should the letter grades go in? ")
#open the files
infile = open(infileName, 'r')
outfile = open(outfileName, 'w')
#process each line of the output file
for line in infile:
#write to output file
print(convertscore(line), file=outfile)
#close both files
infile.close()
outfile.close()
print()
print("Letter grades were saved to", outfileName)
main()
내가 그것을 실행하려고하면, 내가 유형 오류가 발생합니다 :
Traceback (most recent call last):
File "/Users/xxxx/Documents/convertscore.py", line 54, in <module>
main()
File "/Users/xxxx/Documents/convertscore.py", line 45, in main
print(convertscore(line), file=outfile)
File "/Users/xxxx/Documents/convertscore.py", line 10, in convertscore
if score >=101:
TypeError: '>=' not supported between instances of 'str' and 'int'
convertedcore 프로그램이 자체적으로 정상적으로 작동하는 것처럼 보이므로 혼란 스럽습니다. 당신의 도움에 미리 감사드립니다.
문자열을 비교하고 있습니다. 'line' - 정수'101'에 대해서, print (convertedcore (line), file = outfile)에서'line'을'int (line)'로 바꾸는 것이 좋습니다. –