통계학 3회차 복습

정확한 이해를 위하여...

.Nf 의 의미

  • Python의 문자열 포맷팅 방식
  • .nf 를 통해 nn -> 원하는 숫자
    => 해당 문자열의 소수점 nn번째 자리 만큼 나타낸다.

1월 6일(월) 본캠프 29일차


문제 인식 및 해결

개념을 완벽하게 이해했다 생각했는데,
파이썬 코드를 실습할 때 직접 짜보면..

  • :.2f 을 넣었을 때

TypeError: unsupported format string passed to tuple._format_

  • 에러문 해석: 튜플에 포맷 문자열이 지원하지 않는다.

에러문을 보았을 때, 구글링을 하면서 왜 그런지 알고 싶었으나 알지 못하고 그냥
code # 12 : {conf_interval:.2f} -> {conf_interval} (:.2f 삭제)
이렇게 디버깅을 하였다.
⭐원래 실습 코드에는 없는데 내가 넣은 코드 때문에 에러가 난 것!!

  • :.2f 삭제 후

디버깅 풀이

🤔 아니 실습코드는 돌아가는데 왜 나만 안되냐구⁉️

1. 문자열 포맷팅

:.nf 같은 코드를 표현할 때는 반드시 f-string, format( ) 또는 % 포맷 연산자와 함께 사용해야함.

  • 예1) f-string 방식
z_stat = 1.2345
formatted = f"{z_stat:.2f}"  # 올바름
print(formatted)  # 출력: 1.23
  • 예2) format() 메서드
z_stat = 1.2345
formatted = "{:.2f}".format(z_stat)  # 올바름
print(formatted)  # 출력: 1.23
  • 예3) % 포맷 연산자
z_stat = 1.2345
formatted = "%.2f" % z_stat  # 올바름
print(formatted)  # 출력: 1.23

2. 숫자 타입 확인

포맷팅하려는 값이 숫자 타입인지 확인. 만약 문자열이나 다른 타입이라면 오류가 발생하거나 포맷팅이 적용되지 않음.

  • 첫 번째 시도
z_stat = "1.2345"  # 문자열
formatted = f"{z_stat:.2f}"  # 오류 발생 (ValueError)
  • 수정:
z_stat = 1.2345  # 숫자
formatted = f"{z_stat:.2f}"  # 정상 작동

3. 포맷팅 결과를 저장하거나 출력해야 함

포맷팅된 값을 변수에 저장하거나 바로 출력하지 않으면 결과를 확인할 수 없음

  • 첫 번째 시도
z_stat = 1.2345
f"{z_stat:.2f}"  # 값을 저장하거나 출력하지 않음 -> 결과 확인 불가
  • 수정:
z_stat = 1.2345
formatted = f"{z_stat:.2f}"
print(formatted)  # 출력: 1.23

4. 코드 실행 환경 문제

어떤 환경에서는 포맷팅이 제대로 출력되지 않을 수도 있습니다.

  • 예) 노트북 환경 (Jupyter 등):
    출력 방식이 기본적으로 repr()로 설정되어 있으면 포맷팅 결과가 다르게 나타날 수 있음
  • 예) Python 버전 차이:
    Python 3.6 이상에서만 f-string을 지원

요약

디버깅 풀이 요약을 해보자면...
1. 포맷팅 방식(f-string, format(), %)이 올바르게 사용?
2. 포맷팅 대상이 숫자 타입?
3. 포맷팅된 결과를 출력/저장?
4. Python 버전이 3.6 이상?

위 순서를 확인한다면 소수점 포맷팅을 할 수 있다.

profile
SQL, Python, Code Kata

0개의 댓글