weixin_44970168 2021-05-20 19:44 采纳率: 100%
浏览 39
已采纳

双色球指定区间比例选号问题

代码如下,能够正常运行,但是得到的结果跟预设的并不相符,请问该怎么办?

import random 

import linecache

x=input("请输入第一区间数量:")
y=input("请输入第二区间数量:")
z=input("请输入第三区间数量:")

def w500():
    redball=[]
    ticket=[]
    a=0
    b=0
    c=0

    for i in range(1,34):
        redball.append(i)
        i=i+1
        #print(redball)

    for x in range(1,7):
        red_num=random.sample(redball,1)
        redball.remove(red_num[0])
        ticket.append(red_num[0])
        #print(redball)
        #print(ticket)


    for i in ticket[:]:
        if 0<i<=11:
            a=a+1
        elif 11<i<=21:
            b=b+1
        elif 21<i<=33:
            c=c+1
        #print(a,b,c)

    return ticket,a,b,c
    linecache.clearcache() #清除缓存

w500()
print(w500()[0],w500()[1:])

active=True

while active:
    w500()
    if w500()[1]==int(x) and w500()[2]==int(y) and w500()[3]==int(z):
        print(w500()[0],w500()[1:],'Bingo!')
        linecache.clearcache() #清除缓存
        active=False
    else:
        print(w500()[0],w500()[1:])
        linecache.clearcache() #清除缓存
  • 写回答

3条回答 默认 最新

  • CSDN专家-HGJ 2021-05-20 23:30
    关注

    运行结果不正确的原因就是对w500函数调用上,代码中先调用一次,又在while语句块中if判断和print语句又重复调用该函数,每次调用其返回值都会改变。将每次循环调用w500函数返回值赋值给一个变量,后取值进行判断并打印输出,这样改即可:

    import random 
    import linecache
    
    x=input("请输入第一区间数量:")
    y=input("请输入第二区间数量:")
    z=input("请输入第三区间数量:")
     
    def w500():
        a=b=c=0
        redball=random.sample(range(1,34),6)    
        for i in redball:
            if 0<i<=11:
                a=a+1
            elif 11<i<=21:
                b=b+1
            elif 21<i<=33:
                c=c+1
        return redball,a,b,c
        linecache.clearcache() #清除缓存
     
    while True:
        g=w500()    
        if g[1]==int(x) and g[2]==int(y) and g[3]==int(z):
            print(g[0],g[1:],'Bingo!')
            linecache.clearcache() #清除缓存
            break
        else:
            print(g[0], g[1:])
            linecache.clearcache() #清除缓存
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