01. 비와 비율, 그리고 백분율 엔진

1. 학습 목표 (Learning Objectives)

  • 두 가지 수나 양의 크기를 직관적으로 대조하는 수학의 언어, ‘비(Ratio, $A:B$)’의 개념과 읽는 법을 학습합니다.
  • 비의 기호 콜론($:$)을 부숴버리고 단 하나의 실수값인 ‘비의 값(비율)’ 로 압축하는 원리와, 이를 데이터 분석의 핵심 무기인 백분율(%, Percentage) 로 환산하는 파이썬 코딩 실습을 체험합니다.

2. 뺄셈의 하수 vs 나눗셈의 고수

A 학생의 키는 100cm, B 학생의 키는 50cm입니다. 이 두 명의 차이를 우리는 두 가지 방식으로 서술할 수 있습니다.

  • 초등학생(뺄셈) : “A가 B보다 50cm 더 큽니다.” ($100 - 50 = 50$)
  • 해커(나눗셈) : “A는 B 키의 완벽히 2배(Double) 스케일입니다.” ($100 \div 50 = 2$)

초딩의 대답은 단순히 숫자의 절대적인 간격을 잰 것에 불과하지만, 해커의 대답은 우주 공간 어디로 데려가든 형태가 일그러지지 않는 성가신 상대적 팩터(Factor) 비율 을 꿰뚫어 본 것입니다! 이처럼 두 수의 배율(Multiplier) 덩치를 비교할 때 우리는 ‘비(Ratio)’ 라는 멋진 수학 기호를 씁니다.

3. 비(Ratio) 기호와 비의 값(비율)

[!NOTE] 비의 기호 콜론($:$): $A$와 $B$ 두 수를 비교할 때 우리는 $A:B$ 라고 적고, “$A$ 대 $B$” 라고 읽습니다. 여기서 오른쪽($B$) 코너에 있는 녀석이 철저한 ‘기준량(Base)’ 이 되고, 왼쪽($A$) 코너에 있는 녀석이 ‘비교하는 양(Target)’ 이 됩니다.

  • $A:B$ 의 읽는 법 바리에이션 3가지
    1. $A$ 대 $B$
    2. $A$의 $B$에 대한 비 (가장 헷갈리는 문장! “대한”이 붙은 $B$가 기준량입니다!)
    3. $B$에 대한 $A$의 비

[비의 값(율) 팩토링] 번거롭게 $3:5$ 처럼 두 숫자를 들고 다닐 필요 없이, 아예 앞의 숫자(비교양)를 뒤의 숫자(기준량)로 나누어 버려서 단일한 스탯 값으로 도출한 것이 비의 값(비율) 입니다.

$\mathbf{\text{비의 값}} = \frac{\text{비교하는 양}}{\text{기준량}} = \frac{A}{B}$

  • 예시: 나(비교양 3개), 너(기준량 5개)의 비는 $3:5$. 비의 값은 $\frac{3}{5} = \mathbf{0.6}$ (나의 전투력은 너의 0.6배 수준이다!)

4. 파이썬 Percentage 100% 자동 환산기 (Python)

우리가 뉴스나 게임에서 가장 많이 보는 스탯은 $0.2$, $0.6$ 같은 허접한 소수점이 아니라 $20\%$, $60\%$ 같은 직관적인 백분율(Percentage) 입니다. 백분율이란, 기준량을 무조건 100 이라는 절대 숫자로 뻥튀기시켰을 때, 내 비교양이 차지하는 퍼센티지 덩치를 뜻합니다.

구하는 법은 아주 심플합니다. (비의 값 $\times 100$)

가상의 게임 랭킹이나 주식 투자 지분율을 한 방에 % 기호로 돌려주는 파이썬 백분율 자동 연산 함수를 짜보겠습니다!

