【Python生成彩票号码】

话不多说,直接上代码

import random

# 生成前区的号码范围列表
rule_list1 = []
for i in range(35):
    rule_list1.append(i + 1)
# 随机筛选5个数字
li1 = random.sample(rule_list1, 5)
# 从小到大排序
li1.sort()
# 将列表内数字转换为字符串
li_temp1 = []
for i in li1:
    li_temp1.append(str(i))
# 给小于10的数字左边添加0
for i in range(len(li_temp1)):
    if len(li_temp1[i]) < 2:
        li_temp1[i] = "0" + li_temp1[i]

# 生成后区的号码范围列表
rule_list2 = []
for i in range(12):
    rule_list2.append(i + 1)
# 随机筛选2个数字
li2 = random.sample(rule_list2, 2)
# 从小到大排序
li2.sort()
# 将列表内数字转换为字符串
li_temp2 = []
for i in li2:
    li_temp2.append(str(i))
# 给小于10的数字左边添加0
for i in range(len(li_temp2)):
    if len(li_temp2[i]) < 2:
        li_temp2[i] = "0" + li_temp2[i]

lotto = li_temp1 + ["+"] + li_temp2
print(" ".join(lotto))

# 运行结果
05 07 08 12 26 + 09 10

不过,这看起来有些太low了,那我们就来优化一下下:

1.使用列表推导式

2.zfill()方法添加前导0

3.定义生成随机号码的方法

4.打印添加颜色

5.添加注释

import random


def random_num(ran_range, num):
    """
    指定范围生成指定数量的数字
    :param ran_range:
    :param num:
    :return:
    """
    li1 = random.sample([i + 1 for i in range(ran_range)], num)
    li1.sort()
    li2 = [str(i).zfill(2) for i in li1]
    return li2


def lucky_num_lotto(num, front_range, front_num, latter_range, latter_num):
    """
    生成中奖号码
    :param num: 中奖号码注数
    :param front_range: 前区号码范围
    :param front_num: 前区号码数量
    :param latter_range: 后区号码范围
    :param latter_num: 后区号码数量
    :return:
    """
    for i in range(num):
        head_num = " ".join(random_num(front_range, front_num))  # 前区号码
        tail_num = " ".join(random_num(latter_range, latter_num))  # 后区号码
        print(f"\033[1;31m{head_num}\033[0m", end="")  # 打印前区号码,不换行,红色加粗
        print(f"\033[1;38m{' + '}\033[0m", end="")  # 打印”+“,不换行,默认颜色加粗
        print(f"\033[1;34m{tail_num}\033[0m")  # 打印后区号码,蓝色加粗


if __name__=="__main__":
    # 生成两注大乐透
    lucky_num_lotto(2, 35, 5, 12, 2)
    # 生成两注双色球
    lucky_num_lotto(2, 33, 6, 16, 1)

运行结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Python 随机生成一注双色球彩票,你可以使用以下代码: ``` import random def generate_lottery(): red_numbers = random.sample(range(1, 34), 6) blue_number = random.randint(1, 16) red_numbers.sort() return red_numbers, blue_number red_numbers, blue_number = generate_lottery() print("红球号码:", red_numbers) print("蓝球号码:", blue_number) ``` 这段代码使用了`random.sample()`函数从1到33的范围中随机选择6个不重复的红球号码,并使用`random.randint()`函数从1到16范围中随机选择一个蓝球号码。然后,对红球号码进行排序,并将结果打印出来。 请注意,这段代码生成彩票号码是完全随机的,并且每次运行都会得到不同的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python随机生成一注双色球彩票](https://blog.csdn.net/xim00_/article/details/82254862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [如何使用 Python 实现彩票自由(双色球)](https://blog.csdn.net/weixin_55154866/article/details/128465459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值