python打怪练习

1. 求一个数的幂值

复制代码
def mi(a, b):
    c = a
    for i in range(b-1):
        a = a * c
    return a


print(mi(2, 4))

2. 输出斐波那契数列

复制代码
def feibonaqi(n):
    l = []
    a = 1
    b = 1
    for i in range(n):
        l.append(a)
        l.append(b)
        a = b + a
        b = a + b
    print(l)


feibonaqi(5)

3. 输出特定字典数据

复制代码
keys = ['name', 'old', 'score']
values = [
    ['yee', 3, 99], ['rose', 18, 8], ['green', 30, 90]
]
要输出结果:
[{'name': 'yee', 'old': 3, 'score': 99}, {'name': 'rose', 'old': 18, 'score': 8}, {'name': 'green', 'old': 30, 'score': 90}]

错误示范:

复制代码
keys = ['name', 'old', 'score']
values = [
    ['yee', 3, 99], ['rose', 18, 8], ['green', 30, 90]
]
l = []
d = {}
for value in values:
    for i in range(len(keys)):
        d[keys[i]] = value[i]
    l.append(d)
print(l)

错误原因:

列表追加的元素指向的是同一个字典d,若d字典的键值变化也会同步到列表

例如:

复制代码
cc = []
aa = {'name': 'green', 'old': 30, 'score': 90}
cc.append(aa)
aa['name'] = 'yee'
aa['old'] = 3
aa['score']= 99
cc.append(aa)
print(cc)

输出结果是:[{'name': 'yee', 'old': 3, 'score': 99}, {'name': 'yee', 'old': 3, 'score': 99}]

相关推荐
巧妹儿6 分钟前
Python 配置管理封神技:pydantic_settings+@lru_cache,支持优先级,安全又高效,杜绝重复加载!
开发语言·python·ai·配置管理
独隅10 分钟前
Python AI 全面使用指南:从数据基石到智能决策
开发语言·人工智能·python
胡耀超14 分钟前
Web Crawling 网络爬虫全景:技术体系、反爬对抗与全链路成本分析
前端·爬虫·python·网络爬虫·数据采集·逆向工程·反爬虫
小陈的进阶之路18 分钟前
Selenium元素定位
python·selenium
李昊哲小课18 分钟前
matplotlib多子图与复杂布局实战
python·数据分析·matplotlib·数据可视化
2401_8319207418 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
写代码的【黑咖啡】24 分钟前
Python Web 开发新宠:FastAPI 全面指南
前端·python·fastapi
吴佳浩 Alben26 分钟前
GPU 编号错乱踩坑指南:PyTorch cuda 编号与 nvidia-smi 不一致
人工智能·pytorch·python·深度学习·神经网络·语言模型·自然语言处理
曲幽1 小时前
FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了!
python·websocket·nginx·socket·fastapi·web·async·socketio
阿钱真强道1 小时前
27 Python 分类-从概率角度做分类,一文认识朴素贝叶斯
python·分类·朴素贝叶斯·分类算法·贝叶斯分类·gaussiannb