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}]

相关推荐
粉嘟小飞妹儿19 小时前
如何在云主机上安装Oracle 19c_公网IP绑定与安全组端口开放
jvm·数据库·python
飞Link19 小时前
掌控 Agent 的时空法则:LangGraph Checkpoint (检查点) 机制深度实战
开发语言·python·算法
zopple19 小时前
Laravel与ThinkPHP框架深度对比
java·python·php·laravel
weixin_5860614619 小时前
为什么Bootstrap的下拉菜单在Firefox下显示异常
jvm·数据库·python
qq_1898070319 小时前
如何导出特定分区_EXPDP TABLES=表名-分区名进行单区数据备份
jvm·数据库·python
zzwq.19 小时前
Pandas数据合并完全指南:merge、concat、join从入门到精通
python·数据分析
Shorasul19 小时前
c++ 跨平台线程封装 c++如何封装pthread和std--thread
jvm·数据库·python
2401_8326355819 小时前
CSS如何利用Sass简化CSS书写_通过嵌套与简写优化编码效率
jvm·数据库·python
2402_8548083719 小时前
如何处理MongoDB跨分片事务报错_4.2+分布式事务的限制与两阶段提交延迟
jvm·数据库·python
vegetablec19 小时前
如何进行SQL数学计算_运用ROUND与CEIL处理数值精度
jvm·数据库·python