目录
上下滑动查看更多
-
基础篇
-
1. 为什么学习 Python
-
2. 解释型和编译型语言的区别
-
3. 简述下 Python 中的字符串、列表、元组和字典
-
4. 简述上述数据类型的常用方法
-
5. 简述 Python 中的字符串编码
-
6.一行代码实现数值交换
-
7. is 和 == 的区别
-
8.Python 函数中的参数类型
-
9.`*arg` 和 `**kwarg` 作用
-
10.一行代码实现1-100之和
-
11.获取当前时间
-
12.PEP8 规范
-
13.Python 的深浅拷贝
-
14.查看下面代码的输出
-
15.可变类型与不可变类型
-
16.打印九九乘法表
-
17.filter、map、reduce 的作用
-
18.re 的 match 和 search 区别
-
19.面向对象中`__new__` 和 `__init__` 区别
-
20.三元运算规则
-
21.生成随机数
-
22.zip 函数用法
-
23.range 和 xrange 的区别
-
24.with 方法打开文件的作用
-
25.什么是正则的贪婪匹配
-
26.为什么不建议函数的默认参数传入可变对象
-
27.字符串转列表
-
28.字符串转整数
-
29.删除列表中的重复值
-
30.字符串单词统计
-
31.列表推导,求奇偶数
-
32.一行代码展开列表
-
33.实现二分法查找函数
-
34.字典和 json 转换
-
35.列表推导式、字典推导式和生成器
-
36.简述 read、readline、readlines 的区别
-
37.打乱一个列表
-
38.反转字符串
-
39.单下划线和双下划线的作用
-
40.新式类和旧式类
-
41.Python 面向对象中的继承有什么特点
-
42.super 函数的作用
-
43.类中的各种函数
-
44.如何判断是函数还是方法
-
45.isinstance 的作用以及与 type()的区别
-
46.单例模式与工厂模式
-
47.查看目录下的所有文件
-
48.计算1到5组成的互不重复的三位数
-
49.去除字符串首尾空格
-
50.去除字符串中间的空格
-
51. 字符串格式化方式
-
52. 将"hello world"转换为首字母大写"Hello World"(不使用 title 函数)
-
53. 一行代码转换列表中的整数为字符串
-
54. 合并两个元组到字典
-
55. 给出如下代码的输入,并简单解释
-
56. Python 中的反射
-
57. 实现一个简单的 API
-
58. metaclass 元类
-
59. sort 和 sorted 的区别
-
60. Python 中的 GIL
-
61. 产生8位随机密码
-
62. 输出原始字符
-
63. 列表内,字典按照 value 大小排序
-
64. 简述 any() 和 all() 方法
-
65. 反转整数
-
66. 函数式编程
-
67. 简述闭包
-
68. 简述装饰器
-
69. 协程的优点
-
70. 实现一个斐波那契数列
-
71. 正则切分字符串
-
72. yield 用法
-
73. 冒泡排序
-
74. 快速排序
-
75. requests 简介
-
76. 比较两个 json 数据是否相等
-
77. 读取键盘输入
-
78. enumerate
-
79. pass 语句
-
80. 正则匹配邮箱
-
81. 统计字符串中大写字母的数量
-
82. json 序列化时保留中文
-
83. 简述继承
-
84. 什么是猴子补丁
-
85. help() 函数和 dir() 函数
-
86. 解释 Python 中的`//`,`%`和`**`运算符
-
87. 主动抛出异常
-
88. tuple 和 list 转换
-
89. 简述断言
-
90. 什么是异步非阻塞
-
91. 什么是负索引
-
92. 退出 Python 后,内存是否全部释放
-
93. Flask 和 Django 的异同
-
94. 创建删除操作系统上的文件
-
95. 简述 logging 模块
-
96. 统计字符串中单词出现次数
-
97. 正则 re.complie 的作用
-
98. try except else finally 的意义
-
99.反转列表
-
100. 字符串中数字替换
-
-
综合篇:网络编程
-
101. 简述 OSI 七层协议
-
102. 三次握手、四次挥手的流程
-
103. 什么是 C/S 和 B/S 架构
-
104. TCP 和 UDP 的区别
-
105. 局域网和广域网
-
106. arp 协议
-
107. 什么是 socket?简述基于 TCP 协议的套接字通信流程
-
108. 简述 进程、线程、协程的区别以及应用场景
-
109. 如何使用线程池和进程池
-
110. 进程之间如何进行通信
-
111. 进程锁和线程锁
-
112. 什么是并发和并行
-
113. threading.local 的作用
-
114. 什么是域名解析
-
115. LVS 是什么及作用
-
116. Nginx 的作用
-
117. keepalived 及 HAProxy
-
118. 什么是 rpc
-
119. 从浏览器输入一个网址到展示网址页面的过程
-
120. 什么是cdn
-
-
综合篇:数据库和框架
-
121. 列举常见的数据库
-
122. 数据库设计三大范式
-
123. 什么是数据库事务
-
124. MySQL 索引种类
-
125. 数据库设计中一对多和多对多的应用场景
-
126. 简述触发器、函数、视图、存储过程
-
127. 常用 SQL 语句
-
128. 主键和外键的区别
-
129. 如何开启 MySQL 慢日志查询
-
130. MySQL 数据库备份命令
-
131. char 和 varchar 的区别
-
132. 最左前缀原则
-
133. 无法命中索引的情况
-
134. 数据库读写分离
-
135. 数据库分库分表
-
136. redis 和 memcached 比较
-
137. redis中数据库默认是多少个 db 及作用
-
138. redis 有哪几种持久化策略
-
139. redis 支持的过期策略
-
140. 如何保证 redis 中的数据都是热点数据
-
141. Python 操作 redis
-
142. 基于 redis 实现发布和订阅
-
143. 如何高效的找到 redis 中的某个 KEY
-
144. 基于 redis 实现先进先出、后进先出及优先级队列
-
145. redis 如何实现主从复制
-
146. 循环获取 redis 中某个非常大的列表数据
-
147. redis 中的 watch 的命令的作用
-
148. redis 分布式锁
-
149. http 协议
-
150. uwsgi,uWSGI 和 WSGI 的区别
-
151. HTTP 状态码
-
152. HTTP常见请求方式
-
153. 响应式布局
-
154. 实现一个简单的 AJAX 请求
-
155. 同源策略
-
156. 什么是 CORS
-
157. 什么是 CSRF
-
158. 前端实现轮询、长轮询
-
159. 简述 MVC 和 MTV
-
160. 接口的幂等性
-
161. Flask 框架的优势
-
162. 什么是 ORM
-
163. PV、UV 的含义
-
164. supervisor 的作用
-
165. 使用 ORM 和原生 SQL 的优缺点
-
166. 列举一些 django 的内置组件
-
167. 列举 Django 中执行原生 sql 的方法
-
168. cookie 和 session 的区别
-
169. beautifulsoup 模块的作用
-
170. Selenium 模块简述
-
基础篇
1. 为什么学习 Python
Python 语言简单易懂,上手容易,随着 AI 风潮,越来越火
2. 解释型和编译型语言的区别
编译型语言:把做好的源程序全部编译成二进制的可运行程序。然后,可直接运行这个程序。如:C,C++ 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!如:Python, (Java 有些特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。)
3. 简述下 Python 中的字符串、列表、元组和字典
字符串(str):字符串是用引号括起来的任意文本,是编程语言中最常用的数据类型。列表(list):列表是有序的集合,可以向其中添加或删除元素。元组(tuple):元组也是有序集合,但是是无法修改的。即元组是不可变的。字典(dict):字典是无序的集合,是由 key-value 组成的。集合(set):是一组 key 的集合,每个元素都是唯一,不重复且无序的。
4. 简述上述数据类型的常用方法
字符串:
-
切片 mystr='luobodazahui' mystr[1:3] output 'uo'
-
format mystr2 = "welcome to luobodazahui, dear {name}" mystr2.format(name="baby") output 'welcome to luobodazahui, dear baby'
-
join 可以用来连接字符串,将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。mylist = ['luo', 'bo', 'da', 'za', 'hui'] mystr3 = '-'.join(mylist) print(mystr3) outout 'luo-bo-da-za-hui'
-
replace String.replace(old,new,count) 将字符串中的 old 字符替换为 New 字符,count 为替换的个数 mystr4 = 'luobodazahui-haha' print(mystr4.replace('haha', 'good'))
output luobodazahui-good
-
split 切割字符串,得到一个列表
mystr5 = 'luobo,dazahui good'
# 以空格分割
print(mystr5.split())
# 以h分割
print(mystr5.split('h'))
# 以逗号分割
print(mystr5.split(','))
output
['luobo,dazahui', 'good']
['luobo,daza', 'ui good']
['luobo', 'dazahui good']
列表:
-
切片 同字符串
-
append 和 extend 向列表中国添加元素
mylist1 = [1, 2]
mylist2 = [3, 4]
mylist3 = [1, 2]
mylist1.append(mylist2)
print(mylist1)
mylist3.extend(mylist2)
print(mylist3)
outout
[1, 2, [3, 4]]
[1, 2, 3, 4]
-
删除元素 del:根据下标进行删除 pop:删除最后一个元素 remove:根据元素的值进行删除
mylist4 = ['a', 'b', 'c', 'd']
del mylist4[0]
print(mylist4)
mylist4.pop()
print(mylist4)
mylist4.remove('c')
print(mylist4)
output
['b', 'c', 'd']
['b', 'c']
['b']
-
元素排序 sort:是将list按特定顺序重新排列,默认为由小到大,参数 reverse=True 可改为倒序,由大到小。reverse:是将list逆置
mylist5 = [1, 5, 2, 3, 4]
mylist5.sort()
print(mylist5)
mylist5.reverse()
print(mylist5)
output
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
字典:
-
清空字典 dict.clear()
dict1 = {'key1':1, 'key2':2}
dict1.clear()
print(dict1)
output
{}
-
指定删除 使用 pop 方法来指定删除字典中的某一项
dict1 = {'key1':1, 'key2':2}
d1 = dict1.pop('key1')
print(d1)
print(dict1)
output
1
{'key2': 2}
-
遍历字典
dict2 = {'key1':1, 'key2':2}
mykey = [key for key in dict2]
print(mykey)
myvalue = [value for value in dict2.values()]
print(myvalue)
key_value = [(k, v) for k, v in dict2.items() ]
print(key_value)
output
['key1', 'key2']
[1, 2]
[('key1', 1), ('key2', 2)]
-
fromkeys 用于创建一个新字典,以序列中元素做字典的键,value 为字典所有键对应的初始值
keys = ['zhangfei', 'guanyu', 'liubei', 'zhaoyun']
dict.fromkeys(keys, 0)
output
{'zhangfei': 0, 'guanyu': 0, 'liubei': 0, 'zhaoyun': 0}
5. 简述 Python 中的字符串编码
计算机在最初的设计中,采用了8个比特&#x