• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

소수점 자리표시 및 줄바꿈

20.11.03 17:15 작성 조회수 88

0

섹션1의 6번째 강의 2:57에서

1. interest = 0.897을 선언하고 소수 2자리수까지 출력하려 할 때 저는  format 함수를 사용하지 않고 다음과 같이 코드를 작성해서 사용해 왔었습니다.

print("%.2f" % interest)

 위 코드와 format함수를 사용했을 때의 차이, 그리고 위와 같이 사용하지 않고 format 함수를 사용하는(예를 들어 코드가 길어짐에 따라 따라올 수 있는 불편함이라든지 단순히 가독성이 떨어진다든지 등등) 이유가 있는지 궁금합니다. 

1-1 추가적으로 0.897을 소수점 둘째 자리까지 출력할 때 반올림 하지 않고 그냥 0.89로 잘라서 출력할 수 있는 라이브러리 함수나 방법은 없는지도 궁금합니다.

2.섹션1의 6번째 강의 Exercise 10번 (강의 15:35)에서 저는 문제를 풀때 다음과 같이 코드를 작성했습니다. 그런데

print( a, "+", b ,"=", a+b, "\n", a, "*", b, "=", a*b) 와 같이 코드를 작성하면  출력 시

4 % 4 = 0

    4 / 4 = 1

위과 같이 2번째 줄이 자동으로 들여쓰기가 되던데 이를 해결하는 방법은 print 함수를 따로 다음 줄에 작성하는 것 외에는 없는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

1번은 프로그래밍에서 동일한 기능을 하는 다양한 문법이 있는 경우가 많습니다. 이 부분도 동일한 케이스라고 보시면 좋을 것 같습니다. 어떤 기능을 쓰셔도 큰 상관은 없습니다.

반올림을 안하는 format 기능은 없는 것으로 이해하고 있습니다. 다음과 같이 별도 함수로 작성하면 될 것 같습니다.

def truncate_float(value, digits_after_point=2):

    pow_10 = 10 ** digits_after_point

    return (float(int(value * pow_10))) / pow_10

truncate_float(1.14333, 2)

1.14

2번은 다음과 같이 쓰시면 됩니다. 컴마로 표기시, 한칸 띄어지도록 되어 있기 때문에 들여쓰기한듯 나온 것이라고 보시면 좋겠습니다.

print( a, "+", b ,"=", a+b, "\n" + str(a) + "*", b, "=", a*b)

초반에 너무 힘을 안주시면, 중반부터 지치실 수도 있어요. 조금만 힘을 빼시고, 영상에서 설명한 기능만 우선적으로 이해를 해보시면서 쭈욱 따라오시면 더 좋을 것 같습니다.

감사합니다.