2016-11-24 5 views
0
import random 


def diceroll(): 
     num_dice = random.randint(1,6) 
     print("You got " + str(num_dice) + "!") 
diceroll() 
def question(): 
    response = input("You want to roll again?\n") 
     while response == "y": 
     diceroll() 
     response = input("You want to roll again?\n") 
    if response == "n": 
     print("Thank you for playing! :) ") 
     exit() 
    while "y" or "n" not in response: 
      response = input("Please answer with y or n!\n") 
      while response == "y": 
       diceroll() 
       response = input("You want to roll again?\n") 
      if response == "n": 
       print("Thank you for playing! :) ") 
       exit() 
question() 

이 코드를 더 간단하게 만들 수 있고 동일한 기능을 사용할 수 있습니까? 클래스를 사용하지 않고 다른 버전을 tryed했지만 "y"또는 "n" 코드가 끝납니다. 즉 당신은 루프 내에서 유지하는 조건으로했다 무엇 때문에내 첫 번째 주사위 파이썬 게임

import random 

answer = "yes" 

while answer in ["yes", "y"]: 
    roll = random.randint(1,6) 
    print("You rolled " + str(roll) + "!") 
    answer = input("Would you like to roll again?\n") 
if answer in ["n", "no"]: 
    print("Thank you for playing!") 
else : 
    print("Please answer with yes or no!") 
    answer = input("Would you like to roll again?\n") 
+0

첫 번째 버전은 사용하지 않는 클래스. 함수를 사용 중입니다. –

답변

0

"예" "Y"나 외에 아무 것도 입력 한 후 프로그램이 종료 이유입니다. 프로그램은 "루프 안에 머무르는 것"은 "게임하기"를 의미한다고 가정하지만 누군가가 불법 입력을하면 루프 내에 있어야합니다. 나가기위한 유일한 이유는 명시 적으로 "n"또는 "no"로 응답하여 요청하는 것입니다. 따라서

:

import random 

while answer not in ["no", "n"]: 
    roll = random.randint(1, 6) 
    print("You rolled " + str(roll) + "!") 
    answer = input("Would you like to roll again?\n") 
    if answer not in ["yes", "y", "no", "n"]: 
     print("Please answer with yes or no!") 
     answer = input("Would you like to roll again?\n") 

print("Thank you for playing!")