숫자야구를 간략화 시켜서 주는 값을 고정 시키고 맞추는 값만 입력 받는 프로그램인데
보다시피 2스트라이크 2볼이 나와야하는데 0스0볼이 나옵니다. 어떻게 해야하나요?
간략화 시킨 코드
user_input = []
numbers=[3,2,0,6]
strike=0
ball=0
user_input = input("중복되지 않는 0 이상 9 이하의 정수 4자리를 입력하세요. : ")
for i in range(4):
if user_input[i] == numbers[i]:
strike += 1
elif user_input[i] in numbers:
ball += 1
print("입력한 숫자 : {}, 결과 : {}스트라이크 {}볼".format(user_input, strike, ball))
전체 코드 (숫자 고르기, 중복된 숫자 거르기, 4자리가 아닌숫자 거르기 코드)
import random #무작위로 숫자를 고르는 명령어를 쓸수있게 해줌
numbers = [] #리스트 선언
while len(numbers)<4: #선언한 리스트의 길이가 4 미만일동안 반복함
num = random.randrange(0,10) #num은 1이상 10미만의 무작위 정수임
if num not in numbers:
numbers.append(num)
"""
만약 randrange에서 골라낸 정수가 numbers(list)에
없었던 정수라면 numbers(list)에 num을 추가함.
"""
print(numbers)
"""
중복되지않는 numbers가 제대로 뽑혔는지 확인하는코드(실행시 삭제)
"""
user_input = []
user_input = input("중복되지 않는 0 이상 9 이하의 정수 4자리를 입력하세요. : ")
length = len(user_input) #사용자가 입력한 숫자의 자릿수를 len에 할당함
strike = 0
ball = 0
while length != 4 or len(set(user_input)) != 4: # 참 이라면 잘못된 입력이고 밑의 코드를 실행
print("4자리의 서로다른 정수를 입력하세요.")
user_input = input("중복되지 않는 0 이상 9 이하의 정수 4자리를 입력하세요. : ")
length = len(user_input)
for i in range(4):
if user_input[i] == numbers[i]:
strike += 1
elif user_input[i] in numbers:
ball += 1
print("입력한 숫자 : {}, 결과 : {}스트라이크 {}볼".format(user_input, strike, ball))
도와주고 싶은데 js로 풀었어 가지고 뭐라 말을 못하것네 근데 chat gpt한테 물어봄?
어떻게 질문해도 원하는 답을 얻을수 없었어요
numbers는 int고 user_input은 str이라서 그런거 아닐까?
12
3