错误的答案终止了我的程序?

时间:2017-07-24 00:51:53

标签: python python-3.x

我正在制作一个模拟摇滚,剪刀,纸质游戏的程序,这是我的代码:

weaponsList=['Rock', 'Scissors', 'Paper']
Play1=input('Choose your weapon: ')
if Play1 in weaponsList:
       if True:
            print('You chose '+ Play1)
       if False:
            print('Choose a valid weapon: Rock, Scissors or Paper')

如果为true,程序会很好,但如果为False,它就会终止。我认为这是一个简单的逻辑技巧,但我看不到它。

4 个答案:

答案 0 :(得分:1)

weaponsList = ['Rock', 'Scissors', 'Paper]
Play1 = input('Choose your weapon: ')
if Play1 in weaponsList:
    print('You chose '+ Play1)
else:
    print('Choose a valid weapon: Rock, Scissors or Paper')

如果选择正确的武器,if语句为True,则不需要另外的if语句。

答案 1 :(得分:1)

您对如何执行支票感到困惑。

当您在 Play中查看weaponList是否为时, 实际上是您为{{1}进行检查的地方}或TrueFalseif True 的行为与您认为的相似。最终,您需要做的就是:

if False

因此,对于上述情况,如果weaponsList=['Rock', 'Scissors', 'Paper'] Play1=input('Choose your weapon: ') if Play1 in weaponsList: print('You chose '+ Play1) else: print('Choose a valid weapon: Rock, Scissors or Paper') 中的Play1 输入 结果将为weaponsList,你将最终打印出#34;你选择了..."线。

如果True中的不是,那么它将落入您的其他声明并打印"选择一个有效的武器:..."线。

确保您的匹配不会受到严格限制的改进领域。让您的列表仅包含小写字词:

weaponsList

然后,当您检查包含时,只需在['rock', 'scissors', 'paper'] 字符串上调用lower方法:

Play1

答案 2 :(得分:0)

不是真或假但如果是in数组,那么您的代码应该是这样的

weaponsList=['Rock', 'Scissors', 'Paper']
Play1=input('Choose your weapon: ')
if Play1 in weaponsList:
  print('You chose '+ Play1)
else:
  print('Choose a valid weapon: Rock, Scissors or Paper')

答案 3 :(得分:0)

您的问题在于如果声明。我会告诉你一个例子。

if condition:
    indentedstatementBlock

这意味着如果条件为真,则执行缩进语句。所以当你的条件成立时它就会发生。 所以我会重写语句。

if Play1 in weaponsList:
        print('You chose '+ Play1)
else:
    print('Choose a valid weapon: Rock, Scissors or Paper')