全网最全python练手项目,练完可就业(附源代码),持续更新中
Posted yk 坤帝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全网最全python练手项目,练完可就业(附源代码),持续更新中相关的知识,希望对你有一定的参考价值。
个人公众号 yk 坤帝
后台回复 项目整理二 获取完整整理资源
51、使用 pop 和 del 删除字典中的"name"字段
52、列出常见 mysql 数据存储引擎
53、计算代码运行结果,zip 函数历史文章已经说了,得出 [(“a”,1),(“b”,2),(“c”,3),(“d”,4),(“e”,5)]
54、简述同源策略
55、简述 cookie 和 session 的区别
56、简述多线程、多进程
57、简述 any()和 all()方法
58、IOError、AttributeError、ImportError、IndentationError、 IndexError、KeyError、SyntaxError、NameError 分别代表什么 异常
59、python 中 copy 和 deepcopy 区别
60、列出几种魔法方法并简要介绍用途
61、C:\\Users\\ry-wu.junya\\Desktop>python 1.py 22 33 命令行 启动程序并传参,print(sys.argv)会输出什么数据?
62、请将[i for i in range(3)]改成生成器
63、a = " hehheh ",去除收尾空格
64、举例 sort 和 sorted 对列表排序,list=[0,-1,3,-10,5,9]
65、对 list 排序 foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用 lambda 函数从小到大排序
66、使用 lambda 函数对 list 排序 foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为 [0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小 (传两个条件,x<0 和 abs(x))
67、列表嵌套字典的排序,分别根据年龄和姓名排序
68、列表嵌套元组,分别按字母和数字排序
69、列表嵌套列表排序,年龄数字相同怎么办?
70、根据键对字典排序(方法一,zip 函数)
71、根据键对字典排序(方法二,不用 zip)
72、列表推导式、字典推导式、生成器
73、最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用
74、举例说明 SQL 注入和解决办法
75、s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出 [‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
76、正则匹配以 http://163.com 结尾的邮箱
77、递归求和
78、python 字典和 json 字符串相互转化方法
79、MyISAM 与 InnoDB 区别:
80、HTTP 请求中 get 和 post 区别
51、使用 pop 和 del 删除字典中的"name"字段
dic={"name":"zs","age":18}
52、列出常见 MYSQL 数据存储引擎
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。 如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制 (比如售票),那选择 InnoDB 有很大的优势。如果需要频繁的更新、 删除操作的数据库,也可以选择 InnoDB,因为支持事务的提交 (commit)和回滚(rollback)。
MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于 插入新记录和读出记录,那么选择 MyISAM 能实现处理高效率。如果 应用的完整性、并发性要求比 较低,也可以使用。
MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性 不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择 MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数 据库只使用在相对较小的数据库表。
53、计算代码运行结果,zip 函数历史文章已经说了,得出 [(“a”,1),(“b”,2),(“c”,3),(“d”,4),(“e”,5)]
dict()创建字典新方法
54、简述同源策略
同源策略需要同时满足以下三点要求:
1)协议相同
2)域名相同
3)端口相同
http:http://www.test.com 与 https:http://www.test.com 不同源——协议不同
http:http://www.test.com 与 http:http://www.admin.com 不同源——域名不同
http:http://www.test.com 与 http:http://www.test.com:8081 不同源——端口不同
只要不满足其中任意一个要求,就不符合同源策略,就会出现“跨域”
55、简述 cookie 和 session 的区别
1,session 在服务器端,cookie 在客户端(浏览器)
2、session 的运行依赖 session id,而 session id 是存在 cookie 中 的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效, 存储 Session 时,键与 Cookie 中的 sessionid 相同,值是开发人员设 置的键值对信息,进行了 base64 编码,过期时间由开发人员设置
3、cookie 安全性比 session 差
56、简述多线程、多进程
进程:
1、操作系统进行资源分配和调度的基本单位,多个进程之间相互独立
2、稳定性好,如果一个进程崩溃,不影响其他进程,但是进程消耗资 源大,开启的进程数量有限制
线程:
1、CPU 进行资源分配和调度的基本单位,线程是进程的一部分,是比 进程更小的能独立运行的基本单位,一个进程下的多个线程可以共享该 进程的所有资源
2、如果 IO 操作密集,则可以多线程运行效率高,缺点是如果一个线程 崩溃,都会造成进程的崩溃
应用:
IO 密集的用多线程,在用户输入,sleep 时候,可以切换到其他线程 执行,减少等待的时间
CPU 密集的用多进程,因为假如 IO 操作少,用多线程的话,因为线程 共享一个全局解释器锁,当前运行的线程会霸占 GIL,其他线程没有 GIL,就不能充分利用多核 CPU 的优势
57、简述 any()和 all()方法
any():只要迭代器中有一个元素为真就为真
all():迭代器中所有的判断项返回都是真,结果才为真
python 中什么元素为假?
答案:(0,空字符串,空列表、空字典、空元组、None, False)
测试 all()和 any()方法
58、IOError、AttributeError、ImportError、IndentationError、 IndexError、KeyError、SyntaxError、NameError 分别代表什么 异常
IOError:输入输出异常
AttributeError:试图访问一个对象没有的属性
ImportError:无法引入模块或包,基本是路径问题
IndentationError:语法错误,代码没有正确的对齐
IndexError:下标索引超出序列边界
KeyError:试图访问你字典里不存在的键
SyntaxError:Python 代码逻辑语法出错,不能执行
NameError:使用一个还未赋予对象的变量
59、python 中 copy 和 deepcopy 区别
1、复制不可变数据类型,不管 copy 还是 deepcopy,都是同一个地址 当浅复制的值是不可变对象(数值,字符串,元组)时和=“赋值”的 情况一样,对象的 id 值与浅复制原来的值相同。
2、复制的值是可变对象(列表和字典)
浅拷贝 copy 有两种情况:
第一种情况:复制的 对象中无 复杂 子对象,原来值的改变并不会影 响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的 id 值与浅复制原来的值不同。
第二种情况:复制的对象中有 复杂 子对象 (例如列表中的一个子元 素是一个列表), 改变原来的值 中的复杂子对象的值 ,会影响浅复 制的值。 深拷贝
deepcopy:完全复制独立,包括内层列表和字典
60、列出几种魔法方法并简要介绍用途
init:对象初始化方法
new:创建对象时候执行的方法,单列模式会用到
str:当使用 print 输出对象的时候,只要自己定义了
str(self)方 法,那么就会打印从在这个方法中 return 的数据
del:删除对象执行的方法
61、C:\\Users\\ry-wu.junya\\Desktop>python 1.py 22 33 命令行 启动程序并传参,print(sys.argv)会输出什么数据?
文件名和参数构成的列表
62、请将[i for i in range(3)]改成生成器
生成器是特殊的迭代器,
1、列表表达式的【】改为()即可变成生成器
2、函数在返回值得时候出现 yield 就变成生成器,而不是函数了; 中括号换成小括号即可,有没有惊呆了
63、a = " hehheh ",去除收尾空格
64、举例 sort 和 sorted 对列表排序,list=[0,-1,3,-10,5,9]
65、对 list 排序 foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用 lambda 函数从小到大排序
66、使用 lambda 函数对 list 排序 foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为 [0,2,4,8,8,9,-2,-4,-4,-5,-20],正数从小到大,负数从大到小 (传两个条件,x<0 和 abs(x))
67、列表嵌套字典的排序,分别根据年龄和姓名排序
foo = [{"name":"zs","age":19},{"name":"ll","age":54}, {"name":"wa","age":17},{"name":"df","age":23}]
68、列表嵌套元组,分别按字母和数字排序
69、列表嵌套列表排序,年龄数字相同怎么办?
70、根据键对字典排序(方法一,zip 函数)
71、根据键对字典排序(方法二,不用 zip)
有没有发现dic.items和zip(dic.keys(),dic.values())都是为了构造列表 嵌套字典的结构,方便后面用 sorted()构造排序规则
72、列表推导式、字典推导式、生成器
73、最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用
74、举例说明 SQL 注入和解决办法
当以字符串格式化书写方式的时候,如果用户输入的有;+SQL 语句,后 面的 SQL 语句会执行,比如例子中的 SQL 注入会删除数据库 demo
解决方式:通过传参数方式解决 SQL 注入
75、s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出 [‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
|表示或,根据冒号或者空格切分
76、正则匹配以 http://163.com 结尾的邮箱
77、递归求和
78、python 字典和 json 字符串相互转化方法
json.dumps()字典转 json 字符串,json.loads()json 转字典
79、MyISAM 与 InnoDB 区别:
1、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务 是一种高 级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM 就不可以了;
2、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以 及涉及到 安全性较高的应用;
3、InnoDB 支持外键,MyISAM 不支持;
4、对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是 在 MyISAM 表中可以和其他字段一起建立联合索引;
5、清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重 建表;
80、HTTP 请求中 get 和 post 区别
1、GET 请求是通过 URL 直接请求数据,数据信息可以在 URL 中直接 看到,比如浏览器访问;而 POST 请求是放在请求头中的,我们是无法 直接看到的;
2、GET 提交有数据大小的限制,一般是不超过 1024 个字节,而这种 说法也不完全准确,HTTP 协议并没有设定 URL 字节长度的上限,而是 浏览器做了些处理,所以长度依据浏览器的不同有所不同;POST 请求 在 HTTP 协议中也没有做说明,一般来说是没有设置限制的,但是实际上浏览器也有默认值。总体来说,少量的数据使用 GET,大量的数据使 用 POST。
3、GET 请求因为数据参数是暴露在 URL 中的,所以安全性比较低,比 如密码是不能暴露的,就不能使用 GET 请求;POST 请求中,请求参数 信息是放在请求头的,所以安全性较高,可以使用。在实际中,涉及到 登录操作的时候,尽量使用 HTTPS 请求,安全性更好。
个人公众号 yk 坤帝
后台回复 项目整理二 获取完整整理资源
以上是关于全网最全python练手项目,练完可就业(附源代码),持续更新中的主要内容,如果未能解决你的问题,请参考以下文章
全网最全Python项目体系练习500例(附源代码),练完可就业
全网最全Python项目体系练习500例(附源代码),练完可就业
全网最全Python项目体系练习500例(附源代码),练完可就业系列
全网最全python小白体系练手项目200例(附源代码),练完可显著提升python水平(持续更新中)