python巩固知识第一周

第一次作业:

你真的了解元组和列表吗?

#思考题一:列表和元组存储数据方式差异是什么呢?性能孰优孰劣?

l = [1,2,3]
s = (1,2,3)
#思考题二: l 和 s 哪个所占的存储空间大呢?为什么?

l1 = []
l2 = list()
#思考题三:想创建一个空列表我们可以用上述两种方式,但是那种方式效率高呢?说一下你的理由

答案:

第一次作业
1. 列表去动态储存,元组是静态储存,元组的性能更加好一点
2. 列表所占用的储存空间大,因为列表是动态储存,需要指针来针对不同的内容,它的长度都有可能会变,所以需要额外的一些空间来预留列表的实时使用情况。
3. 第一种效率更高一点,因为list()创建的话,先要查找函数名,再去调用,相对来说时间会长一些
第二次作业:

你真的了解字典和集合吗?

#思考题一:集合支持索引操作吗?怎样判断一个元素在集合里面呢?
#思考题二:字典和集合为什么比列表和元组的效率高?他们的数据结构是什么?
#思考题三:下面初始化字典的方法那种更高效?为什么?
d1 = {"1":1,"2":2,"3":3} 
d2 = dict({"1":1,"2":2,"3":3})
#思考题四:字典的键可以是个列表吗?为什么?

答案:

1.集合不支持索引操作,可以用 `in`来判断是否在集合里面
2.列表和元组查找的过程需要遍历循环,而字典和元组不需要,他们是由哈希表组成的
3.第一种效率高,直接创建比函数的创建更快一些
4.不可以是列表,因为key值是唯一的
第三次作业:

你真的了解字符串吗?

#思考题一:列出所有的转义字符。
#思考题二:下面两种字符串拼接那种方法更优呢?有没有更加高效更加pythonic的办法?
#1.
s = ""
for i in range(0,100000):
    s += str(i)
    
#2.
l = []
for i in range(0,100000):
    l.append(i)
s = " ".join(i)

答案:

转义字符描述
\(在结尾的时候)续行符
\反斜杠符号
\ ’单引号
\ ’ ’双引号
\a响铃
\b退格
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
2.在多个字符串进行拼接的时候,append的拼接效果更好,因为字符串是不可变的类型,每次拼接都需要重新申请地址,当数量多起来效率就会低,而append只会申请一次。format替换格式化效率会更高一些。
第四次作业:

小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?

n =0
for i in range(6):  # 洗发水不超过6个
    for j in range(50):# 不超过50个
        for k in range(20):# 牙刷不超过20个
            if (i*15+j*2+k*5==100):
                n+=1
                print("第",n,"种:","洗发水的数量:",i,"香皂的数量:",j,"牙刷的数量:",k)

运行结果:

第 1 种: 洗发水的数量: 0 香皂的数量: 5 牙刷的数量: 18
第 2 种: 洗发水的数量: 0 香皂的数量: 10 牙刷的数量: 16
第 3 种: 洗发水的数量: 0 香皂的数量: 15 牙刷的数量: 14
第 4 种: 洗发水的数量: 0 香皂的数量: 20 牙刷的数量: 12
第 5 种: 洗发水的数量: 0 香皂的数量: 25 牙刷的数量: 10
第 6 种: 洗发水的数量: 0 香皂的数量: 30 牙刷的数量: 8
第 7 种: 洗发水的数量: 0 香皂的数量: 35 牙刷的数量: 6
第 8 种: 洗发水的数量: 0 香皂的数量: 40 牙刷的数量: 4
第 9 种: 洗发水的数量: 0 香皂的数量: 45 牙刷的数量: 2
第 10 种: 洗发水的数量: 1 香皂的数量: 0 牙刷的数量: 17
第 11 种: 洗发水的数量: 1 香皂的数量: 5 牙刷的数量: 15
第 12 种: 洗发水的数量: 1 香皂的数量: 10 牙刷的数量: 13
第 13 种: 洗发水的数量: 1 香皂的数量: 15 牙刷的数量: 11
第 14 种: 洗发水的数量: 1 香皂的数量: 20 牙刷的数量: 9
第 15 种: 洗发水的数量: 1 香皂的数量: 25 牙刷的数量: 7
第 16 种: 洗发水的数量: 1 香皂的数量: 30 牙刷的数量: 5
第 17 种: 洗发水的数量: 1 香皂的数量: 35 牙刷的数量: 3
第 18 种: 洗发水的数量: 1 香皂的数量: 40 牙刷的数量: 1
第 19 种: 洗发水的数量: 2 香皂的数量: 0 牙刷的数量: 14
第 20 种: 洗发水的数量: 2 香皂的数量: 5 牙刷的数量: 12
第 21 种: 洗发水的数量: 2 香皂的数量: 10 牙刷的数量: 10
第 22 种: 洗发水的数量: 2 香皂的数量: 15 牙刷的数量: 8
第 23 种: 洗发水的数量: 2 香皂的数量: 20 牙刷的数量: 6
第 24 种: 洗发水的数量: 2 香皂的数量: 25 牙刷的数量: 4
第 25 种: 洗发水的数量: 2 香皂的数量: 30 牙刷的数量: 2
第 26 种: 洗发水的数量: 2 香皂的数量: 35 牙刷的数量: 0
第 27 种: 洗发水的数量: 3 香皂的数量: 0 牙刷的数量: 11
第 28 种: 洗发水的数量: 3 香皂的数量: 5 牙刷的数量: 9
第 29 种: 洗发水的数量: 3 香皂的数量: 10 牙刷的数量: 7
第 30 种: 洗发水的数量: 3 香皂的数量: 15 牙刷的数量: 5
第 31 种: 洗发水的数量: 3 香皂的数量: 20 牙刷的数量: 3
第 32 种: 洗发水的数量: 3 香皂的数量: 25 牙刷的数量: 1
第 33 种: 洗发水的数量: 4 香皂的数量: 0 牙刷的数量: 8
第 34 种: 洗发水的数量: 4 香皂的数量: 5 牙刷的数量: 6
第 35 种: 洗发水的数量: 4 香皂的数量: 10 牙刷的数量: 4
第 36 种: 洗发水的数量: 4 香皂的数量: 15 牙刷的数量: 2
第 37 种: 洗发水的数量: 4 香皂的数量: 20 牙刷的数量: 0
第 38 种: 洗发水的数量: 5 香皂的数量: 0 牙刷的数量: 5
第 39 种: 洗发水的数量: 5 香皂的数量: 5 牙刷的数量: 3
第 40 种: 洗发水的数量: 5 香皂的数量: 10 牙刷的数量: 1

进程已结束,退出代码 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_水哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值