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:\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、变量赋值以及用户的输入。