guess number

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

猜数游戏,

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

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import random
def main():
    random_num = random.randint(1,100)
    user_input = []
    for i in xrange(1,7):
        user_num =  int(raw_input("please input a num:
>	"))
        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、变量赋值以及用户的输入。

原文地址:https://www.cnblogs.com/sageskr/p/4085741.html