해결된 질문
작성
·
119
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)
초반에 너무 힘을 안주시면, 중반부터 지치실 수도 있어요. 조금만 힘을 빼시고, 영상에서 설명한 기능만 우선적으로 이해를 해보시면서 쭈욱 따라오시면 더 좋을 것 같습니다.
감사합니다.