第一题:输入一个完全由数字字符组成的字符串s,分别统计其中出现的奇数和偶数字符数值之和。如输入‘123456789’,输出 oddsum=25,evensum=20本题需要使用自定义函数完成。
def clac(s):
x = y = 0
for i in s:
cnt = int(i)
if cnt % 2:
x += cnt
else :
y += cnt
return x, y
str01 = input('请输入一串字符')
ji, ou = clac(str01)
print('oddsum:', ji, 'evensum:', ou)
第二题:编写一个函数,传入自己喜欢的景点,景点所在的省份以及省份的简称,函数用于对这些信息进行打印。打印格式如下所示:
我最喜欢的景点是避暑山庄
它位于河北省
河北省的简称是冀
调用此函数时,请采用参数的解包裹传递。
def printfaddress(address, province, eng):
print('我最喜欢的景点是:', address)
print('它位于:', province)
print(f'{province}的简称为:', eng)
list01 = input('请输入内容,空格隔开:').split()
printfaddress(*list01)
第三题:编写一个函数,用于计算多个数字的乘积,参数的个数不确定,计算后返回乘积。
def calc(*list01):
res = 1
for i in list01:
res *= i
return res
lens = int(input('请输入参数个数:'))
list01 = []
for i in range(0, lens):
x = int(input(f'请输入第{i}个参数:'))
list01.append(x)
print('乘积结果为:', calc(*list01))
第四题: 校验身份证号码并输出个人信息:中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。 如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下:
(1)将前面的身份证号码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。 用户输入一个身份证号,校验其是否是合法的身份证号码,如身份证号码不合法输出 '身份证校验位错误!',如身份证号码合法则分别在4行中输出'身份证号码校验为合法号码!',并输出该人的出生年月日和性别。
输入格式:
一个18位身份证号,末位为数字或大写字母X
输出格式:
参考示例
示例 1
输入:
432831196411150810
输出:
身份证号码校验为合法号码!
出生:1964年11月15日
def check(str01):
list01 = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
sum = 0
for i in range(0, 17):
sum += int(str01[i]) * list01[i]
sum %= 11
list02 = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
if str01[len(str01) - 1] != list02[sum]:
print('身份证校验位错误!')
print(str01[len(str01) - 1], list02[sum])
else :
year = 0
for i in range(6, 10):
year = year * 10 + int(str01[i])
month = 0
for i in range(10, 12):
month = month * 10 + int(str01[i])
day = 0
for i in range(12, 14):
day = day * 10 + int(str01[i])
print('身份证号码校验为合法号码!')
print(f'出生:{year}年{month}月{day}日', end=' ')
ans = 0
if int(str01[len(str01) - 1]) % 2:
ans = '男'
else :
ans = '女'
print(f'性别:{ans}')
s = input('请输入身份证号')
check(s)
都看到这了,点个赞呗!