python-copy模块-待优化的功能

小结

deep2type是一个字典,point_dict = deep2type之后,如果修改point_dict,也会对deep2type造成影响,请问如何解决
可以通过深度复制的方法,把源数据复制,得到一个新的数据对象,操作新数据对象不会影响到源数据,详情如下:
import copy
point_dict = copy.deepcopy(deep2type)
用法格式
import copy
克隆体 = copy.deepcopy(数据源)



调试deep2type的数据问题

当我从文件一级路径向上返回了一级,

3,应该设置为none, 此处需修改

深度为0的数据,已修复

while循环控制

当某一个特定的情况发生时,不希望继续后面的内容,要跳过本次循环,进入到下一轮循环

while 条件:
	if 条件2:
		continue

deep2type的数据问题

问题,初始数据被修改了

原因

在这里插入图片描述

全部的可变数据类型

字典,列表

代码

d = {"name":"张三"}
m = d   #         point_dict = self.deep2type  # point_dict = {}
print(id(m), id(d))
m["age"] = 18
d["gender"] = "男"
print(m, d)


ul = [1,2,3]
ol = ul

ol.append(99)

print("ul",ul)
print("ol",ol)

效果

C:\Users\python_hui\Anaconda3\python.exe G:/项目-每日日考/1.py
2468375265784 2468375265784
{'name': '张三', 'age': 18, 'gender': '男'} {'name': '张三', 'age': 18, 'gender': '男'}
ul [1, 2, 3, 99]
ol [1, 2, 3, 99]

Process finished with exit code 0

不可变数据类型的赋值

在这里插入图片描述

新模块 copy模块

用法

import copy
克隆体 = copy.deepcopy(数据源)

一般要复制的数据源,是可变的数据类型,比如字典,或列表类型

克隆体与数据源有一模一样的数据

如果后面对克隆体进行操作,不会影响到数据源

代码

d = {"name":"张三"}
import copy

m = copy.deepcopy(d)  # m是一个d数据的克隆体,但是m是另一个数据实体了
print(id(m), id(d))
m["age"] = 18
print(m, d)

结果

C:\Users\python_hui\Anaconda3\python.exe G:/项目-每日日考/1.py
2609706184136 2609688646136
{'name': '张三', 'age': 18} {'name': '张三'}

Process finished with exit code 0

余留问题

深度为3向上一级返回的时候,深度应该为2, 并且 deep2type的3的值应该为none

新功能,根据已选的题目,随机选出五题

最简单的实现

文件对象.data = 【题目1,题目n】

直接使用随机模块,sample选出题目

写一个学生题目过滤规则

从已选的出题的题库中,选出五题目来

        wenda_list = random.sample(self.data, 5)

文件对象与学生对象的一个关联

学生对象get_wenda主逻辑

学生对象有一个get_wenda方法

在该方法中,会创建一个文件对象

调一下文件对象的选题方法

使用过这个方法后,文件对象就会多出很多题目来

把题目赋值给学生对象

self.data = f_obj.data

学生对象有题目后,就从这一堆题目中选出5个

选题成功后,进行答题环节。

扩展功能

针对文件对象的 select_wenda 的优化

1,手动选题
2,自动选题,一口气加载所有的题目并返回

针对学生对象的 fileter_wenda 要优化

1,当前,无脑随机五题

2,出具的五个题目是要与自有数据进行一些规则的筛选的

a,从已经答过的题目中取出分数最低的一题

b,从题库中取出四题,并且,这四题不能与a的题目重复

新问题,现在学生的ID写死了,需要写活

跑流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲸鱼编程pyhui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值