0

我在一个简单的硬币翻转程序中遇到了这个奇怪的问题,每当我运行这段代码时,它并没有给我一些错误,而是有点崩溃。我输入是或否的答案,然后按回车,但它什么也没做。然后我再次点击进入,它完全关闭。

import time
import random

constant = 1
FirstRun = True

def Intro():
    raw_input("Hello and welcome to the coin flip game. Do you wish to flip a coin? (yes or no): ")


def CoinToss():
    print "You flip the coin"
    time.sleep(1)
    print "and the result is..."
    time.sleep(1)
    result = random.randint(1,2)
    if result == 1:
        print "heads"
    if result == 2:
        print "tails"


while constant == 1:
    if FirstRun == True:
        Intro()
        FirstRun = False

    else:
        answer = raw_input()
        if answer == "yes":
            CoinToss()
            raw_input("Do you want to flip again? (yes or no): ")
        else:
            exit()
4

1 回答 1

0

由于您只是忽略方法的返回值,因此raw_input您不知道用户输入了什么以跳出循环。

这是您的程序的简化版本,请注意我如何存储raw_input方法的结果result并使用它来控制执行循环:

import random
import time

result = raw_input('Hello and welcome to the coin flip game. Do you wish to flip a coin? (yes or no): ')

while result != 'no':
    print('You flip the coin....')
    time.sleep(1)
    print('...and the result is...')
    toss_result = random.randint(1,2)
    if toss_result == 1:
        print('Heads')
    else:
        print('Tails')

    result = raw_input('Do you want to flip again? (yes or no): ')

print('Goodbye!')
于 2014-12-09T06:05:03.377 回答