Pthon.<习题七> 函数(下)
16.将列表a中的数据线性转换成指定范围内的数据,并存放到列表a中的元素的最大值max_value,最小值为min_value。当指定列表b中数据的取值范围为[low,high]时,将列表a中的元素a[i]线性转换为列表b中的元素b[i]的变换公式为
b[i]=low+(a[i]-min_value)*(high-low)/(max_value-min_value)
import random
def transfer(a, low, high):
b = []
max_value = max(a)
min_value = min(a)
for p in a:
new_value = low + (p - min_value) * (high - low) / (max_value - min_value)
new_value = round(new_value, 4)
b.append(new_value)
return b
def transfer2(a, low, high):
max_value = max(a)
min_value = min(a)
b = [round(low + (p - min_value) * (high - low) / (max_value - min_value), 4) for p in a]
return b
a = [random.randint(1, 100) for i in range(10)]
print(a)
low = int(input("low:"))
high = int(input("high:"))
b = transfer(a, low, high)
print(b)
b = transfer2(a, low, high)
print(b)
17.输入一串字符作为密码,密码只能由数字与子母组成。编写一个函数judge(password),用来求出密码的强度leval,并在主程序中测试该函数,根据输入,输出对应密码强度。密码强度判断准则如下(满足其中一条,密码强度增加一级):1有数字;2有大写字母;3有小写字母;4位数不少于8位。
测试数据:
请输入测试密码:abc123
abc123的密码强度为2级
请输入测试密码:Abc123
Abc123的密码强度为3级
请输入测试密码:Abc12345
Abc12345的密码强度为4级
def judge(password):
level = 0
n = len(password)
if n >= 8:
level += 1
for ch in password:
if '0' <= ch <= '9':
level += 1
break
for ch in password:
if 'A' <= ch <= 'Z':
level += 1
break
for ch in password:
if 'a' <= ch <= 'z':
level += 1
break
return level
while True:
s = input('请输入测试密码(直接回车为退出):')
if s == '':
break;
level = judge(s)
print(f'{s}的密码强度为{level}级')
18.中位数是常见的统计量之一,在概率论和统计学中有广泛的应用,在偏态分布中有重要的价值。例如:想从一组数据中知道人们的平均财富,得到的是91000元,这是一个完全没有向人们展示真实情况的奇怪的值。在这种情况下,中位数会提供更有用的值和较好的描述。对于元素个数不同的列表而言,中位数的计算方式分为如下两种:
(1)若列表中元素的个数为奇数,则中位数为排序后列表中间位置的那个数。
(2)若列表中元素的个数为偶数,则中位数为排序后列表中间位置两个数的平均值。
请编写一个函数,该函数接收一个列表参数,返回该列表的中位数,最后在主程序中测试该函数。