Python期末复习题:字符串与产生随机数

Python期末复习题:字符串与产生随机数

文章目录

  • Python期末复习题:字符串与产生随机数
    • 一、身份证号基本信息
    • 二、分类统计各字符的个数
    • 三、字符串加密
    • 四、随机产生验证码

一、身份证号基本信息

提取身份号码中的日期与性别。中国的居民身份证号是一个18个字符的字符串:

第7–14位数字表示出生年、月、日;第17位数字表示性别,奇数表示男性,偶数表示女性。

输入一个合法的身份证号,输出其出生年月日。

测试说明:

输入:530126193303150409

输出:

出生: 1933年03月15日

性别: 女

sfz = input()
l = len(sfz)
t = sfz[0:17]
n = 0
for i in t:
    num = ord(i)
    if 48 <= num <= 57:
        n = n + 1
if l >= 18 and n == 17:
    year = sfz[6: 10]
    month = sfz[10: 12]
    day = sfz[12: 14]
    sex = int(sfz[16])
    if sex % 2 == 0:
        sex = '女'
    else:
        sex = '男'
    print(f'出生:{year}{month}{day}日\n性别:{sex}')

运行的结果是:

530126193303150409
出生:19330315日
性别:女

二、分类统计各字符的个数

分类统计字符个数。输入一个字符串,统计字符串里英文字母、数字和其他字符的个数。

测试示例:

输入:123 The operators in and not in test for membership 456.

输出:字母39个, 数字6个, 其他字符11个

s = input()
char, num, other = 0, 0, 0
for i in s:
    if i.isdigit():
        num += 1
    elif i.isalpha():
        char += 1
    else:
        other += 1
print(f"字母{char}个,数字{num}个,其他字符{other}个")

运行的结果是:

123 The operators in and not in test for membership 456.
字母39个,数字6个,其他字符11

三、字符串加密

字符串加密。在一行中输入一个包括大小写字母和数字的字符串,编程将其中字母都转为大写,然后将大写字母用该字母后的第4个字母替换,其他字符原样输出,实现字符串加密。

测试:

输入:

LIFE is SHORT, you NEED PYTHON

输出:

PMJI MW WLSVX, CSY RIIH TCXLSR

strs = input()
for i in strs:
    if ord('A') <= ord(i) <= ord('Z'):
        print(chr(ord('A') + (ord(i) - ord('A') + 4) % 26), end='')
    else:
        print(i,end='')

运行的结果是:

LIFE is SHORT, you NEED PYTHON 
PMJI is WLSVX, you RIIH TCXLSR

四、随机产生验证码

用户在网络上注册或登录各平台时,经常需要输入验证码。这些验证码采取随机生成的方式产生,包含大小写字母和数字。用户输入验证码时,一般不区分大小写(提示:用户输入时不区分大小写,在验证前可以将用户输入的字符串和验证码中的大写字母都转为小写字母;或反过来,将所有小写字母转换为大写字母,再进行匹配验证)。

要求产生长度为6位字母数字的验证码,并且对用户的输入的验证码进行验证。

(提示:为了方便产生字符串,允许导入字符串处理库string。string.ascii_letters可以产生所有的大小写英文字符;string.digits产生0~9十个数字字符。)

import random
import string
  
def verification_code(size):
    code = ''.join([random.choice(
                        string.ascii_letters + string.digits)
                        for n in range(size)])                     
    return code
def verify():
    ver_code = verification_code(6)
    input_ver_code = input(f'请输出验证码{ver_code}:')
    if input_ver_code.lower() == ver_code.lower():
        print('验证码正确')
    else:
        print('验证码错误')
verify()

运行的结果是:

请输出验证码UMaf6j:uuuu
验证码错误
请输出验证码wolR9i:wolr9i
验证码正确

你可能感兴趣的:(Python编程基础,Python每日一练,python,开发语言)