作业"/>
python 主题5 字符串及正则表达式 单元作业
1.各位数字之和为5的数
描述
输入一个1000以内的正整数 n,在同一行内输出 [0,n] 之间各位数字之和为5的数,数字之间用空格分开(行末有一个空格)。
输入
输入一个1000以内的正整数 n
输出
符合条件的数
n=int(input())
if n < 1000:for i in range(n+1):sum = 0for tem in str(i):sum = sum + int(tem)if sum == 5:print(i,end=" ")
2.月份缩写(一)
描述
如果有 months = “Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec.”,编写一个程序,用户输入一个月份的数字,输出月份的缩写。
输入格式
一个1-12的正整数
输出格式
一个字符串,月份的缩写
months = "Jan.Feb.Mar.Apr.May.Jun.Jul.Aug.Sep.Oct.Nov.Dec."
n=input()
pos=(int(n)-1)*4
findmonth=months[pos:pos+4]
print(findmonth)
3.字符串加密
描述
用户在一行中输入一个包括大小写字母和数字的字符串,编程将其中的大写字母用该字母后的第5个字母替代,小写字母用该字母后的第3个字符替代,其他字符原样输出,实现字符串加密。
输入格式
输入一个至少包含一个字母的字符串
输出格式
加密后的字符串
s = input()
result = ""
for c in s:if c.islower(): result += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )elif c.isupper():result += chr( ord('A') + ((ord(c)-ord('A')) + 5 )%26 )else:result += c
print(result)
4.念数字
描述:
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。
n=input()
dic={0:"ling",1:"yi",2:"er",3:"san",4:"si",5:"wu",6:"liu",7:"qi",8:"ba",9:"jiu"}
ss=""
for i in str(n):if i.isdigit():ss += dic[int(i)] + " "else:print("fu",end=" ")
print(ss.rstrip())
5.判断火车票座位
描述
我国高铁一等座车座席采用2+2方式布置,每排设有“2+2”方式排列四个座位,以“A、C、D、F”代表,字母“A”和“F”的座位靠窗,字母“C”和“D”靠中间走道。 二等座车座席采用2+3布置,每排设有“3+2”方式排列五个座位,以“A、B、C、D、F”代表,字母“A”和“F”的座位靠窗,字母“C”和“D”靠中间走道,“B”代表三人座中间座席。每个车厢座位排数是1-17,字母不区分大小写。
用户输入一个数字和一个字母组成的座位号,根据字母判断位置是窗口、过道还是中间座席,输入不合法座位号时输出’输入错误’。
输入格式
输入一个数字和字母组合成的字符串
输出格式
‘窗口’、‘过道’、‘中间’ 或’输入错误’
import sys
lst=["a","b","c","d","f"]
n=input()
num=n[:-1]
ch=n[-1].lower()
if num.isdigit():dig=int(num)if dig<1 or dig>17 or ch not in lst:print('输入错误')sys.exit()
else:print("输入错误")sys.exit()
if ch=="a" or ch=="f":print('窗口')
elif ch=='c' or ch=='d':print('过道')
elif ch=='b':print('中间')
6.身份证号校验
描述
中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。
如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:
- 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
2. 将这17位数字和系数相乘的结果相加。
3. 用加出来和除以11,看余数只可能是:0-1-2-3-4-5-6-7-8-9-10
分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2
4. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X(大写英文字母X)。如果余数是10,身份证的最后一位号码就是2。
用户输入一个身份证号,校验其是否是合法的身份证号码。
输入格式
一个18位身份证号,末位为数字或大写字母X
输出格式
‘身份证号码校验为合法号码!’ 或 ‘身份证校验位错误!’
numId=input()
lst=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
lst2=[1,0,'X',9,8,7,6,5,4,3,2]
sum=0
for i in range(0,17):sum+=int(numId[i])*lst[i]
if str(lst2[sum%11])==numId[-1]:print("身份证号码校验为合法号码!")
else:print("身份证校验位错误!")
7.个人数据脱敏
描述
随着计算机与互联网技术快速发展,电话号码,家庭住址,姓名等个人隐私信息被泄露的风险也越来越高。
数据脱敏是指对敏感信息进行变形处理,比如将电话号码 ‘13000000000’ 中的四位用 ’‘ 来代替,变为 ‘130***0000’。
本题要求从输入的学生信息中将手机号码,姓名,学号数据进行脱敏处理。
处理规则如下:
学号(13 位或 14 位数串):第 5-11 位修改为 ’‘ 如 ’0121134567801‘ 修改为 ’0121******01‘
姓名:第2位修改为’’ 如’贾诩‘修改为’贾‘
电话号码(11位数串):第4-7位 修改为’’ 如‘13000000000’中修改为‘130***0000’
输入
第一行输入 n,代表 n 个同学的信息
依次输入 n 行学生信息数据,每行保存一名学生的学号、姓名、电话号码以空格间隔
输出
将学生数据脱敏后的信息保存到二维列表中,并输出这个二维表。
如果 n 不是正整数,输出’ERROR‘。(本题保证 n 是整数,且信息完整)
import sys
lst=list()
n=input()
if n.count('.')==1 or n.count('-')==1 or not n.isdigit():print('ERROR')sys.exit()
else:n=int(n)for i in range(0,n):mlst=list()n=input().split()s0 = list(n[0])for i in range(len(s0)):if i > 3 and i < 11:s0[i] = '*'a = ''.join(s0)mlst.append(a)s1 = list(n[1])for i in range(len(s1)):if i == 1:s1[i] = '*'b=''.join(s1)mlst.append(b)s2 = list(n[2])for i in range(len(s2)):if i < 7 and i > 2 :s2[i] = '*'c=''.join(s2)mlst.append(c)lst.append(mlst)print(lst)
更多推荐
python 主题5 字符串及正则表达式 单元作业
发布评论