首页 > 代码库 > guess number

guess number

crossin的前面几章基本和LPTHW内容重合,因此我直接做了他前面的一个综合练习。

猜数游戏,

即系统随机记录一个数,根据用户猜的记录,如果正确则告知,且退出游戏,如不正确,则提示答案与用户输入的比较。超过6次仍未猜对,则告知用户答案,且退出。

我在本章练习里,增加了一个列表,用以记录用户的输入记录,当用户失败时,告知他输入过哪些数字。

#!/usr/bin/env python# -*- coding:utf-8 -*-import randomdef main():    random_num = random.randint(1,100)    user_input = []    for i in xrange(1,7):        user_num =  int(raw_input("please input a num:\n>\t"))        if random_num == user_num:            print "BINGO!"            print "You guess the answer on %d time" % i            is_ok = True            break        elif random_num > user_num:            print "The answer is large then your input"            user_input.append(user_num)            is_ok = False        elif random_num < user_num:            print "The answer is less then your input"            user_input.append(user_num)            is_ok = False    if  is_ok:        print "You win the game"    else:        print "You lose the game"        print "The answer is %d,your answer is %r" % (random_num,)if __name__ == "__main__":    main()

 考察点:

1、loop控制,其实while,for都可以很好的进行控制这个内容,在这里我没有选用while是因为while判断条件才进行循环的,如果条件控制不佳,容易造成死循环。而for循环的话,总能结束。

2、loop控制,关于答对题目时的退出,break,其实还有一种continue的控制方法,但是我没想到怎么加进去。continue的意思是,跳过本次循环,而break是跳出循环体。

3、布尔判断即if-elif-else

4、关于标准库的使用,即如果使用import导入必要模块等。

5、提高:其实可以使用try-except-finally进行用户输入,是否为数字的异常检测。我这里没写,如感兴趣可以给我留言。

6、变量赋值以及用户的输入。

guess number