python3--随机数

以前刚接触python时,从一本书上看到过一个随机数的小程序,然后就自己改动,变为了一个猜数字的小游戏,现又在python3下重写了一遍。

里面所涉及的东西有:函数的定义、while循环、循环中断break、循环继续continue、if条件判断、输入input、print输出、random库的使用等,下一步还涉及到sqlite数据库的存取,计划再做图形界面,python编程基本的东西就差不多了。

这里先发一个控制台下的猜数程序,winxp+python3.2+eric5和IDLE测试通过,但直接用winxp的命令行运行有问题,原因还未知,慢慢找。ubuntu+python3.1测试通过。

#import random
def rand():  
    """生成随机数,猜测循环"""
    print("猜数字游戏开始,输入'q'结束,输入'a'自动猜数!")
    a=random.randint(1, 100)
    b=0 #猜测数字初始值
    c=0 #猜测次数    
    while True:        
        b=input("请输入一个100以内整数:")
        if b.isnumeric():
            b=int(b)
            c+=1
            if a==b:
                print("你猜了", c,"次猜对了!")
                break 
            elif a>b:
                print("小了")
            else:
                print("大了")
        elif b=='q':
            print("GOOD LUCK! BYE!")
            break 
        elif b=='a':
            c=auto(a, c)
            print("你猜了", c,"次猜对了!")
            break
        else:
            print("输入有误!")
            continue

def auto(a, c=0):
    '''自动猜数字函数,接收2个参数
    a 表要猜的谜底数
    c 是猜测次数计数
    返回一个值c '''

    b=random.randint(1, 100)
    tmp_l=0
    tmp_h=100
    while b!=a:
        c+=1
        if b > a:   
            tmp_h=b
            b=int((b+tmp_l)/2)
        else:
            tmp_l=b
            b=int((b+tmp_h)/2)+1
        print(c, b)
    return(c)

if __name__ == '__main__':
    rand()

Published by 阿飞 on
Tags: 随机, python3

暂无评论