inflearn logo
강의

講義

知識共有

Pythonの基礎から実務までpart.1

繰り返し扉(実習-6)

마지막 숫자 입력하는 문제

328

hcm0518

投稿した質問数 1

0

선생님이 작성해주신 코드는 y를 입렸했을때는

계속 게임을 다시 진행한다고 하시는데..

y를 누르지 않고 다른버튼을 눌러도 게임을 지속하게 됩니다.

사실 코드상 "y" or "n" 이 아닐경우에는 다시 입력하라는 코드를 작성해야하는데 이때 else 구문을 넣어서 코딩을 해야할 것 같은데 그럴 경우..좀 헷갈리네요 ㅠㅠ

잘못된 문자를 작성했다고  바로  while문 초기로 올라가버려서..

 

* 선생님코드

# 중첩 if 문이 들어가서 게임의 지속 여부를 확인하는 코드 
if code == "n": # 게임 종료 코드
print("게임을 종료합니다.")
break
else: # 게임을 지속하는 코드
print("--------------------")
# 게임을 재시작을 하기 위해서 다시 난수발생과 cnt 를 초기화를 해야한다.
print("게임을 재시작합니다.")
num = randint(1, 100)
print("발생한 난수의 값 : ", num)
cnt = 0

* 제코드

#
중첩 if 문이 들어가서 게임의 지속여부를 확인하는 코드
if code == "n": # 게임 종료 코드
print("게임을 종료합니다.")
break
elif code == "y": #게임 지속하는 코드
print("---------------------------")
print("게임을 재시작합니다.")
randnum = randint(1,100)
print("발생한 난수의 값 : ", randnum)
cnt = 0
else :
print("잘못된 문자를 작성하였습니다.")

python

回答 1

0

YK JO

저도 강의를 보며 배우는 입장이라 이게 효율적으로 잘 짠 코드인지는 모르겠지만 지금까지 배운것들 활용하면 질문자님이 질문하신 내용도 적용되는거 같습니다. 도움이 되셨으면 좋겠네요 ㅎㅎ

# 임의의 숫자를 발생시켜 사용자로부터 입력받아 숫자를 맞추는 게임 만들기
from random import *

cnt = 0
num = randint(1, 100)
code = "y"
print("발생한 난수의 값 : ", num)

print("1부터 100사이의 숫자를 맞추어 보세요.(기회는 10번 입니다.)")

while cnt < 10 and code == "y":
    guess = int(input("숫자를 입력하세요 : "))
    cnt += 1
    cnt2 = 10-cnt
    if guess < num:
        if cnt2 == 0:
            print("Up!")
        else:
            print("Up! 기회가 %d번 남았습니다." % cnt2)
    elif guess > num:
        if cnt2 == 0:
            print("Down!")
        else:
            print("Down!기회가 %d번 남았습니다." % cnt2)
    elif guess == num:
        print("축하드립니다. 정답입니다!")
        code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")
    # 게임을 재시작하기 위해 난수와 cnt를 초기화 한다. (중첩 if문이 들어가서 게임의 지속여부를 확인하는 코드)
        while code != "y" or code != "n":
            if code == "y":
                print("\n-------------------------------\n")
                num = randint(1, 100)
                print("발생한 난수의 값 : ", num)
                cnt = 0
                break
            elif code == "n":
                print("게임을 종료합니다.")
                break
            else:
                print("잘못된 코드를 입력하셨습니다.")
                code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")  

    if cnt == 10:
        print("아쉽네요. 10번의 기회를 모두 소진하였습니다.")
        code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")
        while code != "y" or code != "n":
            if code == "y":
                print("\n-------------------------------\n")
                num = randint(1, 100)
                print("발생한 난수의 값 : ", num)
                cnt = 0
                break
            elif code == "n":
                print("게임을 종료합니다.")
                break
            else:
                print("잘못된 코드를 입력하셨습니다.")
                code = input("게임을 계속 하시겠습니까?(y는 계속, n은 중단)")

혹시 이 강사분 c언어 강의는 없나요?

0

52

1

변수가 포함된 문장을 쓸 때의 공백 문제

0

576

1

while.py

0

296

0

강의 질문

0

279

1

파이썬 인터프리터

0

399

0

인터프리터 설치가 안되요

0

261

0

파이썬 인터프리터 설치

0

437

0

ex05 질문이요

0

252

1

5.0은 왜 안되나요?

0

404

1

조건문 실습2 ex05에서

0

297

1

마지막 예제 그냥 for i in range(5,0,-1) 해도 되지 않나요?

0

268

1

함수의 사용방법이 궁금합니다

0

319

1

"끝"을 입력하면 에러가 발생하여 질문드립니다.

0

392

3

파이참 turtle_graphic 실행 오류

0

538

0

파이참에서 pi가 없어요

0

194

0

완강하신분들께 여쭙니다! 본 강의 추천하시나요?

0

469

2

설치하고 cmd에서 파이선이라고 치니까 마이크로소프트 스토어에 다운로드 창이 나와버립니다

1

382

2

10강 변수와 계산(실습-2) ex06 질문

0

288

1

실행이 안돼요.

0

276

1

31분 영상에서 질문있습니다

0

233

1

ex08에서

0

201

1

터틀이 안불러와줘요

0

266

1

질문 드립니다

0

395

5

반복문 피보나치 수열 질문

0

436

2