inflearn logo
강의

Course

Instructor

Dr. Nam's Python Basics, 100% Practical Use

Making a Number Baseball Game (Python Basics, Random Functions, Loops, Conditional Statements)

숫자야구 코드를 짜 봤는데 뭔가 이상합니다.

253

chatterbones

24 asked

0

# v2: 안 보고 만들기 (23.11.21)

from random import randint

from os import system

answer = []

num = str(randint(0, 9))

for i in range(3):

while num in answer:

num = str(randint(0, 9))

answer.append(num)

strikes = 0

balls = 0

system('cls')

while strikes < 3:

user_input = str(input("3자리 숫자를 입력해 주세요."))

if len(user_input) != 3:

print("3자리 자연수를 입력해주세요.")

continue

if not user_input.isdigit():

print("문자 말고 숫자를 입력해주세요.")

continue

if user_input[0] == user_input[1] or user_input[1] == user_input[2] or user_input[0] == user_input[2]:

print("중복된 숫자 없이 입력해주세요.")

continue

strikes = 0

balls = 0

# 숫자 비교

for i in user_input:

for j in answer:

if i in answer and i == j:

strikes += 1

if i in answer and i != j:

balls += 1

if strikes != 3:

print(f"{strikes} 스트라이크, {balls} 볼")

else:

print("성공!")

 

37, 39에서 저는 i in answer를 써 봤는데요. 막 2 스트라이크 4 볼이 나오고 그런 현상이 생깁니다ㅠㅠ

python 웹-크롤링

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
난수 생성과 게임 로직 부분에 문제가 있는 것 같습니다. 우선, i in answer 부분 때문에 볼과 스트라이크의 카운트가 예상과 다르게 나올 수 있습니다. 답(answer)에 사용자가 입력한 숫자(i)가 있을 경우, 해당 숫자가 위치까지 정확히 일치하는지를 확인하여 스트라이크를 카운팅하고, 위치는 다르지만 숫자가 존재하는 경우에 볼을 카운팅해야 합니다. 코드를 수정하기 위해선 i 변수를 index로 활용하고, user_inputanswer의 각 자릿수를 비교하여 로직을 수정해야 할 것 같습니다. 또한 볼 카운팅 시 중복 카운트를 피하기 위해 이미 확인한 숫자에 대해서는 카운트를 하지 않도록 조건을 추가해야 합니다. 다음은 수정된 코드의 일부입니다:

# ...

while strikes < 3:
    user_input = str(input("3자리 숫자를 입력해 주세요: "))
    # ... 기존 조건 검사 ...

    # 숫자 비교 로직 수정
    strikes = 0
    balls = 0
    for i in range(3):
        if user_input[i] == answer[i]:
            strikes += 1
        elif user_input[i] in answer:
            balls += 1

    if strikes != 3:
        print(f"{strikes} 스트라이크, {balls} 볼")
    else:
        print("성공!")
        break

이렇게 수정하면 각 자릿수별로 정확한 스트라이크와 볼을 계산할 수 있습니다. 도움이 되셨길 바랍니다!

38강 = 연산자 더하고 빼기

0

60

2

주석처리

0

116

1

함수의 파라미터값 msg

0

155

1

강의자료 이미지 안나옴

0

239

3

강의자료 질문 두번째

0

165

3

강의자료 관련 질문

0

116

1

파이썬 예외 처리 try / except 파일 처리 코드가 실행이 안됩니다.

0

235

1

소수 너무 어려워요

0

245

1

imagefont 함수 사용

0

239

1

pylint

0

357

1

add 함수 문의 ㅠㅠ

0

283

1

형식 문의드립니다.

0

209

1

변수 명을 왜 src, tar로 하셨는지 궁금합니다.

0

602

1

zsh: command not found: pylint

0

269

1

텔레그램 봇 만들기 코드 실행이 안됩니다 박사님..ㅠ

0

546

1

질문드립니다.

1

374

2

list.reverse() 출력에 대해서 질문있습니다.

1

433

1

데코레이터 함수 및 동작시간 질문입니다.~

1

323

2

opencv 사용하면서 궁금한점 (해상도)

1

781

1

질문드립니다.

1

299

1

아래 오류가 뜨면서 vscode가 컴파일이 되지 않는데.. 혹시 왜이럴까요?

1

445

1

크롤링안되는 현상 문의 드립니다.

1

421

1

파이썬 크롤링 관련 문의

1

277

1

정규 표현식 질문있습니다.

1

243

1