###########################总结###########################

1. 基础数据类型补充
大多数的基本数据类型的知识.已经学完了

a='aaaa'
lst=['linux','alex','xsb']
s='+'.join(lst)
print(s) ##linux+alex+xsb

"*".join("马虎疼") # 马*虎*疼 把传递进去的参数进行迭代. 获取到的每个元素和前面的*进行拼接. 得到的是字符串
split() 切割. 切割的结果是列表

浅拷贝

lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
lst2 = lst1.copy() # 浅拷贝. 只拷贝第一层内容 print(id(lst1))
print(id(lst2)) print(lst1)
print(lst2) lst1[4].append("葫芦娃")
print(lst1)
print(lst2)

38167112
43692424
['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼']]
['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]
['胡辣汤', '灌汤包', '油泼面', '麻辣香锅', ['长白山', '白洋淀', '黄鹤楼', '葫芦娃']]

深拷贝

# 引入一个模块
import copy lst1 = ["胡辣汤", "灌汤包", "油泼面", "麻辣香锅", ["长白山", "白洋淀", "黄鹤楼"]]
lst2 = copy.deepcopy(lst1) # 深拷贝: 对象内部的所有内容都要复制一份. 深度克隆(clone). 原型模式 print(id(lst1))
print(id(lst2)) print(lst1)
print(lst2) lst1[4].append("葫芦娃")
print(lst1)
print(lst2)

# 为什么要有深浅拷贝?
# 提高创建对象的速度
# 计算机中最慢的. 就是创建对象. 需要分配内存.
# 最快的方式就是二进制流的形式进行复制. 速度最快.

列表和字典: 都不能在循环的时候直接删除
把要删除的内容记录在新列表中然后循环这个新列表. 删除列表(字典)

lst=['篮球','排球','羽毛球','呵呵']
new_lst =[]
for el in lst:
if "球" in el:
new_lst.append(el)
print(new_lst) #循环新列表里面的值,删除老列表
for el in new_lst:
lst.remove(el)
print(lst)

fromkeys()
坑1: 返回新字典. 不会更改老字典

dic = {}
d=dic.fromkeys("风扇哥","很困")
print(dic)#是空的 返回新的字典 和原来的 没有关系
print(d)#{'风': '很困', '扇': '很困', '哥': '很困'}

坑2: 当value是可变的数据类型. 各个key共享同一个可变的数据类型. 其中一个被改变了. 其他都跟着变

d= dict.fromkeys("胡辣汤",[])
print(d)#{'胡': [], '辣': [], '汤': []}
d['胡'].append('河南特色')
print(d)#{'胡': ['河南特色'], '辣': ['河南特色'], '汤': ['河南特色']}

# 程序员找工作和菜市场大妈买白菜是一样的

###########################作业###########################

1.判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数.
那这个数就是一个水仙花数, 例如: 153 = 1**3 + 5**3 + 3**3
n = input("请输入一个三位数:")  #
s = int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3
if int(n) == s:
print("是水仙花数")
else:
print("不是") content=input('请输入数据:')
sum=0
for i in content:
sum=sum + int(i)**3 #
if sum== int(content):
print(f'{content}是水仙花数')
else:
print(f'{content}不是水仙花数')
2.给出一个纯数字列表. 请对列表进行排序(升级题).
思路:
1.完成a和b的数据交换. 例如, a = 10, b = 24 交换之后, a = 24, b = 10
2.循环列表. 判断a[i]和a[i+1]之间的大小关系, 如果a[i]比a[i+1]大. 则进行互换. 循环结束的时候.
当前列表中最大的数据就会被移动到最右端.
3.想一想, 如果再次执行一次上面的操作. 最终第二大的数据就移动到了右端. 以此类推.
如果反复的进行执行相应的操作. 那这个列表就变成了一个有序列表. 暂时空着
3.税务部门征收所得税. 规定如下: 
        1). 收入在2000以下的. 免征.
        2). 收入在2000-4000的, 超过2000部分要征收3%的税. 
        3). 收入在4000-6000的, 超过4000部分要征收5%的税.
        4). 收入在6000-10000的, 超过6000部分要征收8%的税.  
        4). 收入在10000以上的, 超过部分征收20%的税. 
    注, 如果一个人的收入是8000, 那么他要交2000到4000的税加上4000到6000的税加上6000到8000的税. 
        收入 = 8000-(4000-2000)*3%-(6000-4000)*4%-(8000-6000)*8%
