jju00788   3년 전

흑.. 런타임 에러가 날 때와 안 날 때의 기준을 모르겠습니다.

혼자서 파이참에 돌릴 때는 결과가 잘 나오는 편인데요, 

백준에 업로드하면 런타임 에러가 나옵니다.

공지를 읽었지만 뭔가 명확하지 않아서 이렇게 질문을 처음으로 남기게 되었습니다.

1. 아래 코드가 런타임 에러가 나는 원인이 궁금합니다.

2. 실무를 할 때도, 이런 에러 상황이 많이 나타나나요? 이런 런타임 에러를 꼭 염두하고 코딩을 해야하는 것인지 잘 몰라서 여쭤봅니다!

추가로 코드에 관한 피드백도 편하게 주시면 겸허히 받고 공부하겠습니다 (_ _) 


seico75   3년 전

1. 위 코드는 런타임 에러가 나지 않고 틀렸습니다가 나옵니다.

   아마도 한번 전에 제출하신 19라인 print(round(Percent,3)+"%") 가 에러가 나서 착각을 하셨던 것이 아닌가 합니다.

   + 의 경우는 실수 + 문자열이라서 에러가 납니다

1.5 틀렸습니다가 나온 이유는 예제의 첫답과 같은 경우 아래와 같이 나와서이고...

  40.0 %

여기서 40.000% 가 나와야합니다.  %앞에 공백이 없어야 하고, 3자리가 채워져서 출력되어야 합니다.

(보통 이런 문제에서 예시 출력이 저렇게 되면 맞춰서 출력해야 정답처리가 됩니다.)

2. 실무에서 런타임 에러는 당연히 염두를 많이 해야합니다

    특히 파이썬은 인터프린터 언어라서 문제 없는 줄 알고 돌렸는데, 장시간 돌리다가 갑자기 런타임 에러가 나오면 (사소한 오타로...) 허무합니다.

    실무를 하면... 대부분의 시간은 코딩보다 저런 런타임에러, 버그 잡느라고 밤을 지세우게 됩니다.


* c는 실제로 쓸일이 없습니다. 그냥 갯수 카운트만 해도 충분합니다.

* 아래 코드는 그냥 한줄로 쓰셔도 됩니다.

b = input().split()
b = [int(i) for i in b] #이걸 자주 써야하는데..

b = [int(i) for i in input().split()] #이걸 자주 써야하는데..    

* print는 f-string 을 많이 쓰는 추세인것 같습니다.

  print(f"{round(Percent,3):.3f}%")

아니면

print("{:.3f}%".format(round(Percent,3))) 

아니면

print("%.3f%%" % (round(Percent,3)))

jju00788   3년 전

seico75

형님 좋은 답변 너무 감사드립니다. 

런타임 에러가 나왔어서 허무해서 어제는 다른 html 공부를 했는데, 이렇게 친절하게 답변달아주신 줄 알았으면 바로 답글 달았을텐데요!


f striing은 정말 처음보지만 오늘 과제할때도 써보겠씁니다 !감사해요!

댓글을 작성하려면 로그인해야 합니다.