python是垃圾?
最近一段时间里的一次闲聊中提到相关的话题时,他不经意间提起了Python话题,他的回应几乎误以为正常对话变成了激烈的辩论
他向我诉苦:Python真是一堆狗屎!让我瞬间石化,这明显是在针对我啊!难道还要继续打嘴仗?

我认为这是想要加入战斗语言的打算。我没有立即反驳他,而是想弄清楚原因:原来原本这位老兄已经在学习Python2已有两年,每天利用业余时间深入研究Python,然而在Python基础阶段却感到迷茫困惑,并未获得实质性的提升,这才得出了一个结论:Python programming language is not particularly useful.
这是一个中途投入Python学习后放弃的案例,在这里想强调的是:两年下来却收效甚微的原因在于——你的学习方法确实存在问题。
也就是说其实没有学会,跟python是不是垃圾没有一点关系,关键是看人。
因此,在这里面对像这位老兄这样学习Python效果不佳的情况。无需抱怨。首先要找出原因。然后采取行动解决问题才是关键。
明确学习目标,选择方向
准备开始学习python的时候,在开始学习之前就要深入了解其应用领域。如今主要集中在以下几个方面:
- web开发
- 网络爬虫
- 数据分析
- 人工智能
- 自动化运维与自动化测试等
了解清楚之后,在深入了解的基础上结合自身的需求与特点确定学习的重点,并提升所需的专业能力
制定Python学习计划(100天)
学习目录:
Day 01-15 - 学习Python编程基础
Day 16-20 - 掌握Python高级功能
Day 21-30 - 初步掌握Web开发技术
Day 31-35 - 深入学习Linux操作系统
Day 36-40 - 熟悉数据库基本概念与应用
Day 41-45 - 实战Flask框架技术
Day 46-50 - 掌握Tornado框架应用
Day 51-60 - 学习网络爬虫技术实现
Day 61-75 - 进行数据挖掘与分析实践
Day76-90 -(数据)分析与机器学习技术应用
Day91-100 – 参与团队项目开发实践
最为重要的就是基础要学好,地基打牢固,这里就说一下基础怎么学呢?
Day 01~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循环来说,在其基础架构中涵盖了多种功能和特性。在范围类型的for循环中,默认会执行一系列操作直至索引超出范围。当处理复杂的任务时,在循环内部嵌入分支结构能够更好地控制流程并响应不同条件的变化。同时,在嵌套使用多个for循环时需要注意层次关系以避免逻辑混乱。此外,在特定情况下如提前终止某个过程则需要设计相应的终止机制以确保程序运行效率和稳定性。
应用案例 - 1至100的累加 / 素性判定 / 数字猜谜游戏 / 九九乘法表 / 生成三角形图形模式 / TheMonkeyEatingPeaches(猴子吃桃)/ Algorithmique'sHundredDollarsBuyHundredChickensProblem(百钱买百鸡)
Day05 - 构造程序逻辑
基础练习 - 水仙花数 / 完美数 / 五人分鱼 / Fibonacci数列 / 回文素数
综合练习 - Craps赌博游戏
Day06 - 函数和模块的使用
函数的作用 - 代码的坏味道 / 用函数封装功能模块
定义函数 - def语句 / 函数名 / 参数列表 / return语句 / 调用自定义函数
调用函数 - Python内置函数 / 导入模块和函数
函数的参数 - 默认参数 / 可变参数 / 关键字参数 / 命名关键字参数
函数的返回值 - 没有返回值 / 返回单个值 / 返回多个值
领域能够分为以下几种类型:
1. 局部领域
2. 嵌套型领域
3. 全局领域
4. 内置领域
5. 与相关领域的关键术语
通过模块来实现功能 - 模块的作用或功能 / 根据需求创建特定的管理函数 / 当使用相同名称的文件时会出现什么情况(同一文件名下的多个文件或同一目录下的不同文件)
Day07 - 字符串和常用数据结构
字符串的使用 - 计算长度 / 下标运算 / 切片 / 常用方法
列表基本操作包括:创建一个列表;使用索引访问特定项;发生越界索引时需谨慎处理;在末尾追加新项;移除指定位置的项;更新某个位置的值;执行切片操作获取子序列;遍历整个列表结构进行操作。
列表常用操作 - 连接 / 复制(复制元素和复制数组) / 长度 / 排序 / 倒转 / 查找
生成列表 - 使用range创建数字列表 / 生成表达式 / 生成器
元组的使用 - 定义元组 / 使用元组中的值 / 修改元组变量 / 元组和列表转换
集合基本用法 - 集合和列表的区别 / 创建集合 / 添加元素 / 删除元素 / 清空
集合常用操作 - 交集 / 并集 / 差集 / 对称差 / 子集 / 超集
字典的基本用法 - 字典的特点 / 创建字典 / 添加元素 / 删除元素 / 取值 / 清空
字典常用操作 - keys()方法 / values()方法 / items()方法 / setdefault()方法
基础功训练 - 动态效果演示 / 数组中寻找最大值的操作 / 计算学生考试平均分的过程 / 斐波那契数列 / 帕斯卡三角形
综合案例 - 双色球选号 / 井字棋
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模块进行数据流管理
学习正则表达式的基础知识 - 探索正则表达式的功能 / 元字符 / 转义字符 / 量词用于描述元素出现的次数 / 分组用于定义子模式的集合 / 零宽断言 / 勉余匹配与非 Lazy 匹配策略 - 利用re模块进行各种操作(如匹配、搜索、替换和捕获)
通过正则表达式应用re模块中的compile()函数来实现group与groups的方法匹配;借助match()功能完成特定模式的搜索;使用findall()找出所有匹配项,并结合finditer()逐一处理;运用sub()进行字符串替换以及subn()执行复杂替换操作;最后调用split()将字符串按指定分隔符分割开来以获取所需部分
应用案例 - 使用正则表达式验证输入的字符串
Day13 - 进程和线程
进程和线程的概念 - 什么是进程 / 什么是线程 / 多线程的应用场景
使用进程 - fork函数 / multiprocessing模块 / 进程池 / 进程间通信
采用多线程系统进行软件开发时,请注意以下组件的配置:包括以下组件:thread模块、threading模块、Thread类、Lock类和Condition类等关键组成部分;其中较为复杂的组织架构中通常会设计专门的线程池来进行资源管理与任务调度
Day14 - 网络编程入门和网络应用开发
计算机网络基础 - 计算机网络历史沿革与 TCP/IP 模型
网络应用模式 - “客户端-服务器”模式 / “浏览器-服务器”模式
通过HTTP协议实现网络资源的访问 - 网络API深入解析 / 获取URL地址 / Python requests库模块 / 解析存储于JSON格式中的数据内容
Python网络编程领域中涉及套接字的基本概念是怎样的?在Python编程中如何实现这一概念的具体操作?主要依赖于哪些核心组件?其中最基础的是什么?如何通过代码实现这些功能?在实际应用中有哪些典型场景?
电子信箱 - 简单邮件传输协议(SMTP)/邮局protocol for email(POP3)/互联网邮件访问协议(IMAP)/ Python模块:smtplib/ Python库:poplib/ Python库:imaplib
短信服务 - 调用短信服务网关
Day15 - 图像和文档处理
用Pillow处理图片 - 图片读写 / 图片合成 / 几何变换 / 色彩转换 / 滤镜效果
读写Word文档 - 文本内容的处理 / 段落 / 页眉和页脚 / 样式的处理
读写Excel文件 - xlrd模块 / xlwt模块
生成PDF文件 - pypdf2模块 / reportlab模块
现在就到这里了。实在太多了。如果有想要系统地深入学习Python的小伙伴,请在文章底部联系我。
接下来给大家分享一些学习技巧和资源。
我也打算对获取到的信息进行系统的整理和分类,并结合自身的学习过程中的逻辑思维模式进行优化。方便大家随时查阅。
对于学习和提升来说,务必要进行自我投资.切记哦!自已在职场中是最好的副业选择.
掌握 Python 无论是在求职就业还是在副业创业中都能带来不错的收益 因此学习 Python 必须搭配一个科学的学习规划
如果你有需要,在文章底部 拿高清和完整版的!