让用户输入它的工资, 计算最终用户拿到手是多少钱.
salary = int(input("请输入你的工资:"))
if salary <= 2000:
print("你的税是0")
print("工资是%s" % salary)
elif salary <= 4000:
print("你的税是%s" % ((salary - 2000) * 0.03))
print("工资是%s" % (salary - ((salary - 2000) * 0.03)))
elif salary <= 6000:
print("你的税是%s" % ((2000*0.03) + (salary-4000)*0.05))
print("工资是%s" % (salary - ((2000*0.03) + (salary-4000)*0.05)))
elif salary <= 10000:
print("你的税是%s" % ((2000*0.03) + (2000*0.05) + (salary-6000)*0.08))
print("工资是%s" % (salary - ((2000*0.03) + (2000*0.05) + (salary-6000)*0.08)))
else: # 超过10000
print("你的税是%s" % ((2000 * 0.03) + (2000 * 0.05) + (4000 * 0.08) + (salary - 10000) * 0.2))
print("工资是%s" % (salary - ((2000 * 0.03) + (2000 * 0.05) + (4000 * 0.08) + (salary - 10000) * 0.2)))
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
i = float(input('请输入当月万利润'))
if i <= 10:
bns = 10 * 0.1
elif 10 < i < 20:
bns = 10 * 0.1 + (i - 10) * 0.075
elif 20 < i < 40:
bns = 10 * 0.1 + 10 * 0.075 + (i - 20) * 0.05
elif 40 < i < 60:
bns = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (i - 40) * 0.03
elif 60 < i < 100:
bns = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (i - 60) * 0.015
elif i > 100:
bns = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 40 * 0.03 + 60 * 0.015+(i-100)*0.01
print(bns)

方法二

I = float(input("请输入当月利润,单位为万元:"))
bns = 0 #初始化奖金总数
cat = [100, 60, 40, 20, 10, 0] #金额分6档
pct = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] #每档的提成比例
for i in range(6):
if I > cat[i]:
I = I - cat[i] #注意:刨掉档位金额后,应将值重新赋给I,每一档位分开计算
bns = bns + I * pct[i] #每一档位的奖金累计相加
print('当月应发放奖金总数为%s万元' % bns)
4.完成彩票36选7的功能. 从36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.
随机数:
from random import randint
randint(0, 20) # 0 - 20 的随机数
from random import randint
s=set()
while len(s)<7:
num=randint(1,36)
s.add(num)
print(s)

# for : 确定循环范围. str, list, dic, tuple, set
# while: 不确定循环次数

python 深浅拷贝 for循环删除的更多相关文章

  1. 小学生都能学会的python(深浅拷贝)

    小学生都能学会的python(深浅拷贝) join() 把列表中的每一项用字符串拼接起来 # lst = ["汪峰", "吴君如", "李嘉欣&quo ...

  2. Python开发【第二章】:Python深浅拷贝剖析

    Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 ...

  3. 【0806 | Day 9】三张图带你了解数据类型分类和Python深浅拷贝

    一.数据类型分类 二.Python深浅拷贝

  4. 底层剖析Python深浅拷贝

    底层剖析Python深浅拷贝 拷贝的用途 拷贝就是copy,目的在于复制出一份一模一样的数据.使用相同的算法对于产生的数据有多种截然不同的用途时就可以使用copy技术,将copy出的各种副本去做各种不 ...

  5. 深浅拷贝, for循环小知识点 str操作 list的删除问题,类型转换

    深浅拷⻉  : lst1 = ["⾦⽑狮王", "紫衫⻰王", "⽩眉鹰王", "⻘翼蝠王"] lst2 = lst1 ...

  6. python 深浅拷贝 元组 字典 集合操作

    深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ...

  7. python深浅拷贝&垃圾回收&上下文管理(with语句)

    深浅拷贝 在Python中使用copy模块用于对象的拷贝操作. 该模块提供了两个主要的方法:浅拷贝 copy.copy() 深拷贝 copy.deepcopy() 1.浅拷贝(copy) 浅拷贝: 不 ...

  8. 关于python深浅拷贝的个人浅见

    起初,关于python的深浅拷贝,总是习惯去用传值传址的方式去考虑,发现总是get不到规律,容易记混. python有着高度自治的内存管理,而不可变对象的内存分配,则是能省则省,就是说,无论用什么拷贝 ...

  9. python深浅拷贝与赋值

    初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一——python的变量及其存储 在详细的了解python中赋 ...

