python 实验八 函数 (下)

15.重复元素判定。编写一个函数,接受一个列表最为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变源列表的值。最后在主程序中测试该函数。

def fun(ls):
    for n in ls:
        if ls.count(n) > 1:
            return True
    else:
        return False


def fun2(ls):
    return len(set(ls)) < len(ls)


ls = eval(input('请按照列表格式输入列表元素:'))
if fun(ls) == True:
    print('该列表中存在重复元素')
else:
    print('该列表中不存在重复元素')

if fun2(ls) == True:
    print('该列表中存在重复元素')
else:
    print('该列表中不存在重复元素')

输出样例

请按照列表格式输入列表元素:11,16
该列表中不存在重复元素
该列表中不存在重复元素

16.将列表a中的数据线性转换成指定范围内的数据,并存放在列表b中。假设列表a中的元素的最大值为max_value,最小值为max_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)

输出样例

[61, 89, 29, 42, 59, 65, 44, 84, 23, 86]
low:0
high:1
[0.5758, 1.0, 0.0909, 0.2879, 0.5455, 0.6364, 0.3182, 0.9242, 0.0, 0.9545]

17.输入一串字符作为密码,密码只能有数字与字母组成。编写一个函数judge(password),用来求出密码的强度level,并在主程序中测试该函数,根据输入,输出对应密码强度。密码强度判断准则如下(满足其中一项,密码增强一级):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:
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值