目录
一、以特殊格式处理连续增加的数字
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])