w01 斐波那契数列
'''
斐波那契数列是一种特殊的数列,
很多生活和企业场景中都能见到满足该数列的数据排列方式;
现在要求你封装一个用于获取斐波那契数列数据的功能函数,
用于底层数据支持
'''
def fibonacci(n):
# 排除前两位
if n == 0:
return 0
elif n == 1:
return 1
# 使用变量保存前两个斐波那契数
a, b = 0, 1
# 计算第 n 个斐波那契数
for _ in range(2, n + 1):
a, b = b, a + b # 更新 a 和 b
return b
#输入需要的个数
n = int(input("请输入位置"))
print(fibonacci(n))
w02 密码等级校验
'''
按照用户输入密码的字符,判断用户的密码强度,基本要求如下
- 弱:都是数字,或者都是大写字母/小写字母组成的密码
- 中等:[数字、大写字母] 或者 [数字、小写字母]
或者 [大写字母、小写字母] 或者 [大小写字母、数字]组成的密码
- 强:[数字、大写字母] 或者 [数字、小写字母]
或者 [大写字母、小写字母]并结合特殊符号组成的密码
'''
def check_password_strength(password):
# 定义字符(遍历password查看是否有该元素)
num = any(char.isdigit() for char in password)
upper = any(char.isupper() for char in password)
lower = any(char.islower() for char in password)
special = any(not char.isalnum() for char in password)
# 判断密码强度
#弱密码,由数字,大小写字母中任意元素单独组成
if (num and not upper and not lower) or \
( not num and upper and not lower) or \
( not num and not upper and lower):
return "弱"
#中等,[数字、大写字母] 或者 [数字、小写字母] 或者 [大写字母、小写字母] 或者 [大小写字母、数字]组成的密码
elif (num and (upper or lower)) or \
(upper and lower) or \
(upper and lower and num ):
return "中等"
#强,[数字、大写字母] 或者 [数字、小写字母] 或者 [大写字母、小写字母]并结合特殊符号组成的密码
elif (num and upper and special) or \
(num and lower and special) or \
(upper and lower and special):
return "强"
#排除特殊情况
else:
return "弱"
#让用户输入密码
password = input("请输入密码: ")
strength = check_password_strength(password)
print(strength)
w03 密码加密
'''
编写一个函数,实现密码的错位加密
编写一个函数,实现密码的错位解密
'''
def encrypt(password, n=4):
"""加密函数"""
ep = ""
for i in str(password):
ac = ord(i) + n
if ac > 126:
ac = 32 + (ac - 127) # 回绕到可打印范围
_ac = chr(ac)
ep += _ac
return ep
def decrypt(password, n=4):
"""解密函数"""
pwd = ""
for i in str(password):
ac = ord(i) - n # 确保字符仍在可打印范围内(32-126)
if ac < 32:
ac = 126 - (31 - ac) # 回绕到可打印范围
_ac = chr(ac)
pwd += _ac
return pwd
pd = input("请输入明文数据:")
print("加密后的数据:", encrypt(pd, 5))
pd2 = input("请输入密文数据:")
print("解密后的数据:", decrypt(pd2, 5))