def calculate_ratio_and_percent(target_a, base_b):
    """
    두 양(target_a, base_b)을 입력받아 [비의 값]과 [백분율(%)]을 렌더링하는 함수
    """
    print("-" * 50)
    print(f"📊 [입력된 비 (Target:Base)] = {target_a} : {base_b}")
    
    if base_b == 0:
        print("💥 ERROR: 기준량(Base)은 절대 0이 될 수 없습니다!! (우주 파괴 됨)")
        return
    
    # 1. 비의 값(Ratio Value) 산출: 나눗셈 (A / B)
    ratio_value = target_a / base_b
    print(f"✔️ 비의 값 (Value) : {target_a} / {base_b} = {ratio_value:.3f} (소수점 3자리)")
    
    # 2. 백분율(Percentage, %) 산출: 비의 값 * 100
    percentage = ratio_value * 100
    print(f"✔️ 백분율 (Percent): {percentage:.1f} %")
    
    # 3. 비주얼 프로그레스 바 렌더링 (10단위 게이지)
    # 제한: 퍼센트가 100%를 초과할 수도 있으므로 max 10칸 처리
    bar_length = min(int(percentage // 10), 10)
    empty_length = 10 - bar_length
    progress_bar = "" * bar_length + "" * empty_length
    print(f"🔋 [차트 스캐너]  [{progress_bar}] {percentage:.1f}% 지분율 확보!")
    print("-" * 50)

# 시뮬레이션 가동
print("🚀 [파이썬 백분율 엔진 구동 테스트]")
# 1. 투표수 50표 중 내 표가 17표인 경우 (17:50)
calculate_ratio_and_percent(17, 50)

# 2. 애플 주식 200주 중 내가 25주 보유한 경우 (25:200)
calculate_ratio_and_percent(25, 200)

# 3. 목표 판매량 80대인데, 내가 미친 듯이 팔아서 120대 달성한 경우 (초과 = 120:80)
calculate_ratio_and_percent(120, 80)

파이썬 엔진 렌더링 결과:

🚀 [파이썬 백분율 엔진 구동 테스트]
--------------------------------------------------
📊 [입력된 비 (Target:Base)] = 17 : 50
✔️ 비의 값 (Value) : 17 / 50 = 0.340 (소수점 3자리)
✔️ 백분율 (Percent): 34.0 %
🔋 [차트 스캐너]  [███░░░░░░░] 34.0% 지분율 확보!
--------------------------------------------------
--------------------------------------------------
📊 [입력된 비 (Target:Base)] = 25 : 200
✔️ 비의 값 (Value) : 25 / 200 = 0.125 (소수점 3자리)
✔️ 백분율 (Percent): 12.5 %
🔋 [차트 스캐너]  [█░░░░░░░░░] 12.5% 지분율 확보!
--------------------------------------------------
--------------------------------------------------
📊 [입력된 비 (Target:Base)] = 120 : 80
✔️ 비의 값 (Value) : 120 / 80 = 1.500 (소수점 3자리)
✔️ 백분율 (Percent): 150.0 %
🔋 [차트 스캐너]  [██████████] 150.0% 지분율 확보!
--------------------------------------------------

이처럼 파이썬 프로그래밍과 수학의 비의 값 단일화 연산법 이 만나면, 그깟 뺄셈 따위는 집어치우고 대상의 타겟 데이터가 내 배터리 기준 게이지에서 정확히 몇 퍼센트 비율을 타격하고 있는지 초정밀 100% 게이지 차트로 영원히 변환 측정해 낼 수 있습니다.

5. 학습 정리 (Summary)

  1. 비(Ratio) $\mathbf{A:B}$: 콜론 기호를 써서 비교되는 덩어리($A$)와 기준이 되는 덩어리($B$)를 맞붙여 배수 성질을 대조하는 단위 방식입니다. (예: $2:3$, $2$의 $3$에 대한 비)
  2. 비율(Percentage): 2개로 분리된 기호 $A:B$를 $\frac{A}{B}$라는 단 하나의 나눗셈 퍼포먼스 값(비의 값)으로 산출한 뒤, 직관적인 시각화를 위해 $\times 100$을 곱해 100조각의 케이크 파이 단위 백분율(%)로 강제 스케일링하는 테크닉입니다.
서브목차