python 深浅拷贝

Posted 崽崽blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 深浅拷贝相关的知识,希望对你有一定的参考价值。

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

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

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

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

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("请输入一个三位数:")  # 156
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 #153
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%
让用户输入它的工资, 计算最终用户拿到手是多少钱.
while 1:
    content=int(input(请输入你的工资:))
    sum=0
    if content < 200:
        pass
    elif content >2000 and content < 4000:
        sum=content - (4000 - 2000)*0.03
        print(f你的工资为{sum})
    elif content >4000 and content < 6000:
        sum = content - (6000 - 4000) * 0.03 - (4000 - 200) * 0.05
        print(f你的工资为{sum})
    elif content > 6000 and content <10000:
        sum = content - (10000 - 6000) * 0.08 - (4000 - 200) * 0.05 - (6000 - 400) * 0.03
        print(f你的工资为{sum})
    else:
        sum =content - content*0.2
        print(f你的工资为{sum})

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 深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章

我要学python之深浅拷贝原理

Python 的深浅拷贝 终于明白了

python深浅拷贝

python 深浅拷贝,集合 ,小数据池 操作

Python高级语法-深浅拷贝-总结(4.2.1)

Python深浅拷贝