2015-01-07 3 views
-6

학교 프로젝트에 Rock, Paper, Scissors 게임을 만들고 있는데 끝났지 만 갑자기 작동이 멈췄습니다. 나는 이것이 루프의 while 루프의 문제라고 생각한다. UserHand'a', 또는 '3333'처럼, 비어 있지 않은 값의 경우스크립트에서 성가신 오류를 해결할 수 없습니다.

UserHand or UserHand_Retry.... 

다음의 or 필요 하나 때문에 수의 때문에

while UserHand or UserHand_Retry != "Rock" and UserHand or UserHand_Retry != "Paper" and UserHand or UserHand_Retry != "Scissors": 
    tkMessageBox.showerror("ERROR!","You did not choose a valid object, please try again.") 
    UserHand_Retry = raw_input("What do you want to choose? (Rock/Paper/Scissors):") 
+3

* "갑자기 작동이 멈췄습니다."*는 도움이되지 않습니다. 작동하지 않는 것은 무엇입니까? 오류 메시지가 표시됩니까? 잘못된 결과가 나옵니까? – CoryKramer

+0

"갑자기 작동이 멈췄습니다"라고 정의합니다. 그것은 오류 또는 무엇을 던지고 있습니까? – user2097159

+1

이런 프로그램은 무작위로 작동을 멈추게하지 않습니다. 다시 변경하십시오! – jonrsharpe

답변

1

귀하의 while 조건은 True 될 것 TrueUserHand 것 공백이 아닌 문자열 인 경우 True으로 평가됩니다. 또한

while UserHand not in ["Rock", "Paper", "Scissors"]: 

, 여러 or하고 상태 and에주의; 예상했던 것과 다르게 작동 할 수도 있습니다. 확실하지 않으면 ( 및 을 사용하십시오.

+0

적어도이 줄이 있어야하는 곳에 *를 추가하는 것이 도움이 될 것입니다. 왜이 줄이 바뀌는 것보다 낫지 만 설명하면 훨씬 좋습니다. – jonrsharpe

+0

@jonrsharpe,이 코드는 상식의 습관이있는 프로그래머에게 자명하다. ++. 사실, 대부분의 대답은 설명이 필요 없습니다. – 7stud

+3

이 코드 단편은 질문을 해결할 수 있지만, [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – msrd0

관련 문제