# 定义一个函数:求解一个数的所有因数的函数
def factor(num):
result = set()
for i in range(1, num // 2 + 1): # 只需计算到这个数的一半即可
if num % i == 0:
result.add(i)
return result
print("2 ~ 1000 之间的所有完数为:", end=" ")
for data in range(2, 1001):
if data == sum(factor(data)):
print(data, end=" ")
"""
第六题:阶乘求和
求1+2!+3!+…+10!的和。
"""
def fac(num):
result = 1
for i in range(1, num + 1):
result = result * i
return result
sumValue = 0
for i in range(1, 10):
sumValue = sumValue + fac(i)
print("1+2!+3!+…+10!的和为:", sumValue)
"""
第七题:找出两个列表 lst1 lst2 共同存在的元素
例如:lst1 = [1, 2, 3, 4, 5, 5] lst2 = [2, 5, 6, 8, 9]
输出:共同的元素为:{2, 5}
"""
lst1 = [1, 2, 3, 4, 5, 5]
lst2 = [2, 5, 6, 8, 9]
result = set() # 有可能会存在重复的元素,需要去重
for i in lst1:
count = lst2.count(i)
if count > 0:
result.add(i)
print("两个集合的共同元素为:", result)
"""
第八题:计算两个元祖去重后的元素,以及元素的个数
例如:s1 = (1, 2, 3, 4, 5, 5) s2 = (2, 5, 6, 7, 8)
输出:去重后的元素为:{1, 2, 3, 4, 5, 6, 7, 8} 个数为:8
"""
s1 = (1, 2, 3, 4, 5, 5)
s2 = (2, 5, 6, 7, 8)
result = set(s1) # 元祖1 直接强制类型转换为集合 result
for i in s2:
result.add(i)
print("去重后的元素为:{},个数为:{}".format(result, len(result)))
"""
第九题:字符串处理成字典类型
将字符串:"k:1|k1:2|k2:3|k3:4",处理成 python 字典:{'k':'1', 'k1':'2', 'k2':'3','k3':'4' }
"""
str1 = "k:1|k1:2|k2:3|k3:4"
str_list = str1.split('|')
d = {}
for l in str_list:
key, value = l.split(':')
d[key] = value
print("处理之后的字典为:", d)
"""
第十题:自定义函数,实现 len() 统计集合的元素个数
集合有可能为:字符串,列表,元祖,字典,集合等
"""
# 定义等同于 len() 功能的函数,求解集合的长度
def lenFun(data):
result = 0
if isinstance(data, str):
for i in data:
result = result + 1
elif isinstance(data, list):
for i in data:
result = result + 1
elif isinstance(data, tuple):
for i in data:
result = result + 1
elif isinstance(data, set):
for i in data:
result = result + 1
elif isinstance(data, dict):
for key in data.keys():
result = result + 1
else:
print("输入的数据有误,不能统计数据的长度!")
result = -1
return result
print(lenFun("123456")) # 6
print(lenFun([1, 2, 3, 4, 5])) # 5
print(lenFun((1, 2, 3, 4, 5))) # 5
print(lenFun({1, 2, 3, 4, 5, 6})) # 6
print(lenFun({"name": "大超", "age": 28, "hoppy": ["打羽毛球", "跑步"]})) # 3