随机推荐

  1. 洛谷P4281 紧急集合 / 聚会

    LCA 题目要求找离三个点最近的点,我们先看两个点的情况,自然是找LCA,那么三个点的时候是否与LCA有关呢? 显然,离三个点最近的点一定是在这三个点联通的简单路径上. 可以简单证明一下,假设某个点离 ...

  2. PHP 公共方法分享180628

    查看php 类的详情:方法.常量.属性( type(new \Illuminate\Http\Request());) /** * fixme 打印类详情 * @param $class object ...

  3. 2018-01微信小程序--直播

    一. 小程序直播支持的格式 目前小程序支付两种格式直播 1) flv格式直播 2) rtmp格式直播 二. 能够开通小程序直播的行业类目 由于直播需要资质, 并不是每个企业都能够开通小程序直播, 微信 ...

  4. 【BZOJ5321】[JXOI2017]加法(贪心)

    [BZOJ5321][JXOI2017]加法(贪心) 题面 BZOJ 洛谷 题解 显然二分答案,算一下每个点至少要覆盖的次数.从左往右考虑如果这个点覆盖次数不够,就会选择覆盖这个点的.右端点最大的线段 ...

  5. 【BZOJ4061】[Cerc2012]Farm and factory(最短路,构造)

    [BZOJ4061][Cerc2012]Farm and factory(最短路,构造) 题面 BZOJ 然而权限题QwQ. 题解 先求出所有点到达\(1,2\)的最短路,不妨记为\(d_{u,1}, ...

  6. 【LOJ#6060】Set(线性基)

    [LOJ#6060]Set(线性基) 题面 LOJ 题解 好题啊QwQ. 首先\(x1\oplus x2=s\)是定值.而\(s\)中假设某一位上是\(1\),则\(x1,x2\)上必定有一个是\(1 ...

  7. [HEOI2016/TJOI2016]游戏 解题报告

    [HEOI2016/TJOI2016]游戏 看起来就是个二分图匹配啊 最大化匹配是在最大化边数,那么一条边就代表选中一个坐标内的点 但是每一行不一定只会有一个匹配 于是把点拆开,按照'#'划分一下就好 ...

  8. NOI2018d1t1 归程 (dijkstra+kruskal重构树)

    题意:给一张无向联通图,每条边有长度和高度,每次询问在高度大于p的边,从v点能到达的所有点到1号点的最短距离(强制在线) 首先dijkstra求出每个点到1号点的距离 易知:如果我按高度从高到低给边排 ...

  9. 选做题:设计并实现一个Book类

    目录 题目分析 设计思路 具体代码 测试代码 运行截图 参考资料 题目分析 题目内容 0.设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期 1.这些数据 ...

  10. OO第二阶段纪实

    $ 0 写在前面 往往是那些令人格外痛苦的经历,会带给人以最快的成长.转眼间,半个学期的时间过去了,时间匆匆,不管之前对这几次充满了怎样的畏惧,在身边朋友们的帮助和努力下,我也渐渐度过了一个个难关.回 ...