繁体   English   中英

Python数字猜谜游戏

[英]Python Numbers Guessing Game

我是学习Python(使用2.7.4版)的初学者,并且已经制作了这个猜数字游戏。 到目前为止,这是我的代码:

import random
name = raw_input("Hi there! What\'s your name?\n")
print "Well, " + name + ", I am thinking of a number between 1 and 100"
number = random.randint(1,100)
guess = int(raw_input("Take a guess:\n"))


count = 1

while guess != number:    
    if guess < number:
        print "Sorry, your guess is too low."                 
    if guess > number:
        print "Sorry, your guess is too high."
    count += 1
    guess = int(raw_input("Take another guess\n"))

print "Good job, %s! You guessed my number in %d guesses!" % (name ,count)
  1. 我该如何提醒玩家他们之前已经猜过的猜测?
  2. 如何确定玩家只能输入数字作为猜测? 我很沮丧 谢谢!

对于第一个问题,请使用一个集合来跟踪先前的输入值:

seen = set()
while guess != number:    
    if guess < number:
        print "Sorry, your guess is too low."                 
    if guess > number:
        print "Sorry, your guess is too high."
    count += 1
    while True:
        guess = int(raw_input("Take another guess\n"))
        if guess in seen:
            print "Oops, you have guess than one before"
            continue
        else:
            seen.add(guess)
            break

对于第二个问题,您可以使用isinstance()函数,但没有太多需要。 int()函数将为您检查输入,如果未获得整数输入,则会引发异常。 如果您愿意,可以捕获该异常并添加一个不错的错误消息:

    try:
        guess = int(raw_input("Take another guess\n"))
    except ValueError:
        print "Sorry, I expected an integer"

问题一的答案列出清单:

while run:
    geusslist = []
    number = raw_input("Make A Geuss")
    geusslist.extend((number))

if print_nums:
    print "You Have Guessed:"
    print geusslist

如果运行了此代码,并且玩家猜到了10、20、30、40、50,则应该返回

>>> You Have Geussed:
>>> [10, 20, 30, 40, 50]

关于第二个问题,我认为“ Raymond Hettinger”在^上的回答很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM