初学者的python刽子手代码

Posted

技术标签:

【中文标题】初学者的python刽子手代码【英文标题】:python hangman code for a beginner 【发布时间】: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'

【问题讨论】:

【参考方案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)。

【讨论】:

以上是关于初学者的python刽子手代码的主要内容,如果未能解决你的问题,请参考以下文章

C++ 显示程序的计时器

有没有更好的方法来检测我的向量中某个项目的多次出现?

使用 html 和 php 从 xampp sql server 获取数据

初学者如何更好自学Python代码?

[TimLinux] Python 初学者必看

50多个Thonny实例代码-Python初学者的福音