2014-10-21 2 views
0

안녕하세요 이것은 학교 일입니다. 제게 옳은 대답을하지 말고 제가 잘못 한 것을 말해주십시오. 그래서 제발 가서 교정 할 수 있습니다. 내 코드는 정상적으로 작동하지만 문제가 하나 있습니다. "코인"을 입력하면 코인 플립이 표시된 후에 오류 메시지가 표시됩니다. 여기 내 코드는 다음과 같습니다.언제해야합니까 (학교 직장)

def program(): 
    error_message = "Answer not recognised!\nMake sure it is spelt right and starts with a capital letter." 
    Choice = input("Pick either 'Card' or 'Coin' ") 
    if Choice == "Coin": 
     import random 

     r = random.randint(1,2) 
     if r == 1: 
      print ("Heads!") 
     else: 
      print ("Tails!") 

    if Choice == "Card": 
     import random 
     card_number = random.randint(1,13) 

     if card_number == 1: 
      card_number = "Ace" 
     elif card_number == 11: 
      card_number = "Jack" 
     elif card_number == 12: 
      card_number = "Queen" 
     elif card_number == 13: 

      card_number = "King" 

    if Choice == "Card": 
     import random 
     card_suit = random.randint(1,4) 

     if card_suit == 1: 
      card_suit = "Hearts" 
     elif card_suit == 2: 
      card_suit = "Clubs" 
     elif card_suit == 3: 
      card_suit = "Diamonds" 
     else: 
      card_suit = "Spades" 

    if Choice == "Card": 
     print(card_number ,"of" , card_suit) 

    #else print error message 
    else: 
     print(error_message) 


while flag: 
    program() 
    flag = input('Would you like to run the program again? [yes/no] ') == 'yes' 

else: 
    print ("The program will now terminate.") 

저는이 문제를 해결하기 위해 여러 가지 방법을 시도했지만 해결할 수 없습니다. 이것이 학교 일이라는 것을 기억하십시오. 그래서 저는 도움을 원하지만 대답을 듣지 않을 것입니다. 감사합니다

+3

'program()'의 본문에는 네 개의'if' 문과'else' 문이 있습니다. 'else'가 어느 if 문을 참조하는지보십시오. – alexwlchan

+0

'error_message'가 인쇄 된 if/else 문의 조건을보십시오. – mhawke

+0

아, 이해할 것 같아요, 카드 선택 아래에 있습니다. 따라서 선택 항목이 카드와 동일하지 않으면 오류 메시지를 넣습니다. – Mitchnana1

답변

1

가장 바깥 쪽 수준이 program() 일 때, 네 개의 개별 if 문이 있습니다. 각각 하나씩 실행됩니다. else은 최종 if에 첨부됩니다.

if Choice == "Card": 
    print(card_number ,"of" , card_suit) 

#else print error message 
else: 
    print(error_message) 

ChoiceCoin 인 다음 Choice == "Card" 거짓 평가하고 있으므로 else 분기가 선택된다. 당신은이 같은 하나의 if 문이 의미 : AS를

def program(): 
    error_message = ... 
    Choice = ... 
    if Choice == "Coin": 
     # do all the coin related work 
    elif Choice == "Card": 
     # do all the card related work 
    else: 
     # handle the error 

를 제외하고, 그것은 문체 첫 번째 코드로 모듈에서 한 번만 import 모듈 바람직하다.

+0

고맙습니다. 많은 도움을 받았습니다. – Mitchnana1

0

내 코드는 모두 작동합니다. 지금은이를 단축하려고합니다. 주셔서 감사합니다 다음은 완성 된 코드 :

import random 
flag = True 
def program(): 
    error_message = "Answer not recognised!\nMake sure it is spelt right and starts with a capital letter." 
    Choice = input("Pick either 'Card' or 'Coin' : ") 

    if Choice == "Coin": 
     r = random.randint(1,2) 
     if r == 1: 
      print ("Heads!") 
     else: 
      print ("Tails!") 

    elif Choice == "Card": 
     card_number = random.randint(1,13) 

     if card_number == 1: 
      card_number = "Ace" 
     elif card_number == 11: 
      card_number = "Jack" 
     elif card_number == 12: 
      card_number = "Queen" 
     elif card_number == 13: 
      card_number = "King" 

     card_suit = random.randint(1,4) 

     if card_suit == 1: 
      card_suit = "Hearts" 
     elif card_suit == 2: 
      card_suit = "Clubs" 
     elif card_suit == 3: 
      card_suit = "Diamonds" 
     else: 
      card_suit = "Spades" 

     print(card_number ,"of" , card_suit) 

    else: 
     print(error_message) 


while flag: 
    program() 
    flag = input('Would you like to run the program again? [yes/no] ') == 'yes' 

else: 
    print ("The program will now terminate.") 

내가 그 혼란을 알고 있지만 그렇게 작동 지금은 그것을 단축하고 정리하는 작업에 초점을 맞출 것이다. 감사합니다.