파이썬 invalid literal for int
조회수 356회
import sys
n, k =map(int,sys.stdin.readline().split())
s = list(map(int,sys.stdin.readline().split()))
# 구간 수만큼 반복한다.
for i in range(k):
a, b = list(map(int,sys.stdin.readline().split()))
# 구간의 크기만큼 나눠준다.
# sum함수를 통해 구간의 모든 수를 더한다.
slash = b-a +1
average = sum(s[a-1:b])/slash
# 소수 셋째 자리에서 반올림한다.
print("%0.2f" % average)
빌려온 Code인데 이러한 오류가 뜨는 이유와 변경해주신 코드를 원합니다.
ValueError: invalid literal for int() with base 10: '&'
Traceback (most recent call last):
File "c:\python\test.py", line 3, in <module>
n, k =map(int,sys.stdin.readline().split())
^^^^
1 답변
-
오류가 영어로 되어 있으니까 우리말로 옮겨 드릴게요.
값오류: 10진법 기준으로 다음을 문자적으로 int()할 수 없음: '&' 추적 (오류에 가장 가까운 것부터): 파일 "c:\python\test.py"의 3번째 줄, <module>에서 n, k =map(int,sys.stdin.readline().split()) 👆 여기
뭐라는지 모르겠지만 아무튼 3번째 줄이 문제군요.
3번째 줄부터 그냥 전부다 삭제하고, 이것만 딱 넣어서 실행해 보시면 뭐가 나오나요?import system print(sys.stdin.readline().split())
만약 여기에 숫자가 아닌 것(
"&"
등)이 포함돼 있었다면, 그걸 숫자로 변환하려는map(int, 어쩌구)
는 무조건 실패하겠군요. 숫자가 아닌 게 있을 때 뭘 해야 하는 거죠? 사용자에게 욕을 하고 종료를 하면 되나요? 전부 0으로 대체하면 되나요? 잘 모르겠군요! 코드의 목적이 뭔지 모르겠어서 "변경해주신 코드"를 드리기는 좀 어렵겠네요. 애초에 "빌려온 Code"라면 코드의 저작권이 질문자님께 없을 텐데... 함부로 고쳐 드렸다가 그걸로 소송을 당하면... 그건 누가 책임을 지나요?저는 여기까지만 참견하겠습니다. 건투를 빕니다.
댓글 입력