python的三个函数练习题

w01. 斐波那契数列

题目描述
斐波那契数列是一种特殊的数列,很多生活和企业场景中都能见到满足该数列的数据排列方式;现在要求你封装一个用于获取斐波那契数列数据的功能函数,用于底层数据支持;

输入描述
输入一个整数n

输出描述
输出位置为n的斐波那契数列对应的数据
示例

输入:1
输出:1

输入:3
输出:2

输入:8
输出:21

代码

def fibonacci_recursive(n):
    # 基准条件
    if n <= 2:
        return 1
    # 递归调用
    else:
        return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

# 测试函数
n=int(input("请输入斐波那契数列位置n:"))
number = fibonacci_recursive(n)
print(f"Fibonacci number is {number}")

运行截图

在这里插入图片描述

w02. 密码等级校验

题目描述
按照用户输入密码的字符,判断用户的密码强度,基本要求如下

  • 弱:都是数字,或者都是大写字母/小写字母组成的密码
  • 中等:[数字、大写字母] 或者 [数字、小写字母] 或者 [大写字母、小写字母] 或者 [大小写字母、数字]组成的密码
  • 强:[数字、大写字母] 或者 [数字、小写字母] 或者 [大写字母、小写字母]并结合特殊符号组成的密码
    输入描述
    用户输入一个字符串密码
    输出描述
    输出密码强度等级

示例

输入:abcdef
输出:弱密码

输入:abc123
输出:中等强度

输入:Abc123%
输出:强密码

代码

def password_strength(password):
    x=0
    if any(char.isdigit() for char in password) :
        x += 1
    if any(char.islower() for char in password):
        x += 1
    if any(char.isupper() for char in password):
        x += 1
    if any(not char.isalnum() for char in password):
        x += 1

    if x == 1 :
        return "弱密码"
    elif x == 2 or x == 3 :
        return "中等强度"
    elif x == 4 :
        return "强密码"


# 用户输入密码
password = input("请输入密码:")

# 判断密码强度
strength = password_strength(password)
print(f"密码强度等级为:{strength}")

运行截图

在这里插入图片描述
在这里插入图片描述

w03. 密码加密

题目描述
编写一个函数,实现密码的错位加密
编写一个函数,实现密码的错位解密

输入描述
输入一个字符串明文密码;
输入一个字符串密文数据;

输出描述
打印展示加密后的字符串密文
打印展示解密后的明文字符串

示例

输入:
abc # 明文
def # 密文

输出:
cde # 错位密文(具体错位可以自定义)
cde # 解密明文(具体错位可以自定义)

代码

def encrypt(possword, n=4):
    ep = ""
    for i in str(possword):
        #将字符串转换为ascill码
        ac = ord(i)
        #将ascill码错开n位
        ac += n
        #将ascill码转换为字符串
        _ac = chr(ac)
        #将每一位密码重新组合在一起
        ep += _ac
        #返回加密后的密码值
    return ep

def decrypt(possword, n=4):
    pwd = ""
    for i in str(possword):
        #将字符串转换为ascill码
        ac = ord(i)
        #将ascill进行错n位解密
        ac -= n
        #将ascill码转换为字符串
        _ac = chr(ac)
        # 将每一位密码重新组合在一起
        pwd += _ac
    #返回解密后的密码值
    return pwd

pd1 = input("请输入明文密码:")
print("加密后的密码:", encrypt(pd1, 5))

pd2 = input("请输入加密密码:")
print("解密后的密码", decrypt(pd2, 5))

运行截图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值