python新手代码练习Python123练习4
⽂章⽬录
1、验证码较验
⽤户登录⽹站经常需要输⼊验证码,验证码包含⼤⼩写字母和数字,随机出现。⽤户输⼊验证码时不区分⼤⼩写,只要各字符出现顺序正确即可通过验证。
请写⼀个程序完成验证码的匹配验证,假设当前显⽰的验证码是’Qs2X’。
如果⽤户输⼊验证码正确,输出“验证码正确”,输⼊错误时输出“验证码错误,请重新输⼊”
⽅法⼀
a =input()
b =['qs2x','qS2x','qs2X','qS2X','Qs2x','QS2x','QS2X','Qs2X']#创建所有可能值的列表
if a in b:#if⽅法使⽤in判断a是否在b中
print("验证码正确")
else:
print("验证码错误,请重新输⼊")
⽅法⼆
s =input()
if s.upper()=='Qs2X'.upper():#输⼊值全部⼤写化⽐较是否相等,也可使⽤lower()⼩写化
print('验证码正确')
else:
print('验证码错误,请重新输⼊')
2、⼤⼩写转换
编写程序,⽤户输⼊⼀个字符串,将其中⼩写字母全部转换成⼤写字母,把⼤写字母全部转换成⼩写字母,其他字符不变输出。
⽅法⼀
s =input()
print(s.swapcase())#字符串⼤⼩写反转⽅法
⽅法⼆
import string  #导⼊string库
s =input()
list1 = string.ascii_lowercase  #获取所有⼩写字母列表
list2 = string.ascii_uppercase  #获取所有⼤写字母列表
for i in range(len(s)):#遍历循环输⼊值中每个字母的位置
if s[i]in list1:#索引该位置的字母,并判断是否在⼩写列表中
print(chr(ord(s[i])-32),end='')#ASILL ⼩写字母—⼤写字母=32
elif s[i]in list2:
print(chr(ord(s[i])+32),end='')
else:
print(s[i],end='')
3、查指定字符
编写程序,从⽤户给定字符串中查某指定的字符。
输⼊的第⼀⾏是⼀个待查的字符,第⼆⾏是⼀个以回车结束的⾮空字符串。
如果到,在⼀⾏内按照格式“index = 下标”输出该字符在字符串中所对应的最⼤下标(下标从0开始); 否则输出"Not Found"。
⽅法
a =input()
b =input()
c = b.find(a)# b.find(a)⽅法,从b字符串s搜索a,并返回出现出偏移量,未到则为-1
if c !=-1:# ⽐较符号不等于!=
print("index = {}".format(c))
else:
print('Not Found')
4、凯撒加密
在密码学中,恺撒密码是⼀种最简单且最⼴为⼈知的加密技术。它是⼀种替换加密的技术,明⽂中的所有字母都在字母表上向后(或向前)按照⼀个固定数⽬进⾏偏移后被替换成密⽂。例,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密⽅法是以恺撒的名字命名的,当年恺撒曾⽤此⽅法与其将军们进⾏联系。编程实现恺撒加密,明⽂和偏移量由⽤户输⼊,输出密⽂。
输⼊包括两⾏ :第⼀⾏是⼀个字符串,第⼆⾏是⼀个正整数。
输出格式:⼀个字符串,内容为⽤户输⼊字符串加密的结果。
答案
plaincode =input()
num =int(input())
'''
原⽂字符P,密⽂字符C,偏移量num满⾜下列条件
C = (P + num) mod 26
P = (C - num) mod 26
ord函数:返回⽤来表⽰内存中相应字符的实际⼆进制值(底层整数码-ASCII字节值)
chr函数:获取整数码并将其转换为对应的字符
'''
for p in plaincode:# 使⽤上⾯的⽅法计算
if ord("a")<=ord(p)<=ord("z"):
print(chr(ord('a')+(ord(p)-ord('a')+num)%26),end='')
elif ord("A")<=ord(p)<=ord("Z"):
print(chr(ord('A')+(ord(p)-ord('A')+num)%26),end='')
else:
print(p,end="")
5、敏感词过滤
现在基本上所有的⽹站都需要设置敏感词过滤,编程查与敏感词列表相匹配的字符串,如果到以*号替换,最终得到替换后的字符串。
假设敏感词列表由以下词组成:垃圾,陷阱,不要脸,内幕,辣鸡。 输⼊格式:输⼊⼀个字符串输出格式
输出格式:替换敏感词后的字符串
答案
list1 =['垃圾','陷阱','不要脸','内幕','辣鸡']#创建关键词列表
a =input()
for i in list1:#使⽤in判断字符串是否有词在列表中遍历循环
if i in a:#if判断结果
a = a.replace(i,'*')#place(x,y)⽅法,x为被替换的值,y为替换值
print(a)
6、字符串替换
在编辑⽂档时,对于出现频率很⾼⼜难于输⼊的字符串经常可以⽤⼀个特殊的短字符串代替输⼊,待⽂档完成时再替换回来。
如:在输⼊“武汉理⼯⼤学”时,可以⽤"whut"代替,编程完成这种替换。
输⼊有三⾏:
第⼀⾏是⽤于替换的短字符串
第⼆⾏是需要替换的较长的字符串
第三⾏是输⼊的⽂档,以回车结束。 输出格式:替换后的字符串
答案
str1 =input()
str2 =input()
str3 =input()
place(str1,str2))#place(x,y)⽅法,x为被替换的值,y为替换值
7、⾝份证号处理
18位⾝份证号码:第7、8、9、10位为出⽣年份(四位数),第11、第12位为出⽣⽉份,第13、14位代表出⽣⽇期,第17位代表性别,奇数为男,偶数为⼥。 ⽤户输⼊⼀个合法的⾝份证号,请输出⽤户的出⽣年⽉⽇,年龄和性别。(不要求较验输⼊的合法性)请先查看下⽅此题特别说明。
import datetime
w().year #可⽤于获得当前年份
输⼊格式:输⼊⼀个合法的⾝份证号字符串
类似以下格式输出:
你出⽣于1973年05⽉16⽇
你今年45周岁
你的性别为男
答案
import datetime #导⼊datetime库,或使⽤ from datatime import *
yearnow = w().year #可⽤于获得当前年份
id1 =input()#输⼊⾝份证号
year = id1[6:10]#切⽚获得年份
mouth = id1[10:12]#切⽚获得⽉份
day = id1[12:14]#切⽚获得天数
gender = id1[16]#切⽚获得性别数值
if eval(gender)%2==0:#整除2求余数,若为0则是偶数-⼥,反之则为奇数-男
gender="⼥"
else:
gender="男"
print("你出⽣于{}年{}⽉{}⽇".format(year,mouth,day))
print("你今年{}周岁".format(int(yearnow)-int(year)))#当前年份与出⽣年份相减的年龄
print("你的性别为{}".format(gender))
如果⽂章内容或代码有问题,私信讨论

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。