관리 메뉴

RUBY

근삿값(파이썬) 본문

프로그래밍 언어/Python

근삿값(파이썬)

ruby-jieun 2023. 1. 25. 22:04

 

 

 

근삿값


 

 

 

 

근삿값

특정 값(참값)에 가장 가까운 값을 근삿값이라고 한다.

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

 

 

'프로그래밍 언어 > Python' 카테고리의 다른 글

재귀 알고리즘(파이썬)  (0) 2023.01.25
평균(파이썬)  (1) 2023.01.25
최빈값(파이썬)  (0) 2023.01.25
최솟값(파이썬)  (0) 2023.01.25
최댓값(파이썬)  (0) 2023.01.25
Comments