每日一练 — 2021.11.28


一、以特殊格式处理连续增加的数字

1、程序简介

要求

给出一串数字, 程序要把数字按照这样的格式输出,把连续增加的数字用 [x-y] 的形式表示,只显示这一组顺序数字的首位两个数字,不连续增加的数字单独列出。


例如:

输入:

1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 21, 22;


输出:

[1-5] [8] [10-13] [20-22]。


2、程序代码

# -*- coding: utf-8 -*-
"""
Created on Sun Nov 28 09:24:22 2021
Function: 以特殊格式处理连续增加的数字
@author: 小梁aixj
"""
seq=list(map(int, input('请输入一串数字,并以逗号分隔:').split(',')))
tmp=[seq[0]]
all_list=[]
for n in range(len(seq)):
    if n == len(seq)-1:
        all_list.append(tmp)
        break
    if seq[n+1]-seq[n]==1:
        tmp.append(seq[n+1])
    else:
        all_list.append(tmp)
        tmp=[seq[n+1]]
for a in all_list:
    if len(a)>1:
        print('[%s-%s]' % (a[0], a[-1]))
    else:
        print('[%s]' % a[0])


3、运行结果(如下图)

在这里插入图片描述


二、输出整数的全排列

1、程序简介

要求

输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按字典序输出。


输入样例

例1

输入: 3
输出:
123 132 213 231
312 321
结果如图:
在这里插入图片描述


例2

输入: 4
输出:
1234 1243 1324 1342
1423 1432 2134 2143
2314 2341 2413 2431
3124 3142 3214 3241
3412 3421 4123 4132
4213 4231 4312 4321
结果如图:
在这里插入图片描述


2、程序代码

# -*- coding: utf-8 -*-
"""
Created on Sun Nov 28 09:25:18 2021
Function: 输出整数的全排列
@author: 小梁aixj
"""
import random
count=0
n = int(input('输入整数n(3<=n<=7):'))
t = list()
t1 = set()
for i in range(1, n+1):
    t.append(str(i))
while True:
    sum = 1
    for i in range(1, n + 1):
        sum *= i
    if len(t1) >= sum:
        break
    random.shuffle(t)
    t1.add(''.join(t))
s = sorted(t1)
for i in s:
    print(i,end = ' ')
    count = count+1
    if count%4 == 0:
        print()

3、运行结果(如下图)

在这里插入图片描述


三、随机生成车牌号

1、程序简介

要求

  • 某市随机生成车辆号牌的规则是:号牌字头为"某A-","某B-"等(字母为除了C以外的A~H范围内的大写字母),字头后面由5位字符组成,第1位必须是数字;
  • 第2、3、4、5位可以是任意数字或不含字母"O"的大写英文字母。
  • 程序功能为:调用自己设计的函数license_plate(),随机生成5个车辆号牌,等待输入一个心仪号码的序号选择号牌,并将其打印输出。
  • 程序运行结果如下图所示:
    在这里插入图片描述

2、程序代码

# -*- coding: utf-8 -*-
"""
Created on Sun Nov 28 09:25:37 2021
Function: 随机生成车牌号
@author: 小梁aixj
"""
import random
def genrndchar(metachar):
    return metachar[int(random.random()*len(metachar))]
def license_plate():
    s = '某'
    s = s + genrndchar(['A','B','C','D','E','F','G','H'])
    s = s + '-'
    s = s + genrndchar(['0','1','2','3','4','5','6','7','8','9'])
    for i in range(4):
        s = s+genrndchar(['0','1','2','3','4','5','6','7','8','9',
                          'A','B','C','D','E','F','G','H','I','J',
                          'K','L','M','N','O','P','Q','R','S','T',
                          'U','V','W','X','Y','Z'])
    return s
lst = []
for i in range(5):
    plate = license_plate()
    lst.append(plate)
    print(str(i + 1) + ':' + plate)
x = int(input('请输入您心仪的号牌序号:')) - 1
print('您选中的号牌为:' + lst[x])

3、运行结果(如下图)

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值