Python学习路线汇总
对Python各个方向的技术要点进行系统整理,并构建了各领域知识点的系统汇总。其主要用途在于方便你根据这些知识点查找相应的学习资源,并确保你在学习过程中能够做到较为全面地掌握相关知识。

Python视频合集
配套学习资源中提供的是通过观看配套学习视频来实现知识的有效吸收。在老师的引导下,在课程内容的基础上逐步深入思考和总结分析的方法论可以帮助我们更好地掌握知识体系。

精品Python学习书籍
当我在掌握了一定基础知识并具备独立思考能力后会去翻阅那些前辈整理的书籍和手写的笔记本这些笔记本系统地记录了他们对各项技术细节的独特见解这些见解具有独到之处并为我提供了全新的思考视角

实战案例
光学理论无显著价值。需要学会配合操作,并且亲自实践操作才能将所学知识应用到实践中。此时应设置相应的实战案例进行练习。

面试资料
学习Python的目的必然是为了获取高薪工作机会,在当前互联网行业竞争激烈的背景下掌握这项技术无疑能显著提升竞争力。这些面试题是由阿里巴巴、腾讯科技、字节跳动等一线互联网巨头精心挑选的最新考题,并由资深技术专家提供专业解析。通过完成这一套试题求职者将能够获得理想的工作机会


总结
对python怀有极端不满的人会认为它是无用之物。然而这种态度仅仅是因为缺乏技能,并非与它没有任何关联。实际上python是一个非常强大的工具,在掌握了基础操作后能够展现出令人惊叹的能力。
找准学习方向,定好适合自己的学习计划,绝对可以有所收获!
