RUBY
근삿값(파이썬) 본문
근삿값
근삿값
특정 값(참값)에 가장 가까운 값을 근삿값이라고 한다.
import random
nums = random.sample(range(0, 50), 20)
print(f'nums: {nums}')
inputNum = int(input('input number: '))
print(f'inputNum: {inputNum}')
nearNum = 0
minNum = 50
for n in nums:
absNum = abs(n - inputNum)
# print(f'absNum: {absNum}')
if absNum < minNum:
minNum = absNum
nearNum = n
print(f'nearNum: {nearNum}')
nums: [20, 3, 47, 30, 27, 21, 4, 31, 46, 0, 34, 42, 22, 16, 10, 19, 36, 13, 7, 6]
input number: 1
inputNum: 1
nearNum: 0
근삿값 알고리즘을 이용해서 시험 점수를 입력하면 학점이 출력되는 프로그램을 만들어보자. 평균 점수에 따른 학점 기준 점수는 다음과 같다.
def getNearNum(an):
baseScore = [95, 85, 75, 65, 55]
nearNum = 0
minNum = 100
for n in baseScore:
absNum = abs(n - an)
if absNum < minNum:
minNum = absNum
nearNum = n
if nearNum == 95:
return 'A'
elif nearNum == 85:
return 'B'
elif nearNum == 75:
return 'C'
elif nearNum == 65:
return 'D'
elif nearNum <= 55:
return 'F'
scores = []
kor = int(input('input kor score: '))
scores.append(kor)
eng = int(input('input eng score: '))
scores.append(eng)
mat = int(input('input mat score: '))
scores.append(mat)
sci = int(input('input sci score: '))
scores.append(sci)
his = int(input('input his score: '))
scores.append(his)
totalScore = sum(scores)
print(f'totalScore: {totalScore}')
avgScore = totalScore / len(scores)
print(f'avgScore: {avgScore}')
grade = getNearNum(avgScore)
print(f'grade: {grade}')
input kor score: 66
input eng score: 77
input mat score: 88
input sci score: 99
input his score: 55
totalScore: 385
avgScore: 77.0
grade: C
Comments