这两个选项都在猜谜游戏中运行

时间:2014-02-10 01:30:09

标签: python python-3.3

所以我对编程很新,我正在使用Python(v3.33)创建这样的小程序:

option = input('What Game Would You Like To Play? A, B, C, or D? ')
option == 'A'
guess = int(input('Guess a number: '))
while True:
    while guess != 100:
        if guess > 100:
            print('Too High... Try Again')
        if guess < 100:
            print('Too Low... Try Again')
        guess = int(input('Guess a number: '))
    if guess == 100:
        print('You Win')
        break

option == 'B'
guess = int(input('Guess a number: '))
while True:
    while guess != 50:
        if guess > 50:
            print('Too High...Try Again')
        if guess < 50:
            print('Too Low... Try Again')
            guess = int(input('Guess a number: '))
    if guess == 50:
        print('You Win')
        break

这是我的问题 - 我希望用户能够选择“A”或“B”(我将添加“C”和“D”,但希望先解决问题)但该程序会引导用户通过'A'自动然后再到'B':我如何得到它,以便用户可以选择'A'和'B'。 此外,我如何制作它,以便用户可以选择说“是”或“否”,如果他们想再次运行它。 感谢

2 个答案:

答案 0 :(得分:1)

将整个事物包裹在while循环中:

while True:

    option = input('What Game Would You Like To Play? A, B, C, or D (Q to quit)? ').upper() # this can accept both lower and upper case input

    if option == 'Q': 
        break

    elif option == 'A': 
        Do some code 

    elif option == 'B':
        Do some code

    elif option == 'C':
        Do some code

    elif option == 'D':
        Do some code

    else:
        print ("You didn't enter a valid choice!")

关于您的代码:

option == 'A'

该行只是测试选项是否等于'A'。它会返回TrueFalse。 您想测试选项的实际值。因此上面的if语句。

您的代码只是在所有方案中运行,因为您没有提供应该发生事情的条件。只有当option == 'A'代码应该运行时才会运行。只有当option == 'D'代码才能运行时。并且只有当option == 'Q'主循环断开时。这是何时使用if语句的一个很好的例子。

修改

关于您的评论,您可以执行以下操作:

option = input('What Game Would You Like To Play? A, B, C, or D (Q to quit)? ')
if option == 'a': # upper is gone, you can specify upper or lower case 'manually'
    do this
if option == 'A':
    do this

if option in ['a', 'A']: # this basically same effect as my original answer
       do something

查看str.upper()方法的工作原理here

答案 1 :(得分:1)

它会引导您完成这两个选项,因为您没有使用选项检查。

虽然您的代码技术上正在检查option == 'A',然后检查option == 'B',但它不会检查其中一个,也不会对该检查做任何事情。< / p>

相反,你会想要:

option = input('What Game Would You Like To Play? A, B, C, or D? ')

if option == 'A':
    guess = int(input('Guess a number: '))
    ....
    break
elif option == 'B':
    guess = int(input('Guess a number: '))
    ....
    break

elif代替else,因此您可以为选项C和D添加代码。