继续继续,今天的小程序跟昨天的类似,也只用到random模块,今天的任务是猜数字,随机生成一个正整数,然后让使用者给出猜测数,程序对比后给出进一步提示,知道猜中!!!
以下是程序代码:
#!/usr/bin/env python # _*_ coding: utf-8 _*_ from random import randint def gen_random_number(lower, upper): "generate a random integer number." # if lower > upper: # lower, upper = upper, lower return randint(lower, upper) def get_lower_and_upper(): "get lower limit and upper limit from user's input" while True: try: a, b = raw_input("Please input two positive integer number: ").split() a, b = int(a), int(b) except ValueError, e: print(e) continue if abs(a - b) <10: print("The difference between the two number must more than 10") continue elif abs(a -b) > 100: print("The difference between the two number must less than 100") continue else: return a, b def guess_number(): lower, upper = get_lower_and_upper() if upper < lower: lower, upper = upper, lower random_num = gen_random_number(lower, upper) while True: try: guess_num = int(raw_input("Guess a number between %d and %d: " % (lower,upper))) except ValueError, e: print("e") continue if guess_num == random_num: print("Unbelievable, you got the right number!!!") break elif guess_num > random_num and guess_num < upper: upper = guess_num print("The number is more than it shoud be. Try again!") continue elif guess_num < random_num and guess_num > lower: lower = guess_num print("The number is less than it shoud be. Try again!") continue if __name__ == "__main__": guess_number()
在程序中为了防止猜测范围过大,设置在了10-100之间-_-