Python-练习题,is和==的区别,深(浅)拷贝
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-练习题,is和==的区别,深(浅)拷贝,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1952字,纯文字阅读大概需要3分钟。
内容图文
练习题(轮盘游戏)
模拟轮盘抽奖游戏
轮盘分为三部分: 一等奖, 二等奖和三等奖;
轮盘转的时候是随机的,
如果范围在[0,0.08)之间,代表一等奖,
如果范围在[0.08,0.3)之间,代表2等奖,
如果范围在[0.3, 1.0)之间,代表3等奖,
模拟本次活动1000人参加, 模拟游戏时需要准备各等级奖品的个数.
import random
#print(random.random())##打印出随机的小数
rewardDict = {
'一等奖':(0,0.08),
'二等奖':(0.08,0.3),
'三等奖':(0.3, 1)
}
##用户的得奖等级
def rewardFun():
num = random.random() # 生成0~1之间的随机数
for k,v in rewardDict.items(): # 判断随机转盘是几等奖
if v[0] <= num < v[1]:
return k ##返回值为奖品等级
# print(rewardFun())
resultDict = {} ##定义结果字典
for i in range(1000):
res = rewardFun() ##res为奖品等级
if res not in resultDict:
resultDict[res] = 1 ##若此奖品等级不在结果字典中,则给其value值1
else:
resultDict[res] += 1 ##若此奖品等级在结果字典中,则在value值基础上自增1
for k,v in resultDict.items():
print(k,'---->',v)
is和==的区别
is:为对象标示符(object identity),作用是用来检查对象的标示符是否一致,也就是两个对象在内存中的位置是否一样
==:表示的是相等,是用来检查两个对象是否相等。
id():在内存中存储的位置,只有id相同,is结果输出True
type():变量的类型
value:值
==:type value
is:type value id
>>> a = '1'
>>> b = 1
>>> a == b
False
>>> a = '1'
>>> b = a
>>> a is b
True
>>> li = [1,2,3]
>>> li1 = li
>>> li1
[1, 2, 3]
>>> id(li)
140244461998472
>>> id(li1)
140244461998472
>>> li2 = li.copy()
>>> li2
[1, 2, 3]
>>> id(li)
140244461998472
>>> id(li2)
140244462000136
>>> li == li1
True
>>> li1 == li2
True
>>> li == li2
True
>>> li2 is li
False
>>>
深拷贝和浅拷贝的区别
当一个变量a=x的时候 约定为:指向一个地址的过程
浅拷贝:copy.copy()
深拷贝:copy.deepcopy()
如果 copy.copy()拷贝的是元组 那么它不会进行浅拷贝 仅仅是指向
因为元组是不可变数据类型,意味着数据一定不能修改
因此它会自动判断为指向
导入拷贝模块
浅拷贝
copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变
深拷贝
深拷贝,包含对象里面的子对象的拷贝, 原始对象的改变不会造成深拷贝里任何子元素的改变
内容总结
以上是互联网集市为您收集整理的Python-练习题,is和==的区别,深(浅)拷贝全部内容,希望文章能够帮你解决Python-练习题,is和==的区别,深(浅)拷贝所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。