吴文相的博客 +

Python-逆向学习问题总结

问题分类



核心知识

基础

  1. [开始] Python在编程语言世界中的处于什么样的位置?TIOBE

  2. [开始] Python有什么样的特质和设计哲学?简单优于繁复,明确优于晦涩,解决一个问题只用一种方法。

  3. [开始] 作为一个初入门者,我们应该怎样学习编程?如何成为一名黑客-Eric-S-Raymond

  4. [开始] 应该选择Python2还是Python3开始学习,以及进行开发?参考,用Python3

  5. [开始] 如果你已经掌握了Python2或者Python3其中一门,Python2和3有什么区别如何迁移

  6. [开始] Python2和Python3,或者多个Python3版本如何在一个系统中共存?Native / Virtualenv / Docker

  7. [开始] 有哪些优秀的Python学习资源可以参考? Python学习手册5thPython3标准库

  8. [环境] 在Windows下如何搭建Python开发环境?单独安装Python一体化安装AnacondaIDE-Eclipse-PydevIDE-PyCharm

  9. [环境] 在Mac下如何搭建Python开发环境?

  10. [环境] 在Linux下如何搭建Python开发环境?

  11. [环境] 如何使用IDLE进行开发和调试?自动补全用tab。

  12. [环境] 如何使用Eclipse+Pydev运行和调试Python程序?

  13. [环境] 如何使用Pycharm进行开发和调试?Download Community

  14. [环境] 如何使用VSCode进行开发和调试?Download环境配置

  15. [环境] 如何使用VisualStudio进行开发和调试?Download

  16. [环境] 还有什么其它的Python调试套件?Notepad++Sublime

  17. [环境] 如何查阅Python帮助文档? pydoc, help, chm

  18. [环境] Python代码中如何包含中文?源文件存成utf-8,文件头:# -*- coding: utf-8 -*

  19. [数字] 如何实现取整运算?截余取整、四舍五入、向上取整、向下取整。

  20. [数字] 整数的除法运算和整除运算是如何实现的?怎么写兼容代码?

  21. [数字] Python如何处理进制转换(整数与字符串的互相转换)?0b/0/0x,bin/ocx/hex,%o/%x

  22. [数字] 应如何判断两个浮点数是否相等?原理

  23. [数字] 浮点数精度控制(round)和精度显示(%.2f)应用场景?如何编码?

  24. [数字] 在Python中我们应该如何同时取商和取余?

  25. [数字] 如何对一组数据求和?求最大值?求最小值?

  26. [数字] 如何产生随机数?random/randint/choice

  27. [数字] Python中如何进行位运算?置位/清零/2的次方数/木匠7日分金/读心术/作弊问题/小白鼠试药/盒子装球

  28. [数字] 如何理解Python中变量和对象的存储模型?id

  29. [数字] 如何理解Python语言的三个定语:动态语言,动态类型语言,强类型语言?

  30. [字符] 如何编码单行、多行和分行输入的字符串?

  31. [字符] 我们应该用单引号还是双引号?

  32. [字符] 什么是原始字符串?

  33. [字符] 如何处理Unicode字符串和编解码问题?u'我们'.encode('utf-8').decode('utf-8')`

  34. [字符] 如何实现字符串的乘法和加法?

  35. [字符] 如何操作字符串切片?负index、左开右闭、None、负步长

  36. [字符] 如何实现子字符串的替换、查找?

  37. [字符] 如何实现字符串的大小写转换,以及将首字母、每个单词首字母变为大写?

  38. [字符] 如何实现字符串的切割和粘合?

  39. [字符] 如何移除字符串两端的空白?

  40. [字符] 如何获取字符串的长度?

  41. [字符] 如何实现ASCII码与字符的相互转换?

  42. [字符] 如何格式化字符串?%format

  43. [字符] 对象可以有哪些属性?字段属性和方法属性分别有哪些例子?

  44. [字符] 什么是反射和自省机制?__dict__, dir

  45. [序列] 如何初始化一个元组Tuple对象?

  46. [序列] 元组/列表对象在PVM中的存储模型是怎样的?

  47. [序列] 基于元组的赋值语法有哪些常见的应用场景?

  48. [序列] 序列的通用运算?in, for, +/*, 切片, len/min/max/sorted

  49. [序列] 如何理解列表对象的可变性与元组对象的不可变性?

  50. [序列] 生成器对象和列表对象的区别是什么?

  51. [序列] 列表对象的常见运算有哪些?元素的添加,访问,排序,反序,移除,修改,遍历

  52. [序列] 什么是列表解析?

  53. [序列] 重映射,浅拷贝,深拷贝的区别是什么?[[0]]*5

  54. [散列] 序列和散列的区别是什么?

  55. [散列] 如何利用集合对序列元素去重?

  56. [散列] 集合运算有哪些?

  57. [散列] 如何初始化一个字典?

  58. [散列] 集合/字典的存储模型是怎样的?

  59. [散列] 字典的常见运算有哪些?元素的添加,访问,移除,修改,遍历,排序,存在判断

  60. [散列] 什么是唱票算法?它适用于什么场合?Counter类能实现什么功能?

  61. [散列] 除了列表解析外,还有什么类似的语法?生成器表达式,集合解析,字典解析

  62. [流程] 什么是连续赋值语法?

  63. [流程] 什么是连续比较语法?

  64. [流程] 序列的比较逻辑是怎样的?

  65. [流程] 什么是短路效应?

  66. [流程] 分支结构的语法是怎样的?

  67. [流程] 三元运算符的语法是怎样的?

  68. [流程] Python中的循环结构语法是怎样的?else部分在什么时候会被运行到?

  69. [流程] 对序列和散列进行循环遍历应如何编码?

  70. [文件] 怎样处理命令行参数?

  71. [文件] 文件对象的存储模型是怎样的?

  72. [文件] 如何实现文件的读、写、flush和偏移量操作?

  73. [文件] 什么是基本输入/基本输出/基本错误?如何实现它们的重定向?

  74. [文件] 如何序列化一个Python对象?

  75. [文件] 如何以编码方式读取一个文件,比如 utf8 ?

  76. [文件] 如何实现二进制文件的读写?

  77. [函数] 如何定义和调用一个函数?

  78. [函数] 函数对象的存储模型是怎样的?

  79. [函数] 什么是LEGB规则?有哪些陷阱?a += 3

  80. [函数] 默认参数的陷阱有哪些?time.time(), []

  81. [函数] 如何在函数内使用Global变量?

  82. [函数] Python中的实参传递有哪些特殊的语法?

  83. [函数] Python中的形参传递有哪些特殊的语法?

  84. [函数] 函数传参和Return返回值时实际发生了什么?重映射?浅拷贝?深拷贝?

  85. [函数] Lambda函数的概念和语法如何?

  86. [函数] 函数调用时,临时变量是如何进栈和出栈的?栈是Per线程还是Per进程的?

  87. [函数] 如何理解和编写递归函数?优势:语义明确;劣势:性能隐患。斐波那契数列,递归,递推。

  88. [函数] 回调函数的语法和使用场合是怎样的?

  89. [函数] 什么是高阶函数?

  90. [函数] 闭包closure是什么?如何用闭包实现加法器?有状态的函数。FP与OOP。

  91. [函数] 如何使用高阶函数?Map/Filter/Reduce/Sort/Max/偏函数from functools import reduce

进阶

  1. [模块] 模块对象的定义和使用是怎样的?

  2. [模块] 顶层脚本和模块的区别是什么?

  3. [模块] import一个模块是实际发生了什么事?

  4. [模块] import语法的变化和最佳实践是怎样的(避免from x import *import module)?

  5. [模块] 为什么import应该以module为单位?

  6. [模块] reload的应用场景是什么?from imp import reload

  7. [模块] 为什么需要这样的语法?if __name__ == '__main__':

  8. [模块] 针对模块对象的反射语法是什么?__import__

  9. [对象] 如何定义和实例化一个类?

  10. [对象] 类与实例的存储模型是怎样的?类的属性和实例的属性存在怎样的关系?

  11. [对象] 类中的字段属性为什么不推荐使用可变对象?

  12. [对象] 什么是伪私有属性?

  13. [对象] 什么是属性property?

  14. [对象] 什么是静态static方法与类class方法?

  15. [对象] 什么是钩子方法与运算符重载?

  16. [对象] 常见的重载方法有哪些?__init__, __str__, __call__, __getattr__, __len__

  17. [对象] 如何用类来实现闭包?__init__, __call__

  18. [对象] 如何约束类,使其实例不能随意添加属性?__slot__

  19. [对象] Python的继承是单继承还是多继承?继承的搜索策略是深度优先还是广度优先?

  20. [对象] 组合和继承各自有什么优缺点?如何用组合和继承分别实现Name类?

  21. [对象] Python如何实现一个符合开放封闭原则的简单工厂模式?

  22. [对象] 设计模式的基本原则和六大原则是什么?23种设计模式分为哪3类,每个设计模式用于什么场景?参考:设计模式摘录

  23. [异常] 异常处理的语法是怎样的?else部分在什么时候会被执行?

  24. [异常] 异常处理时的执行流程是怎样的?

  25. [异常] 编写异常处理逻辑时,应如何避免过度捕捉异常?

  26. [异常] 在什么情况下我们需要自定义异常?应如何编码?

  27. [异常] 什么是环境管理协议?

  28. [异常] 如何使用With语法?

  29. [异常] 如何实现一个环境管理器?

  30. [正则] Python中使用正则表达式的语法是怎样的?

  31. [正则] 正则表达式中的符号有哪些?

  32. [正则] 什么是非贪心匹配?

  33. [正则] 什么是标记匹配?

  34. [正则] 如何获取匹配到的字符串?

  35. [正则] 如何替换匹配到的字符串?sub,如何通过标记匹配进行替换?

  36. [正则] 如何使用Findall?

  37. [正则] 如何按正则表达式切割字符串?

  38. [正则] 编写正则表达式时有哪些注意事项?r, 如何化繁为简?

  39. [装饰] 什么是装饰器模式?

  40. [装饰] 什么是Python中的装饰器语法?如何使用?

  41. [装饰] 装饰器语法有哪些语法变化?装饰器类,多重装饰,装饰器参数

  42. [生成] 什么是迭代环境,迭代器和迭代协议?Python2和Python3有何区别?next__next__

  43. [生成] 如何编写生成器函数和生成器表达式?

  44. [生成] 生成器函数的执行逻辑是怎样的?

  45. [生成] 如何生成无限多的斐波那契数列?for i in Fib(): print(i)

  46. [生成] 什么是扩展生成器协议?

  47. [生成] 什么是协程Co-Routine?有哪些应用场景?

  48. [生成] 有哪些常见的协程类库?如何使用?

常见应用

Python的系统和进程管理中的应用

  1. [Bash] Bash编程有哪些优秀的参考书和资料?

  2. [Bash] Bash变量的定义和使用方法是怎样的?如何在循环中定义变量?如何重新定义变量?

  3. [Bash] 单引号和双引号对Bash字符串操作有什么区别?

  4. [Bash] 常见的Bash字符串操作有哪些?求长度,提取子串,查找子串位置

  5. [Bash] Bash数组操作有哪些?赋值,求长度,引用数组,连接数组,遍历数组

  6. [Bash] Bash分支结构的写法是怎样的?

  7. [Bash] Bash循环的写法是怎样的?for/while

  8. [Bash] Bash中的单行注释和多行注释的写法分别是怎样的?

  9. [Bash] Bash中文本处理是怎样的?grep, awk, sed, tr

  10. [Bash] Bash中的管道处理是怎样的?xargs

  11. [Bash] Bash中的数学运算是如何操作的?expr

  12. [联合] Python如何调用Bash?os.system, subprocess

  13. [联合] Bash如何调用Python?

  14. [联合] sys模块主要用于处理什么问题?常用方法有哪些?

  15. [联合] os模块主要用于处理什么问题?常用方法有哪些?

  16. [目录] 如何遍历一个目录?

  17. [目录] 如何创建和使用临时文件,临时目录?

  18. [目录] shutil模块有哪些常用方法?copy/copy2/copytree/rmtree/move

  19. [系统] psutil模块如何监控CPU/Memory/Network/Disk等资源?

  20. [网络] IPy模块的使用范围和使用方法是怎样的?

  21. [网络] Python如何处理常见的网络协议?Telnet/FTP/Socket/Http/LDAP/SSH/SFTP/SMTP/POP3/IMAP

  22. [网络] Twisted框架的底层实现是怎样的?

  23. [网络] Twisted框架的基本使用方法是怎样的?在Windows上如何安装Python3-Twist框架?知乎, Python Extension Packages for Windows

  24. [并行] 如何处理子进程和管道?subprocess

  25. [并行] 如何编写多线程应用?

  26. [并行] 线程join操作有什么作用?

  27. [并行] 什么是后台线程?Daemon

  28. [并行] 什么是线程竞争?

  29. [并行] 如何实现线程同步?锁、信号量

  30. [并行] 什么是全局解释器锁GIL?

  31. [并行] 哪些Python内置对象是线程安全的?哪些不是?

  32. [并行] 如何像管理线程一样管理进程?

  33. [并行] 如何开启和使用进程池?

  34. [并行] 如何开启和使用线程池?

  35. [并行] Async异步语法应如何使用?

  36. [并行] 异步的底层实现是怎样的?使用时有哪些陷阱?

DevOps

  1. [版本] 有哪些常见的版本控制工具?

  2. [版本] 集中式和分布式版本控制有什么区别?

  3. [版本] 如何使用Git进行版本控制?CLI & Tortoise

  4. [版本] 应如何理解Git中的rebase概念?

  5. [测试] 如何编写基于XUnit的单元测试案例?

  6. [测试] 如何Mock一个需要的对象?MagicMock & create_autospec

  7. [测试] 有哪些常用的单元测试框架以及test runner框架?应如何选择?

  8. [测试] Doctest的作用和用法?

  9. [日志] 如何使用logging模块打日志?

  10. [日志] 输出日志有哪些注意事项?Async, Daemon, Format, Access/Error/Transaction, RequestID

  11. [部署] pip的常用命令有哪些?

  12. [部署] 如何为pip配置更快的源?Windows, Linux, Mac, 清华源

  13. [部署] 什么是Anaconda?Download

  14. [部署] 如何使用Anaconda管理Python包?清华源

  15. [部署] Anaconda Navigtor的使用,参考

  16. [部署] Jupyter notebook的使用

  17. [部署] QTConsole的使用

  18. [部署] Spyder的使用,在tools->preferences->IPython console->advanced Settings 下面,把User the greedy completer 勾选上。自动补全用Tab,批量注释用Ctrl + 1: 注释/反注释,Tab/Shift + Tab: 代码缩进/反缩进

  19. [部署] 什么是virtualenv?如何使用?

  20. [自动] 有哪些常用的自动化管理框架?我们应如何选择?

  21. [自动] Fabric的实现原理是什么?

  22. [自动] Fabric的常用函数有哪些?

  23. [自动] Ansible框架的实现原理是什么?

  24. [自动] Ansible应如何安装?

  25. [自动] Ansible框架的部署架构是怎样的?

  26. [自动] 什么是YAML?

  27. [自动] 如何理解和编写YAML描述文件?

  28. [自动] 什么是Ansible中的Inventory?

  29. [自动] Ansible中的常用模块有哪些?

  30. [自动] Ansible中的playbook是什么?

  31. [自动] Ansible中的Role是什么?

  32. [自动] 什么是AWX?

  33. [自动] AWX应如何安装和使用?

  34. [自动] SaltStack框架的架构是怎样的?

  35. [自动] SaltStack适用于什么场景(Ansible不适用)?

  36. [容器] 什么是Docker?LXC,namespace,cgroup,CE/EE架构有何不同?

  37. [容器] Docker的使用场景和使用方法是怎样的?

  38. [容器] DockerFile应如何编写?

  39. [容器] Docker-Compose应如何使用?

  40. [容器] Docker-Machine是什么?如何使用?

  41. [容器] Docker网络配置方法是怎样的?Linux和Windows环境有什么不同?

  42. [容器] K8S是什么?应如何使用?

Web框架

  1. [ORM] MySQL的安装和基本操作是怎样的?参考

  2. [ORM] Sqlite3的原理和使用方法是怎样的?

  3. [ORM] 使用什么工具查看和编辑Sqlite3数据库文件?sqlitebrowser

  4. [ORM] 基本的数据库连接和处理流程是怎样的?

  5. [ORM] 什么是ORM模型?

  6. [ORM] 如何使用SqlAlchemy框架?Code First,表初始化,Migration,CRUD

  7. [架构] Web应用的架构和流程是怎样的?

  8. [架构] HTML/CSS/JavaScript在前端显示中各自起到什么作用?

  9. [架构] 什么是CGI/FastCGI/Module模式?

  10. [架构] 什么是WSGI接口?

  11. [MVC] 什么是MVC模型?

  12. [MVC] 如何从头实现一个Python框架?Python2-WSGIPython3-Async

  13. [服务] 什么是WebService?

  14. [服务] 什么是JSON?

  15. [Flask] Python中常见的Web框架有哪些?各自有什么优缺点?各自有什么代表作?我们应如何选择合适的框架?

  16. [Flask] Flask框架的架构和特点是怎样的?

  17. [Flask] Jinja2语法是怎样的?

  18. [Flask] Flask和SqlAlchemy如何整合?

  19. [Flask] 如何使用Flask框架快速完成一个基本CRUD操作?

  20. [Flask] Flask项目中如何实现用户认证和权限管理?

  21. [Flask] Flask项目中如何使用Session/Cookie?

  22. [Flask] Flask项目中如何处理表单?

  23. [Flask] 一个用于生产环境的“正经”的Flask框架的代码结构是怎样的?blueprint, restful api, configuration, deployment

  24. [Flask] Flask框架应如何部署?Python2和Python3有何不同?

  25. [Django] Django框架的特点和基本流程是怎样的?

  26. [Django] 应该如何选择Django版本?参考

  27. [Django] Django框架中如何Startup,编写config文件和Router(urls.py)? 参考Demo-Get-Started

  28. [Django] Django框架中Views方法如何接收到uri参数? Demo-Dynamic-Urls

  29. [Django] Django框架中Template的语法是怎样的?与Jinja2有什么区别? Demo-Templates

  30. [Django] Django框架中的ORM模型如何使用? Demo-Models

  31. [Django] Django框架中的Admin如何使用? Demo-Admins

  32. [Django] Django框架中的表单处理是怎样的? Demo-Forms

  33. [Django] Django框架中如何编写Unittest?

  34. [Django] Django框架中如何处理静态文件?

  35. [Django] Django框架中的登陆过程是怎样的?

  36. [Django] Django框架中如何实现Restful API?

  37. [Django] Django框架如何部署? Demo-Fabric

  38. [Django] 如何对Django框架进行性能监控和调优?

  39. [微信] 订阅号和服务号有什么区别?各自的应用场景是什么?

  40. [微信] 微信的身份认证机制是怎样的?

  41. [微信] 微信订阅号的开发和调试步骤是怎样的?

  42. [微信] 微信服务号的支付功能是怎样实现的?

  43. [微信] 小程序的实现原理是什么?适用于什么场景?

  44. [微信] Web站点如何使用微信扫码登录?

数据采集

  1. [爬虫] 爬虫的基本原理是什么?

  2. [爬虫] urllib模块的基本使用方法是什么?登录,SSL

  3. [爬虫] 如何使用bs4模块解析HTML数据?

  4. [爬虫] 如何爬取股票数据并绘制K线图?

  5. [爬虫] XPath的使用方法是怎样的?

  6. [Scrapy] Scrapy框架的架构是怎样的?

  7. [Scrapy] Scrapy的基本使用方法是怎样的?, 参考

  8. [Scrapy] 如何使用Scrapy框架做整站爬取?

数据挖掘

基本概念,常见类库,案例

  1. [概念] 什么是结构化数据?

  2. [概念] 什么是数据挖掘?

  3. [概念] 数据挖掘的基本流程是怎样的?

  4. [概念] 有哪些数据挖掘相关的类库?

  5. [概念] 什么是回归分析?适用于哪些场合?

  6. [概念] 什么是决策树?适用于哪些场合?

  7. [概念] 什么是神经网络算法?适用于哪些场合?

  8. [概念] 什么是K-Means聚类算法?适用于哪些场合?

  9. [概念] 什么是Apriori算法?适用于哪些场合?

  10. [类库] 如何理解和使用Numpy模块中的ndarray对象? boardcast, 随机数生成,点乘,索引(布尔数组删选)

  11. [类库] 如何理解和使用Pandas中的DataFrame对象? 读写文件,columns,index,apple,根据Index定位

  12. [类库] 如何使用Scipy解非线性方程组?

  13. [类库] 如何使用Scipy做数值积分?

  14. [类库] 如何使用Matplotlib绘制解析几何图形?

  15. [类库] 如何使用Scikit-Lean完成回归、分类、聚类运算? 参考

  16. [案例] 什么是适用于消费类数据的RFM模型?

  17. [案例] 数据分析的一般步骤是什么?数据探索,数据清洗,属性规约,数据变换

  18. [案例] 如何完成航空公司客户价值分析?

  19. [案例] 如何完成电商评论产品评论数据情感分析?

  20. [案例] 如何完成财政收入影响因素分析?

  21. [案例] 如何完成电商用户行为分析及服务推荐?

  22. [案例] 如何完成电力窃漏电用户自动识别?

其它应用

云计算OpenStack

PaaS云平台

  1. [GAE] GAE的基本使用方法是怎样的?

  2. [SAE] SAE的基本使用方法是怎样的?

Office文档处理

  1. [Word] 如何实现对Word文档的读、写操作?

  2. [Excel] 如何实现对Excel文档的读、写操作?

Python-C

  1. [CType] Python如何调用C类库?CType

  2. [调用] C语言如何使用Python对象?

  3. [实现] 如何实现一个基于C的Python模块?CModule

PVM内存分析

  1. [PDB] Pdb的使用和局限性是怎样的?

  2. [Dump] 如何收集Dump?

  3. [Windbg] 如何使用Windbg分析PVM内存?

  4. [GDB] 如何使用Windbg分析PVM内存?

IoT

  1. [树莓] 如何烧制树莓板?Win10/Raspbian

  2. [GPIO] 如何使用Python控制GPIO口

  3. [GPIO] 如何使用面包板搭建GPIO口的输入、输出电路?

  4. [Azure IoT DevKit] 如何使用DevKit将收集到的温度/湿度信息上传到Azure云端,并通过PowerBI显示出来?参考

MineCraft

  1. [基础] MineCraft基础和Hook原理是什么?

  2. [绘制] 如何绘制三维图形?

  3. [捕捉] 如何步骤游戏角色的位置?

  4. [现实] 如何在游戏中控制GPIO口?

GUI

  1. [TK] TK的基本处理流程和布局方式是怎样的?
点击查看评论

About

Blog

Course

Project