微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在平局时它会转到 else 语句?

如何解决为什么在平局时它会转到 else 语句?

steen = '''
    _______
---'   ____)
      (_____)
      (_____)
      (____)
---.__(___)
'''

papier = '''
    _______
---'   ____)____
          ______)
          _______)
         _______)
---.__________)
'''

schaar = '''
    _______
---'   ____)____
          ______)
       __________)
      (____)
---.__(___)
'''

import random

list = [steen,papier,schaar]

user = input ("Wat kies je? schaar,steen of papier? ")

if user == 'steen':
  print ('') 
  print ('Jij koos: ')
  print (steen)
  print ('')

elif user== 'schaar':
  print ('') 
  print ('Jij koos: ')
  print (schaar)
  print ('')  

elif user == 'papier':
  print ('') 
  print ('Jij koos: ')
  print (papier)
  print ('')  

else :

  print ("verkeerde ingave")

print ('de computer koos:')

computer = random.choice(list)

print (computer)

***if user == computer:
  print ('gelijk!!')***

if user == 'steen' and computer == schaar  :

  print ('Jij wint')

else :

  if user == 'schaar' and computer == papier:

    print ('Jij wint')

  else:

    if user == 'papier' and computer == steen:

      print ('Jij wint')

    else:

      print ('jij verliest\n')

解决方法

不要使用 list 作为变量名。如果您将选项列表(我将其称为 choices)保留为字符串,则可以更轻松地验证用户条目,然后使用该列表中的位置可以轻松比较用户和计算机选项。>

按照图形设置,您可以:

choices = ('steen','papier','schaar')
graphix = ( steen,papier,schaar )
n_choices = len(choices)

user = input ("Wat kies je? schaar,steen of papier? ")

if user not in choices: # tests against all valid options
    print ("verkeerde ingave ",choices)

else :
    user_ix = choices.index(user) # use position
    print ('') 
    print ('Jij koos: ')
    print ( graphix[user_ix] ) 
    print ('')

    computer_ix = random.randrange(n_choices)
    print ('de computer koos:')
    print ( graphix[computer_ix] )

    if user_ix == computer_ix:
        print ('gelijk!!')

    elif (user_ix + 1)%n_choices == computer_ix:
        # modular arithmetic comparison for interest
        ## you lose to the next in (circular) list
        print ('Jij verliest \n')
    else:
        print ('Jij wint \n')

这也改进了输入错误处理,但进一步改进当然是可取的,例如允许用户尝试几次以进行有效输入。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。