8.6
Posted xwjhyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.6相关的知识,希望对你有一定的参考价值。
Python深浅拷贝
- 拷贝(赋值)、浅拷贝、深拷贝
- 可变or不可变:d不变值可变,即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。
拷贝
- 如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变。
浅拷贝
- 如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变。
深拷贝
- 如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化。
文件的基本操作
- 从硬盘中读取数据
如果我们需要打开一个文件,需要向操作系统发起请求,要求操作系统打开文件,占用操作系统资源。Python中使用open()方法可以打开某个具体的文件,open()方法内写入文件路径
open(r‘/Users/mac/desktop/jupyter/pythonCourseware/32.txt‘)
如果给列表增加值,我们需要给列表赋值后才能给对应的列表增加值。文件也是如此。
f = open(r‘/Users/mac/desktop/jupyter/pythonCourseware/32.txt‘)
print(f)
打开文件之后,文件不仅占用了内存,他还对应了操作系统打开的以文件,相当于使用文本编辑器打开了一个文件。并且我们说了我们操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的
绝对路径和相对路径
绝对路径
Windows系统绝对路径从盘符(C:、D:)开始写一个完整的路径。
macos系统从根目录(/Users)开始写一个完整的路径。
相对路径
- 相对于当前执行文件所在的文件夹开始找。
import random age = random.randint(18, 60) # 随机一个数字,18-60岁 count = 0 # 计数 f = open('price.txt', 'r', encoding='utf8') # price.txt右下角为什么编码,则encoding为什么编码 price_dict = f.read() price_dict = eval(price_dict) # type:dict # 获取奖品字典 f.close() price_self = dict() while count < 3: count += 1 inp_age = input('请输入你想要猜的年龄:') # 判断是否为纯数字 if not inp_age.isdigit(): print('搞事就骂你傻逼') continue inp_age = int(inp_age) # 筛选年龄范围 if inp_age > 60 or inp_age < 18: print('好好题目,18-60岁,非诚勿扰') continue # 核心逻辑 if age == inp_age: print('猜中了,请选择你的奖品') # 打印商品 for k, v in price_dict.items(): print(f'奖品编号:k v') # 获取奖品的两次循环 for i in range(2): price_y = input(f'请按"Y or y"转动转盘chr(9803):').lower() if price_y != 'y': print("恭喜你已经获得一次奖品,奖品为空!并且请输入'Y or y'!") continue # 控制获奖奖品的频率 price_choice = random.randint(0, 10000) if price_choice > 0 and price_choice < 9900: price_choice = 6 print('恭喜你, 下次一定有好东西!!', end=' ') else: price_choice = price_choice % 7 if price_choice not in price_dict: print('你想多了吧!') else: price_get = price_dict[price_choice] print(f'恭喜中奖:price_get') if price_self.get(price_get): price_self[price_get] += 1 else: price_self[price_get] = 1 print(f'恭喜你获得以下奖品:price_self') break elif age > inp_age: print('猜小了') elif age < inp_age: print('猜大了') continue
以上是关于8.6的主要内容,如果未能解决你的问题,请参考以下文章