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,以此类推。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。编程实现恺撒加密,明文和偏移量由用户输入,输出密文。
输入包括两行 :‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬第一行是一个字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬,第二行是一个正整数。
输出格式:一个字符串,内容为用户输入字符串加密的结果。

扫描二维码关注公众号,回复: 9987068 查看本文章

答案

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,'*')  #str.replace(x,y)方法,x为被替换的值,y为替换值
print(a)

6、字符串替换

在编辑文档时,对于出现频率很高又难于输入的字符串经常可以用一个特殊的短字符串代替输入,待文档完成时再替换回来。
如:在输入“武汉理工大学”时,可以用"whut"代替,编程完成这种替换。
输入有三行:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
第一行是用于替换的短字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
第二行是需要替换的较长的字符串‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
第三行是输入的文档,以回车结束。 输出格式:替换后的字符串

答案

str1 = input()
str2 = input()
str3 = input()
print(str3.replace(str1,str2)) #str.replace(x,y)方法,x为被替换的值,y为替换值
print(a)

7、身份证号处理

18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。 用户输入一个合法的身份证号,请输出用户的出生年月日,年龄和性别。(不要求较验输入的合法性)
请先查看下方此题特别说明。
import datetime
datetime.datetime.now().year #可用于获得当前年份
输入格式:输入一个合法的身份证号字符串
类似以下格式输出:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬
你出生于1973年05月16日
你今年45周岁
你的性别为男

答案

import datetime #导入datetime库,或使用 from datatime import *
yearnow = datetime.datetime.now().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))

发布了14 篇原创文章 · 获赞 22 · 访问量 6939

猜你喜欢

转载自blog.csdn.net/weixin_46283583/article/details/104797585
今日推荐