練手小程序(二)

繼續繼續,今天的小程序跟昨天的類似,也只用到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之間-_-
發佈了30 篇原創文章 · 獲贊 26 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章