【问题标题】:python random lottery number generator gamepython随机彩票号码生成器游戏
【发布时间】:2019-07-17 16:32:30
【问题描述】:

我必须制作一个游戏,就像彩票一样,我的程序从数字 1-50 的列表中生成 5 个随机数字,从数字列表中生成一个额外的数字 1-20,并将它们组合成一个最终列表,内容如下: (20, 26, 49, 01, 11, + 06) 其中两个数字永远不会重复,例如 (22, 11, 34, 44, 01, + 22)

下面附上的是我写的代码,但我如何让它永远不会重复两个或更多数字,并将 + 添加到我的列表中,而没有“”符号

输入: 随机导入

a = list(range(1,51))
b = random.randint(1, 20)

temp = []

for i in range(5):
  random.shuffle(a) 
  temp.append(random.choice(a[:5])) 
temp.append('+')
temp.append(b)

print(temp)

输出:

[14, 12, 3, 16, 23, '+', 9]

【问题讨论】:

    标签: python-3.x random code-generation google-colaboratory


    【解决方案1】:

    如果没有',则不能添加+ - 它们将+标记为字符串。

    另外:你打乱你的列表 - 只需取前 5 个值 - 它们是随机的,你的列表不包含任何欺骗,所以你是黄金:

    nums = list(range(1,51))
    random.shuffle(nums)
    five_nums = nums[:5]
    print(five_nums)     # [44, 23, 34, 38, 3]
    

    为了简单起见,请使用:

    import random
    
    # creates 5 unique elements from 1..50 and adds a + and a [0-19]+1 number
    randlist = random.sample(range(1,51),k=5) + ["+", random.choice(range(20))+1]
    print(randlist)
    

    现在您得到了混合数字和字符串 - 您可以通过以下方式创建组合字符串:

    print("You drew {} {} {} {} {} {} {}".format(*randlist))
    

    创建一个类似

    的字符串
    [48, 2, 9, 6, 41, '+', 8]
    
    You drew 48 2 9 6 41 + 8
    

    独库:

    【讨论】:

      【解决方案2】:

      您可以尝试以下方法:

      import random
      randList, run = [], 0
      while run < 6:
         number = random.randint(1,51)
         if number not in randList:
              if run == 5:
                  randList.append('+'+str(number))
                  break
              randList.append(number)
              run += 1
      print(randList)
      

      列表中的字符串不能没有引号,但是,如果要打印列表中的每个项目(使用 for 循环或连接),引号就不会出现。

      【讨论】:

        【解决方案3】:

        此代码将生成一个包含 7 个随机数的列表

        import random
        
        def main():
        
            numbers = []
        
            for num in range(7):
        
                num = random.randrange(50)
        
                numbers.append(num)
        
            print(numbers)
        
        main()
        

        【讨论】:

          【解决方案4】:

          它没用,因为你需要拥有

          import random
          

          【讨论】:

          • OP 在input: 之后写了import random,以防你没看到
          猜你喜欢
          • 1970-01-01
          • 2022-11-16
          • 1970-01-01
          • 2016-02-04
          • 1970-01-01
          • 1970-01-01
          • 2015-01-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多