python hangman初学者代码

python hangman code for a beginner

我大约一周前才开始学Python。今天我试着做一个简单的绞刑游戏。到目前为止,我在本文中的所有代码都有效,但是有一件事我无法想到如何实现。我希望代码打印"你赢了",当玩家正确地输入"python",一个字母一个字母地。但他们把它弄好后,我似乎不能结束它。如果他们一次键入"python",而不是字母形式,则会结束。我的尝试是与.join联机的。但我似乎想不出来。对于新程序员的任何帮助或建议都将非常感谢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 '
you lose'

首先,我想说的是,除非您处理的是遗留代码或一些只在2.7中工作的库,否则不要使用python2.7,而是使用python3.x(目前在3.6中)。这是因为很快2.7将被弃用,3.6+在语法和语言方面有了更多的功能和大量的QOL改进(并且支持2.7现在还没有的功能)。

我会帮你翻译成3.6。这几乎没有什么区别。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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('
you lose')

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

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