강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

June님의 프로필 이미지
June

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

숫자 야구게임 만들기 (파이썬기초, 랜덤함수, 반복문, 조건문)

24번째 줄 에서의 오류 ..?

작성

·

203

1

import random
numbers =[]
number = str(random.randint(0,9))
#문자열로 다룬다, 문자열로 다루는 이유?
#코딩하다보면 안다.

for i in range(3):
#3번 반복
while number in numbers:
number = str(random.randint(0,9))
numbers.append(number)

count_strike = 0
count_ball = 0

while count_strike < 3:
count_strike = 0
count_ball = 0

num = str(input("숫자 3자리를 입력하세요 : "))
if len(num) == 3:
for i in range(0,3):
for j in range (0,3):
if num[i] == numbers[j] and i == j:
count_strike += 1
elif num[i] == number[j] and i != j:
count_ball += 1
if count_strike == 0 and count_ball == 0:
print("3 out!")
else:
output = ""
if count_strike > 0:
output += "{} 스트라이크".format(count_strike)
if count_ball > 0:
output += "{} ".format(count_ball)

print(output.strip())
print("게임 성공")
 
실행을 시켜보면
elif num[i] == number[j] and i != j: IndexError: string index out of range
 
라고 떠서 어떻게 해야할지 뭐가 문제인지 모르겠습니다..
 

답변 1

0

남박사님의 프로필 이미지
남박사
지식공유자

 

IndexError: string index out of range 오류는 해당 인덱스가 리스트의 범위를 벗어났다는 이야기인데 

 

for i in range(0,3):

    for j in range (0,3):

        print(num, i, j)

 

이런식으로 2중 for 문을 돌면서 num 값과 i, j 값을 출력해보며 어떤 값이 들어가있는지 어떤 경우에 오류가 발생하는지를 먼저 확인해봐야 할듯 합니다.

June님의 프로필 이미지
June

작성한 질문수

질문하기