【问题标题】:python hangman code for a beginner初学者的python刽子手代码
【发布时间】:2017-09-08 19:20:09
【问题描述】:

我大约一周前才开始学习 python。我今天尝试创建一个简单的刽子手游戏。到目前为止,我在这方面的所有代码都有效,但有一件事我想不出如何实现。当玩家正确键入“python”时,我希望代码打印“you win”,一个字母一个字母。但在他们做对了之后,我似乎无法结束它。如果他们一次尝试键入“python”,而不是字母形式,它将结束。我的尝试与.join 一致。我似乎无法弄清楚。对新程序员的任何帮助或建议将不胜感激。

guesses = []
count = 1
ans = 'python'
word = ''


while count < 10:
  guess = raw_input('guess a letter: ')
  guesses.append(guess)
  if ''.join(word) == ans:
    print 'you win'
    break
  elif len(guess) > 1 and ans == guess:
    print ans
    print 'you win'
    break
  else:
    for char in ans:
      if char in guesses:
        word.append(char)
        print char, 
      else:
        print '_', 
    count += 1
else:
  print '\nyou lose'

【问题讨论】:

    标签: python-2.7


    【解决方案1】:

    首先,我想说的是,除非您正在处理遗留代码或某些仅在 2.7 中可用的库,否则不要使用 python 2.7,而是使用 python 3.x (currently on 3.6)。这是因为很快 2.7 将被弃用,并且 3.6 + 具有更多的功能以及对语法和语言的大量 QOL 改进(并且支持 2.7 现在不具备的功能)。

    话虽如此,我会为你翻译成 3.6。它几乎没有什么不同。

    guesses = []
    count = 1
    ans = 'python'
    word = ''
    
    while count < 10:
        guess = input('guess a letter: ')
        guesses.append(guess)
        if ''.join(word) == ans:
            print('you win')
            break
        elif len(guess) > 1 and ans == guess:
            print(ans)
            print('you win')
            break
        else:
            for char in ans:
                if char in guesses:
                    word.append(char)
                    print(char)
                else:
                    print('_')
            count += 1
    else:
        print('\nyou lose')
    

    这里唯一的两个变化是 print 现在需要括号,所以每个 print 'stuff' 现在是 print('stuff'),而 raw_input 现在是 input('input prompt')。除此之外,我很惊讶你能够逃脱word.append(char)。在 2.7 或 3.x 中,您不能在 python str 上使用 append()。我认为您试图将其用作数组,因为这是您使用''.join(word) 的唯一原因。为了解决这个问题,我会使用word = [] 而不是word = ''。现在你的''.join(word) 应该可以正常工作了。

    我建议您采取下一步并尝试在您的程序中实现以下内容:如果用户没有输入单个字符,请使其不添加到猜测列表中。如果您还没有,请尝试将其设为main.py file。将程序的一部分变成函数。添加一个新的游戏命令。每次打印出一个真正的刽子手 in chars 。添加文件 io 以读取猜测单词(即,您可以在文件中添加很多单词来选择,而不仅仅是 python)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多