weixin_39017744 2019-09-29 02:11 采纳率: 83.3%
浏览 724
已采纳

请问如何做python的循环随机取数组直到得出指定数字?

举个例子:
随机数字范围:0~100
每组数字量:6(s1,s2,s3,s4,s5,s6)
第二轮开始随机数字范围:新s1和新s2取值为旧s1和s2之间,新s3和新s4取值为旧s3和s4之间,新s5和新s6取值为旧s5和s6之间。
跳出循环条件:任意数字=37
如因s1=s2!=37&s3=s4!=37&s5=s6!=37使数组进入无意义无限循环,则重新取0~100六个数字并开始如上述第二轮随机的随机取值。

如果题目哪里没看懂请告诉我,答案以代码形式发送。谢谢!

  • 写回答

5条回答

  • 积跬步以至千里。 2019-09-29 11:25
    关注
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import random
    
    def random_test():
        # 初始化一个列表,随机0-100的6个数字
        rst_list = [random.randint(0,100) for i in range(0, 6)]
        print(rst_list)
        while 1:
            # 新建临时数据,用来存储rst_list按规则处理后的数据
            temp = []
            for k,v in enumerate(rst_list):
                if k%2==0:
                    temp.append(random.randint(min([rst_list[k],rst_list[k+1]]),max([rst_list[k],rst_list[k+1]])))
                else:
                    temp.append(random.randint(min(rst_list[k-1], rst_list[k]),max(rst_list[k-1], rst_list[k])))
            # 将结果temp列表,写入结果列表 rst_list
            rst_list = temp
            print(rst_list)
            # 判断37在结果列表中,则返回结果列表 rst_list
            if 37 in rst_list:
                print('rst_list:',rst_list)
                return rst_list
            else:
                # 37没在列表中,则按要求判断死循环情况(需求里的 s1=s2!=37&s3=s4!=37&s5=s6!=37 )
                # 如果进入死循环,则重新初始化结果列表 rst_list
                if rst_list[0]==rst_list[1] and rst_list[2]==rst_list[3] and rst_list[4]==rst_list[5]:
                    rst_list = [random.randint(0, 100) for i in range(0, 6)]
    
    def main():
        random_test()
    
    
    if __name__ == '__main__':
        main()
    
    

    根据需求描述,按照最简单和容易理解的方式,逐步实现需求。注释和打印较多,实际代码篇幅并不多

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面