缘起
我18年毕业于黑龙江某二本院校,这里就不说母校的名字了,怕给母校丢脸。电子信息工程学院。大学期间专业知识也没有去认真的学习,所以毕业的时候就随便找了一份工作,在富士康的昆山厂区,做自动化工程师。
记得那时候税前薪资大概是7k左右,因为是在工厂,工作环境很差,加班时间又很长,最重要的是也很危险,身体开始出现了各种毛病,所以我一直有想转行的想法,正好有当时的同事提前离职,报了一个线上培训班学习python。他学习结束后,在上海拿到一个12k的offer,所以就更加坚定了我转行学python的想法。
在辞职之前,心里还是有一些担忧,害怕学得不好,找不到工作,不过前同事帮我打消了很多顾虑,他告诉我python有很多优势:
- 简单:Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想。阅读Python程序像是在读英语。
- 易学:Python入手非常快,学习曲线非常低,可以直接通过命令行交互环境来学习Python编程。
- 免费/开源:Python的所有内容都是免费开源的,这意味着你不需要花一分钱就可以免费使用Python,并且你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
- 自动内存管理: 如果你了解C语言、C++语言你就会知道内存管理给你带来很大麻烦,程序非常容易出现内存方面的漏洞。但是在Python中内存管理是自动完成的,你可以专注于程序本身
- 可以移植: 由于Python是开源的,它已经被移植到了大多数平台下面,例如:Windows、MacOS、Linux、Andorid、iOS等等。
- 解释性 :大多数计算机编程语言都是编译型的,在运行之前需要将源码编译为操作系统可以执行的二进制格式(0110格式的),这样大型项目编译过程非常消耗时间,而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。
- 面向对象 :Python既支持面向过程,又支持面向对象,这样编程就更加灵活。
- 可扩展 :Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写。
- 丰富的第三方库:Python具有本身有丰富而且强大的库,而且由于Python的开源特性,第三方库也非常多,例如:在web开发、爬虫、科学计算等等
学习之旅
在他的开导之下,我很快就看开了,我觉得培训学习这种事情,更多的是要看自己的态度,要始终严格要求自己,确保自己在认真努力的学习,而不是自欺欺人的假努力。我自己也比较有信心,我知道我能做得到,所以21年初,我也毫不犹豫的选择裸辞,开始了为期半年的学习python之旅。
我学的是python,也是当下比较火的语言之一,发展方向也有很多。我选择的是做web,因为自己上一份工作时就有自学过相关的知识。学习的日子当然是比较枯燥啦,还好与身边的同学们一起学习,一起讨论问题,也不会觉得特别无聊。每天早上8点钟起来,9点钟上课,中午午休,下午继续上课,学校晚上会要求我们上自习,会有老师对一天的问题进行答疑,个人认为,这才是对一天学习内容吸收的最佳时机。
学习方案
下面是学校给我列的一百天计划里面的学习框架,我在这里放上来。
Day01~15 - Python语言基础
Day01 - 初识Python
Python简介 - Python的历史 / Python的优缺点 / Python的应用领域
搭建编程环境 - Windows环境 / Linux环境 / MacOS环境
从终端运行Python程序 - Hello, world / print函数 / 运行程序
使用IDLE - 交互式环境(REPL) / 编写多行代码 / 运行程序 / 退出IDLE
注释 - 注释的作用 / 单行注释 / 多行注释
Day02 - 语言元素
程序和进制 - 指令和程序 / 冯诺依曼机 / 二进制和十进制 / 八进制和十六进制
变量和类型 - 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换
数字和字符串 - 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码
运算符 - 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑运算符 / 身份运算符 / 运算符的优先级
应用案例 - 华氏温度转换成摄氏温度 / 输入圆的半径计算周长和面积 / 输入年份判断是否是闰年
Day03 - 分支结构
分支结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
if语句 - 简单的if / if-else结构 / if-elif-else结构 / 嵌套的if
应用案例 - 用户身份验证 / 英制单位与公制单位互换 / 掷骰子决定做什么 / 百分制成绩转等级制 / 分段函数求值 / 输入三条边的长度如果能构成三角形就计算周长和面积
Day04 - 循环结构
循环结构的应用场景 - 条件 / 缩进 / 代码块 / 流程图
while循环 - 基本结构 / break语句 / continue语句
for循环 - 基本结构 / range类型 / 循环中的分支结构 / 嵌套的循环 / 提前结束程序
应用案例 - 1~100求和 / 判断素数 / 猜数字游戏 / 打印九九表 / 打印三角形图案 / 猴子吃桃 / 百钱百鸡
Day05 - 构造程序逻辑
基础练习 - 水仙花数 / 完美数 / 五人分鱼 / Fibona***i数列 / 回文素数
综合练习 - Craps赌博游戏
Day06 - 函数和模块的使用
函数的作用 - 代码的坏味道 / 用函数封装功能模块
定义函数 - def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数
调用函数 - Python内置函数 / 导入模块和函数
函数的参数 - 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数
函数的返回值 - 没有返回值 / 返回单个值 / 返回多个值
作用域问题 - 局部作用域 / 嵌套作用域 / 全局作用域 / 内置作用域 / 和作用域相关的关键字
用模块管理函数 - 模块的概念 / 用自定义模块管理函数 / 命名冲突的时候会怎样(同一个模块和不同的模块)
Day07 - 字符串和常用数据结构
字符串的使用 - 计算长度 / 下标运算 / 切片 / 常用方法
列表基本用法 - 定义列表 / 用下表访问元素 / 下标越界 / 添加元素 / 删除元素 / 修改元素 / 切片 / 循环遍历
列表常用操作 - 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找
生成列表 - 使用range创建数字列表 / 生成表达式 / 生成器
元组的使用 - 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换
集合基本用法 - 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空
集合常用操作 - 交集 / 并集 / 差集 / 对称差 / 子集 / 超集
字典的基本用法 - 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空
字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法
基础练习 - 跑马灯效果 / 列表找最大元素 / 统计考试成绩的平均分 / Fibona***i数列 / 杨辉三角
综合案例 - 双色球选号 / 井字棋
Day08 - 面向对象编程基础
类和对象 - 什么是类 / 什么是对象 / 面向对象其他相关概念
定义类 - 基本结构 / 属性和方法 / 构造器 / 析构器 / str方法
使用对象 - 创建对象 / 给对象发消息
面向对象的四大支柱 - 抽象 / 封装 / 继承 / 多态
基础练习 - 定义学生类 / 定义时钟类 / 定义图形类 / 定义汽车类
Day09 - 面向对象进阶
属性 - 类属性 / 实例属性 / 属性访问器 / 属性修改器 / 属性删除器 / 使用slots
类中的方法 - 实例方法 / 类方法 / 静态方法
运算符重载 - add / sub / or /getitem / setitem / len / repr / gt / lt / le / ge / eq / ne / contains
类(的对象)之间的关系 - 关联 / 继承 / 依赖
继承和多态 - 什么是继承 / 继承的语法 / 调用父类方法 / 方法重写 / 类型判定 / 多重继承 / 菱形继承(钻石继承)和C3算法
综合案例 - 工资结算系统 / 图书自动折扣系统 / 自定义分数类
Day10 - 图形用户界面和游戏开发
使用tkinter开发GUI
使用pygame三方库开发游戏应用
“大球吃小球”游戏
Day11 - 文件和异常
- 读文件 - 读取整个文件 / 逐行读取 / 文件路径
- 写文件 - 覆盖写入 / 追加写入 / 文本文件 / 二进制文件
- 异常处理 - 异常机制的重要性 / try-except代码块 / else代码块 / finally代码块 / 内置异常类型 / 异常栈 / raise语句
- 数据持久化 - CSV文件概述 / csv模块的应用 / JSON数据格式 / json模块的应用
Day12 - 字符串和正则表达式
- 字符串高级操作 - 转义字符 / 原始字符串 / 多行字符串 / in和 not in运算符 / is开头的方法 / join和split方法 / strip相关方法 / pyperclip模块 / 不变字符串和可变字符串 / StringIO的使用
- 正则表达式入门 - 正则表达式的作用 / 元字符 / 转义 / 量词 / 分组 / 零宽断言 /贪婪匹配与惰性匹配懒惰 / 使用re模块实现正则表达式操作(匹配、搜索、替换、捕获)
- 使用正则表达式 - re模块 / ***pile函数 / group和groups方法 / match方法 / search方法 / findall和finditer方法 / sub和subn方法 / split方法
- 应用案例 - 使用正则表达式验证输入的字符串
Day13 - 进程和线程
- 进程和线程的概念 - 什么是进程 / 什么是线程 / 多线程的应用场景
- 使用进程 - fork函数 / multiprocessing模块 / 进程池 / 进程间通信
- 使用线程 - thread模块 / threading模块 / Thread类 / Lock类 / Condition类 / 线程池
Day14 - 网络编程入门和网络应用开发
- 计算机网络基础 - 计算机网络发展史 / “TCP-IP”模型 / IP地址 / 端口 / 协议 / 其他相关概念
- 网络应用模式 - “客户端-服务器”模式 / “浏览器-服务器”模式
- 基于HTTP协议访问网络资源 - 网络API概述 / 访问URL / requests模块 / 解析JSON格式数据
- Python网络编程 - 套接字的概念 / socket模块 / socket函数 / 创建TCP服务器 / 创建TCP客户端 / 创建UDP服务器 / 创建UDP客户端 / SocketServer模块
- 电子邮件 - SMTP协议 / POP3协议 / IMAP协议 / smtplib模块 / poplib模块 / imaplib模块
- 短信服务 - 调用短信服务网关
Day15 - 图像和文档处理
- 用Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果
- 读写Word文档 - 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理
- 读写Excel文件 - xlrd模块 / xlwt模块
- 生成PDF文件 - pypdf2模块 / reportlab模块
Day16~Day20 - Python语言进阶
- 常用数据结构
- 函数的高级用法 - “一等公民” / 高阶函数 / Lambda函数 / 作用域和闭包 / 装饰器
- 面向对象高级知识 - “三大支柱” / 类与类之间的关系 / 垃圾回收 / 魔术属性和方法 / 混入 / 元类 / 面向对象设计原则 / GoF设计模式
- 迭代器和生成器 - 相关魔术方法 / 创建生成器的两种方式 /
- 并发和异步编程 - 多线程 / 多进程 / 异步IO / async和await
Day21~30 - Web前端入门
- 用HTML标签承载页面内容
- 用CSS渲染页面
- 用JavaScript处理交互式行为
- jQuery入门和提高
- Vue.js入门
- Element的使用
- Bootstrap的使用
Day31~35 - 玩转Linux操作系统
- 操作系统发展史和Linux概述
- Linux基础命令
- Linux中的实用程序
- Linux的文件系统
- Vim编辑器的应用
- 环境变量和Shell编程
- 软件的安装和服务的配置
- 网络访问和管理
- 其他相关内容
Day36~40 - 数据库基础和进阶
-
关系型数据库MySQL
-
-
关系型数据库概述
-
MySQL的安装和使用
-
SQL的使用
-
- DDL - 数据定义语言 - create / drop / alter
- DML - 数据操作语言 - insert / delete / update / select
- DCL - 数据控制语言 - grant / revoke
-
-
-
相关知识
-
- 范式理论 - 设计二维表的指导思想
- 数据完整性
- 数据一致性
-
在Python中操作MySQL
-
-
NoSQL入门
-
- NoSQL概述
- Redis概述
- Mongo概述
Day41~55 - 实战Django
Day41 - 快速上手
- Web应用工作原理和HTTP协议
- Django框架概述
- 5分钟快速上手
- 使用视图模板
Day42 - 深入模型
- 关系型数据库配置
- 管理后台的使用
- 使用ORM完成对模型的CRUD操作
- Django模型最佳实践
- 模型定义参考
Day43 - 静态资源和Ajax请求
- 加载静态资源
- 用Ajax请求获取数据
Day44 - 表单的应用
- 表单和表单控件
- 跨站请求伪造和CSRF令牌
- Form和ModelForm
- 表单验证
Day45 - Cookie和Session
- 实现用户跟踪
- cookie和session的关系
- Django框架对session的支持
- 视图函数中的cookie读写操作
Day46 - 报表和日志
- 通过HttpResponse修改响应头
- 使用StreamingHttpResponse处理大文件
- 使用xlwt生成Excel报表
- 使用reportlab生成PDF报表
- 使用ECharts生成前端图表
- 配置日志和Django-Debug-Toolbar
Day47 - 中间件的应用
- 什么是中间件
- Django框架内置的中间件
- 自定义中间件及其应用场景
Day48 - 前后端分离开发入门
- 返回JSON格式的数据
- 用Vue.js渲染页面
Day49 - RESTful架构和DRF入门 Day50 - RESTful架构和DRF进阶 Day51 - 使用缓存
- 网站优化第一定律
- 在Django项目中使用Redis提供缓存服务
- 在视图函数中读写缓存
- 使用装饰器实现页面缓存
- 为数据接口提供缓存服务
Day52 - 文件上传和富文本编辑
- 文件上传表单控件和图片文件预览
- 服务器端如何处理上传的文件
- 富文本编辑器概述
- wangEditor的使用
Day53 - 短信和邮件
- 常用短信网关平台介绍
- 使用螺丝帽发送短信
- Django框架对邮件服务的支持
Day54 - 异步任务和定时任务
- 网站优化第二定律
- 配置消息队列服务
- 在项目中使用celery实现任务异步化
- 在项目中使用celery实现定时任务
Day55 - 单元测试和项目上线
- Python中的单元测试
- Django框架对单元测试的支持
- 使用版本控制系统
- 配置和使用uWSGI
- 动静分离和Nginx配置
- 配置HTTPS
Day56~60 - 实战Flask
Day56 - Flask入门 Day57 - 模板的使用 Day58 - 表单的处理 Day59 - 数据库操作 Day60 - 项目实战
Day61~65 - 实战Tornado
Day61 - 预备知识
- 并发编程
- I/O模式和事件驱动
Day62 - Tornado入门
- Tornado概述
- 5分钟上手Tornado
- 路由解析
- 请求处理器
Day63 - 异步化
- aiomysql和aioredis的使用
Day64 - WebSocket的应用
- WebSocket简介
- WebSocket服务器端编程
- WebSocket客户端编程
- 项目:Web聊天室
Day65 - 项目实战
- 前后端分离开发和接口文档的撰写
- 使用Vue.js实现前端渲染
- 使用ECharts实现报表功能
- 使用WebSocket实现推送服务
Day66~75 - 爬虫开发
Day66 - 网络爬虫和相关工具
- 网络爬虫的概念及其应用领域
- 网络爬虫的合法性探讨
- 开发网络爬虫的相关工具
- 一个爬虫程序的构成
Day67 - 数据采集和解析
- 数据采集的标准和三方库
- 页面解析的三种方式:正则表达式解析 / XPath解析 / CSS选择器解析
Day68 - 存储数据
- 如何存储海量数据
- 实现数据的缓存
Day69 - 并发下载
- 多线程和多进程
- 异步I/O和协程
- async和await关键字的使用
- 三方库aiohttp的应用
Day70 - 解析动态内容
- JavaScript逆向工程
- 使用Selenium获取动态内容
Day71 - 表单交互和验证码处理
- 自动提交表单
- Cookie池的应用
- 验证码处理
Day72 - Scrapy入门
- Scrapy爬虫框架概述
- 安装和使用Scrapy
Day73 - Scrapy高级应用
- Spider的用法
- 中间件的应用:下载中间件 / 蜘蛛中间件
- Scrapy对接Selenium抓取动态内容
- Scrapy部署到Docker
Day74 - Scrapy分布式实现
- 分布式爬虫的原理
- Scrapy分布式实现
- 使用Scrapyd实现分布式部署
Day75 - 爬虫项目实战
- 爬取招聘网站数据
- 爬取房地产行业数据
- 爬取二手车交易平台数据
Day76~90 - 数据处理和机器学习
Day76 - 机器学习基础
Day77 - Pandas的应用
Day78 - NumPy和SciPy的应用
Day79 - Matplotlib和数据可视化
Day80 - k最近邻(KNN)分类
Day81 - 决策树
Day82 - 贝叶斯分类
Day83 - 支持向量机(SVM)
Day84 - K-均值聚类
Day85 - 回归分析
Day86 - 大数据分析入门
Day87 - 大数据分析进阶
Day88 - Tensorflow入门
Day89 - Tensorflow实战
Day90 - 推荐系统
Day91~100 - 团队项目开发
第91天:团队项目开发准备
- 软件过程模型
-
经典过程模型(瀑布模型)
-
-
可行性分析(研究做还是不做),输出《可行性分析报告》。
-
需求分析(研究做什么),输出《需求规格说明书》和产品界面原型图。
-
概要设计和详细设计,输出概念模型图、物理模型图、类图、时序图等。
-
编码 / 测试。
-
上线 / 维护。
-
敏捷开发(Scrum)- 产品所有者、Scrum Master、研发人员 - Sprint
-
- 产品的Backlog(用户故事、产品原型)。
- 计划会议(评估和预算)。
- 日常开发(站立会议、番茄工作法、结对编程、测试先行、代码重构……)。
- 修复bug(问题描述、重现步骤、测试人员、被指派人)。
- 评审会议(Showcase)。
- 回顾会议(当前周期做得好和不好的地方)。
-
补充:敏捷软件开发宣言
-
-
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
-
另外,进步最大的阶段,还是学校安排做项目实训的时候,同学们几人一组,组成开发团队,然后分析项目,划分任务,根据平时所学,进行实战。会给大家提前进入职场的感觉,当然过程中会遇到大大小小的问题,同学们一起商量,互相帮助,最后项目成型以后,真的是觉得很有成就感,进步也是最快的。
在整个学习过程当中,我是没有碰到什么瓶颈的,因为我的学习习惯就是不去积压问题,发现不清楚的点,第一时间去解决,所以学起来没有多困难。通过这半年的学习,除了专业技能的明显提升以外,家人都说我比之前更懂事了,生活也变得更规律,对时间和知识的管理更加的完善,对于我个人来说,的确变化很大。
python刷题
一、Python 基础
(一) Python 基础语法
- Python有哪些特点和优点?
- 简述解释型和编译型编程语言?
- Python解释器种类以及特点
- python常见的PEP8规范
- 通过代码实现如下进制转换
- 三元运算规则以及应用场景
- 列举 Python2和Python3的区别【Python基础语法】
- is和==的区别
- try except用法和作用
- Python LEGB规则
- python简单的列表去重
- 区分break,continue和pass?
- 什么是python迭代器?
- 如何在python中写注释?
- 如何在python中注释多行?
- 什么是Python中的文档Docstrings?
- Python是通用编程语言吗?
- Python是如何解释语言的?
- 什么是pep?
- Python中的命名空间是什么?
- 什么是PYTHONPATH?
- Python中的局部变量和全局变量是什么?
- python是否区分大小写?
- 如何在Windows上安装Python并设置路径变量?
- python中是否需要缩进?
- 列举布尔值为False的常见值
- 怎样声明多个变量并赋值?
- 其中哪一个是floor division?
- 标识符的最大可能长度是多少?
- 为什么不鼓励以下划线开头的局部变量名?
- 以下哪项是无效声明?
- 以下哪项是无效声明?
- 以下是什么输出?
- a=1, b=2, 不用中间变量交换a和b的值.
- 请写出打印结果
- A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?
- 有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?
- 介绍一下except的用法和作用?
- Python中pass语句的作用是什么?
- 单引号,双引号,三引号的区别
- 浮点数运算
- 介绍一下except的用法和作用?
- Python中pass语句的作用是什么?
- 反转一个整数,例如-123 --> -321
- 一行代码实现1-100之和
- Python-遍历列表时删除元素的正确做法
- 字符串 “123” 转换成 123,不使用内置api,例如 int()
- 求出列表所有奇数并构造新列表
- 用一行python代码写出1+2+3+10248
- python常见的列表推导式?
- Python中pass语句的作用是什么?
- 如何交换两个变量的值?
- Python中pass语句的作用是什么?
- Python区分大小写吗?
- Python中的标识符长度能有多长?
- Python中的pass语句是什么?
- 解释一下Python中的//,%和 ** 运算符
- 在Python中有多少种运算符?解释一下算数运算符。
- 解释一下Python中的关系运算符
- 解释一下Python中的赋值运算符
- 解释一下Python中的逻辑运算符
- 解释一下Python中的成员运算符
- 解释一下Python中的身份运算符
- 讲讲Python中的位运算符
- 在Python中如何使用多进制数字?
- 怎样声明多个变量并赋值?
- PYTHONPATH变量是什么?
- 在Python中如何声明一条注释?
- 什么是Python中的连接(concatenation)?
- 请用一行代码 实现将1-N 的整数列表以3为单位分组
- 避免转义给字符串加哪个字母表示原始字符串?
- X是什么类型?
- 单引号、双引号、三引号用法
- int(“1.4”),int(1.4)输出结果?
- 列举3条以上PEP8编码规范
- IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常
- 递归求和
- 介绍一下except的用法和作用?
- Python中pass语句的作用是什么?
- Json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?
- Python写9*9乘法表的两种简单方法
(二) 文件操作
- 大数据的文件读取
- 在python中编译和链接的过程是什么?
- 请写一个Python逻辑,计算一个文件中的大写字母数量
- 介绍一下except的用法和作用?
- 要打开文件c:\ scores.txt进行编写,我们使用:
- 以下是什么输出?
- 何时执行try-except-else的else部分?
- 简述with方法打开处理文件帮我我们做了什么?
- 用python删除文件和用linux命令删除文件方法
- 写一段自定义异常代码
- 举例说明异常模块中try except else finally的相关意义
- IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常
- r、r+、rb、rb+文件打开模式区别
- 深拷贝和浅拷贝之间的区别是什么?
- 请写一个Python逻辑,计算一个文件中的大写字母数量
- 如何用Python找出你目前在哪个目录?
- 如何以相反顺序展示一个文件的内容?
- 4G 内存怎么读取一个 5G 的数据?
- 说明一下 os.path 和 sys.path 分别代表什么?
- Python 中的 os 模块常见方法?
- python的read() 、readline()、readlines()、xreadlines()
- 使用代码实现查看列举目录下的所有文件
- 如何在Python中删除文件?
- 设计实现遍历目录与子目录,抓取.pyc文件
- 简述read、readline、readlines的区别?
- 用python删除文件和用linux命令删除文件方法
- 简述with方法打开处理文件帮我我们做了什么?
- 写一段自定义异常代码
(三) 模块与包
- 深拷贝和浅拷贝的区别是什么?
- 如何在Python中随机化列表中的项目?
- 如何用Python来发送邮件?
- Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
- Python里面如何生成随机数?
- 介绍一下Python中webbrowser的用法?
- 有没有一个工具可以帮助查找python的bug和进行静态的代码分析?
- 列出5个python标准库
- 利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
- 生成0-100的随机数
- 如何在Python中创建自己的包?
- 常用的 Python 标准库都有哪些?
- 输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准库)
- Python的 sys 模块常用方法?
- Python里面如何拷贝一个对象?
- 简述Python的深浅拷贝以及应用场景
- 如何安装第三方模块?以及用过哪些第三方模块?
- 常用模块都有那些?
- 什么是python模块?Python中有哪些常用的内置模块?
- 如何在Python中生成随机数?
- range&xrange有什么区别?
- Python里面如何生成随机数?
- 在Python中如何生成一个随机数?
- 利用collections库的Counter方法统计字符串每个单词出现的次数"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
- 列出5个python标准库
- 生成0-100的随机数
- 如何安装第三方模块?以及用过哪些第三方模块?
- 常用模块都有那些?
(四) 数据类型
- Python里面如何实现tuple和list的转换?
- 列表和元组有什么不同?
- 什么是负指数,为什么使用它们?
- 单引号,双引号,三引号的区别?
- 有两个序列a,b,大小都为n,序列元素的值任意整形数,无序?
- Python中的标识符长度能有多长?
- 在Python中如何使用多进制数字?
- 元组的解封装是什么?
- Python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景?
- 以下哪个语句创建字典?(多个正确的答案可能)
- 假设list1是[2,33,222,14,25],什么是list1 [-1]?
- 单引号,双引号,三引号的区别
- 怎样获取字典中所有键的列表?
- 字典如何删除键和合并两个字典
- python实现列表去重的方法
- python内建数据类型有哪些
- python中生成随机整数、随机小数、0–1之间小数方法
- 列出python中可变数据类型和不可变数据类型,并简述原理
- 字典根据键从小到大排序
- 列表推导式求列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- a=(1,)b=(1),c=(“1”) 分别是什么类型的数据?
- 两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]
- [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
- x=“abc”,y=“def”,z=[“d”,“e”,“f”],分别求出x.join(y)和x.join(z)返回的结果
- a="hello"和b="你好"编码成bytes类型
- [1,2,3]+[4,5,6]的结果是多少?
- 求三个方法打印结果
- 计算代码运行结果,zip函数历史文章已经说了,得出[(“a”,1),(“b”,2),(“c”,3),(“d”,4),(“e”,5)]
- python中copy和deepcopy区别
- 举例sort和sorted对列表排序,list=[0,-1,3,-10,5,9]
- 对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函数从小到大排序
- 使用lambda函数对list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],输出结果为
- 列表嵌套字典的排序,分别根据年龄和姓名排序
- 列表嵌套元组,分别按字母和数字排序
- 列表嵌套列表排序,年龄数字相同怎么办?
- 根据键对字典排序(方法一,zip函数)
- 根据键对字典排序(方法二,不用zip)
- 列表推导式、字典推导式、生成器
- 最后出一道检验题目,根据字符串长度排序,看排序是否灵活运用
- python字典和json字符串相互转化方法
- 求两个列表的交集、差集、并集
- python中读取Excel文件的方法
- 列表和元组之间的区别是?
- Python中的字典是什么?
- 什么是负索引?
- 如何以就地操作方式打乱一个列表的元素?
- 解释Python中的join()和split()函数
- 怎样获取字典中所有键的列表?
- 元组的解封装是什么?
- Python支持什么数据类型?
- docstring是什么?
- 什么是切片?
- 什么是namedtuple ?
- 在Python中怎样将字符串转换为整型变量?
- Python中的不可变集合(frozenset)是什么?
- 什么是迭代器?
- 请按alist中元素的age由大到小排序
- 下面代码的输出结果将是什么?
- 写一个列表生成式,产生一个公差为11的等差数列
- 给定两个列表,怎么找出他们相同的元素和不同的元素?
- 请写出一段python代码实现删除list里面的重复元素?
- 给定两个list A,B ,请用找出A,B中相同与不同的元素
- Python里面如何实现tuple和list的转换?
- 请写出一段Python代码实现删除一个list里面的重复元素
- 字符串、列表、元组、字典每个常用的5个方法(整型,浮点,字符串,布尔型,列表、元组、字典、集合、日期)
- Python里面如何实现tuple和list的转换?
- 请写出一段Python代码实现删除一个list里面的重复元素
- 如何在一个function里面设置一个全局的变量?
- 列表的扁平化和降维
- 如果将一个列表传入函数中,在函数中修改后,全局的列表会被修改吗?
- 什么是Python中的类型转换?
- Python数组和列表有什么区别?
- [:: - 1}表示什么?
- NumPy中有哪些操作Python列表的函数?
- 按字典中的value值进行排序
- 字典和json的区别
- 可变、不可变类型
- 常用的字符串格式化
- 字符串驻留机制
- 删除list中重复元素
- 列举字符串、列表、元组、字典的5个常用方法
- 什么是反射,以及应用场景
- 列表和迭代器的区别
- enumerate的作用
- 描述数组、链表、队列、堆栈的区别?
- …
(五)企业面试题
- 分别从前端、后端、数据库阐述web项目的性能优化
- 我们都知道现在Python很火,但是对于一门技术我们不光要知道它的优点,也要知道它的缺点,请谈谈Python的不足之处。
- 如果你困在了死循环里,怎么打破它?
- 请谈谈.pyc文件和.py文件的不同之处
- 请反转字符串 “aStr”?
- 将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典 {k:1,k1:2,…}
- 利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法.
- 请设计一个decorator,它可作用于任何函数上,并打印该函数的执行时间
- 解释一下python的and-or语法
- 你在爬虫过程中,都是怎么解决反爬的,爬取多少数据,用了多长时间?
- 爬取这些数据都用来做什么的?怎么交付给公司?客户是谁?爬取数据的影响因素?
- 有没有一个工具可以帮助查找python的bug和进行静态的代码分析?
- 说一下 mysql 的原理?
- 数据库索引
- 数据库怎么优化查询效率?
- 简单谈谈ACID,并解释每一个特性。
- Python的主要功能是什么?
- 装饰器的写法以及应用场景
- 异常处理写法以及如何主动跑出异常(应用场景)
- isinstance作用以及应用场景?
- json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?
- 线上服务可能因为种种原因导致挂掉怎么办?
- 如何提高python的运行效率
- 线上服务可能因为种种原因导致挂掉怎么办?
- 如何提高python的运行效率
- 字符串的操作题目
- 介绍Cython,Pypy Cpython Numba各有什么缺点
- 手写一个判断时间的装饰器
- 生成器,迭代器的区别?
- Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
- 如何判断是函数还是方法?
- 为什么函数名字可以当做参数用?
- 分别从前端、后端、数据库阐述web项目的性能优化
- python新式类和经典类的区别?
- 线上服务可能因为种种原因导致挂掉怎么办?
- 如何提高python的运行效率
- Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
- 如何判断是函数还是方法?
二、Python 高级
(一) 元类
- @property的用法
- new和init的区别
- 如何实现一个单例
- python查找对象属性的顺序
- 什么是init?
- Python中的self是什么?
- 深拷贝和浅拷贝有什么区别?
- 什么是猴子补丁?
- 字典推导式
- super函数的具体用法和场景
- Python中类方法、类实例方法、静态方法有何区别?
- 遍历一个object的所有属性,并print每一个属性名?
- 写一个类,并让它尽可能多的支持操作符?
- 请描述抽象类和接口类的区别和联系
- Python中如何动态获取和设置对象的属性?
- 对设计模式的理解,简述你了解的设计模式?
- 单例模式的应用场景有那些?
- 对装饰器的理解,并写出一个计时器记录方法执行性能的装饰器?
- Python的魔法方法
- 什么是Python monkey补丁?
- 阅读下面的代码,它的输出结果是什么?
- 写一个单列模式
- 什么是猴子补丁?
- 描述元类的概念。Python有没有接口?元类和Java的接口有什么异同?
(二)内存管理与垃圾回收机制
- Python是如何进行内存管理的?
- 对象的引用计数机制
- 垃圾回收
- 内存池机制
- 当Python退出时,为什么不清除所有分配的内存?
- Python是如何进行内存管理的?
- python垃圾回收机制
- 当退出 Python 时是否释放所有内存分配?
- 如何获取任何网址或网页的Google缓存时限?
- Python中变量的作用域?(变量查找顺序)
- 哪些操作会导致Python内存溢出,怎么处理?
- 关于Python内存管理
- Python的内存管理机制及调优手段?【内存管理与垃圾回收机制】
- 内存泄露是什么?如何避免?
- 在Python中是如何管理内存的?
- 当退出Python时,是否释放全部内存?
- Python2 中 range 和 xrange 的区别?
- 浅拷贝会创建新对象,其内容非原对象本身的引用,而是原对象内第一层对象的引用。
- python中交换两个数值
- 提高python运行效率的方法
- 简述python引用计数机制
- 引用计数算法
- python垃圾回收机制
- Python是如何进行内存管理的
- Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
(三)函数
- 简述 yield和yield from关键字
- 大数据的文件读取
- 装饰器的作用和功能
- 装饰器的作用和功能
- 如何在Python中随机化列表中的元素?
- 什么是pickling和unpickling?
- python中的生成器是什么?
- 你如何把字符串的第一个字母大写?
- 如何将字符串转换为全小写?
- operators中的is、not和in各有什么功能?
- Python中help()和dir()函数的用法是什么?
- 为什么使用* args,** kwargs?
- len()函数有什么作用?
- 在Python中split(),sub(),subn()功能。
- Python中的函数是什么?
- 什么是lambda函数?
- 如何删除python数组的值?
- lambda表达式格式以及应用场景
- pass的作用
- *arg和**kwarg作用
- Python中的yield用法
- 列举常见的内置函数
- python递归的最大层数
- 什么是lambda函数?它有什么好处?
- 编程用sort进行排序,然后从最后一个元素开始判断
- 什么是lambda函数?它有什么好处?
- fun(args,kwargs)中的args,kwargs什么意思?
- python2和python3的range(100)的区别
- 一句话解释什么样的语言能够用装饰器?
- 请写出一段Python代码实现删除一个list里面的重复元素
- lambda匿名函数表达式及应用场景
- python的递归最大层数
- 常见的内置函数
- filter,map,reduce的作用
- 什么是闭包
- 装饰器
- 统计函数的执行效率
- Yield关键字和生成器
- 装饰器的作用和功能
- python 中 yield 的用法?
- 介绍一下Python下range()函数的用法?
- 装饰器的作用和功能
- Python中的yield用法
- 你知道几种排序,讲一讲你最熟悉的一种?
- 什么是lambda函数?它有什么好处?
- 编程用sort进行排序,然后从最后一个元素开始判断
- 介绍一下Python下range()函数的用法?
- Python里面如何生成随机数?
- 是否使用过functools中的函数?其作用是什么?
- 给定一个任意长度数组,实现一个函数
- 阅读一下代码他们的输出结果是什么?
- 请写出一个函数满足以下条件
- 什么是Hash(散列函数)?
- python函数重载机制?
- 编写函数的4个原则
- 函数调用参数的传递方式是值传递还是引用传递?
- 使用Python内置的filter()方法来过滤?
- 回调函数,如何通信的?
- map(lambda x:xx,[y for y in range(3)])的输出?
- hasattr() getattr() setattr() 函数使用详解?
- 一句话解决阶乘函数?
- 什么是lambda函数? 有什么好处?
- 递归函数停止的条件?
- python写一个匿名函数求两个数的和
- 解释以下什么是闭包?
- 函数装饰器有什么作用?
- hon下range()函数的用法?
- 怎么移除一个字符串中的前导空格?
- 怎样将字符串转换为小写?
- 在Python中怎样获取输入?
- 怎样将字符串中第一个字母大写?
- 如何检查字符串中所有的字符都为字母数字?
- 什么是函数?
- 解释拉姆达表达式,什么时候会用到它?
- 什么是递归?
- 什么是生成器?
- 请说说生成器和迭代器之间的区别
- 函数zip()的是干嘛的?
- 解释Python的参数传递机制
- 解释Python中的help()和dir()函数
- 如何计算一个字符串的长度?
- 简述 yield和yield from关键字。
- 列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
- python中生成随机整数、随机小数、0–1之间小数方法
- python中断言方法举例
- s = “ajldjlajfdljfddd”,去重并从小到大排序输出"adfjl"
- 用lambda函数实现两个数相乘
- filter方法求出列表所有奇数并构造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- log日志中,我们需要用时间戳记录error,warning等的发生时间,请用datetime模块打印当前时间戳 “2018-04-01 11:38:54”
- 举例说明zip()函数用法
- 求三个方法打印结果
- 简述any()和all()方法
- a = " hehheh ",去除收尾空格
- 统计字符串中某字符出现次数
- 字符串转化大小写
- 用两种方法去空格
- lambda匿名函数好处
- python传参数是传值还是传址?
- 请将[i for i in range(3)]改成生成器
- 你知道几种排序,讲一讲你最熟悉的一种?
- Python中的yield用法
- 什么是lambda函数?它有什么好处?
- 编程用sort进行排序,然后从最后一个元素开始判断
- 介绍一下Python下range()函数的用法?
- Python里面如何生成随机数?
- 是否使用过functools中的函数?其作用是什么?
- 简述 yield和yield from关键字。
- lambda表达式格式以及应用场景
- 什么是lambda函数?它有什么好处?
- 编程用sort进行排序,然后从最后一个元素开始判断
(四) 面向对象
- 多继承写法以及继承顺序问题
- 析构函数
- 继承,在执行析构函数时,先执行父类的,还是先执行子类的?
- 继承时,所有的方法都会被继承吗?
- 谈一下单例模式。
- 浅copy和深copy的区别
- Python中的self关键字
- 多态
- 面向对象深度优先和广度优先是什么?
- 面向对象中super的作用?
- 列举面向对象中带双下划线的魔术方法?
- 面向对象中的property属性、类方法、静态方法?
- 列举面向对象中的特殊成员以及应用场景
- 什么是反射?以及应用场景?
- 用尽量多的方法实现单例模式。
- Python有OOps概念吗?
- Python中的闭包是什么?
- 解释一下Python中的继承
- 谈谈你对面向对象的理解?
- 面向对象中怎么实现只读属性?
- 简述面向对象中new和init区别
- 如何在一个函数内部修改全局变量
- 列出几种魔法方法并简要介绍用途
- 用一个例子解释Python中的继承
- 解释一下Python中的继承
- Python中的闭包是什么?
- 面向对象深度优先和广度优先是什么?
- 面向对象中super的作用?
- 面向对象中的property属性、类方法、静态方法?
- 列举面向对象中的特殊成员以及应用场景
- 什么是反射?以及应用场景?
- 用尽量多的方法实现单例模式
- 迭代器和生成器的区别
- 多重继承
Python面试宝典
面试找工作
学成就要实战嘛,学习结束以后,我开始投简历、面试。一开始还是很慌张的,因为自己是半路出家,没有开发经验,担心自己不够用人单位的要求、被嫌弃。当时我的就业指导老师和班主任对我帮助很大。他们告诉我,有这种想法很正常,都是这样过来的,别顾忌那么多,先把这一步迈出来,多面几家,哪怕一开始准备的不够充分,多面几家下来,自己的问题点就会暴露出来,然后再去准备,再面试,这样一来,总会有offer的。
我听从他们的指导,白天面试以后,把碰到的问题记录下来,晚上回到家,就去找答案,就这样,面了4、5家,我就轻轻松松拿到3个offer。最后我比对一番就入职了,目前我在软通动力上班,是华为的外包,办公地点也是华为公司,工作不算累,也不像网上说的那么可怕,偶尔加班也不会很晚,薪资16K。
现在回过头看当初的决定,还是正确的,我也没让自己失望,确实把自己转行成功了,脱离了工厂,薪资也翻了一倍不止。
总结
对于转行做程序员,我能成功靠什么?两个关键词,决心和毅力!
如果你下定决心,做了选择,就一定要坚持到最后。
如今我已成功转行,现在在这个行业只算得上一个新人,但随着岁月增长,我会慢慢成为一名“老猿”,但我也会依然把自己这颗学习的心保持到老。同样的,我也希望你在青春迷茫时,能不要放弃,因为每个人,都有柳暗花明的那一刻。
-END-
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!
👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享](安全链接,放心点击)
👉Python学习大礼包👈
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python书籍和视频合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉Python面试刷题👈
👉Python副业兼职路线👈
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取 【保证100%免费
】
👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享](安全链接,放心点击)