为什么觉得模块一好烦,简单粗暴的直接讲python不好吗?

近期多个新学员加入我组,在学习模块一时,我发现很多同学对虚拟环境的学习很烦躁,不认真。
因此萌发了写这篇长文的想法,如果你正在学习模块一(或者对于虚拟环境操作不熟练),请认真花几分钟时间读完
以下纯手打,个人观点,不代表8哥老师,不喜勿喷

明确几个问题

  • 1.你为什么学习python?为什么现在很多人在天花乱坠的说python强大,无所不能?
  • 2.Anconda是干啥的?为毛老师要讲这么多虚拟环境,简单粗暴的开始python语法不好吗?
  • 3.其他语言学习直接下载一个语言相关的编译器、解释器,就开始语法了,其他教程直接就开始讲数据类型,控制流程等语法了,为啥这个课程这么烦?

    以上灵魂三问,请大家思考1分钟。下面插个图,接着为您解惑

模块一:解惑虚拟环境.md - 图1

解惑1:我为什么学python?python为什么强大?

  • python的学习,主要因为它语法简单,开源,在这几年运用迅速(虽然今年以来IT挺寒冬的)
  • python可以做什么(包含以下但不仅仅限于以下):
    • web应用开发
    • 网络爬虫和数据分析
    • AI人工智能
    • 自动化运维
    • UI桌面程序开发
  • 明确自己的学习目的,做事会事半功倍,专攻一个方向才能称为王者

  • python为什么被说的神乎其神的强大?因为它开源(python源代码是开源的)的特性,以及语法的简单,造就了良好的第三方包生态(其他语言称作插件的东西)。
  • 众多的开发者、组织、社区、基金会在维护各种方面的第三方包,因此,python能做很多事情,而且是当你安装这些第三方包后可以快速的完成很多事情
  • 一些些常用的python包:
    • 爬虫:scrapy爬虫框架,requests轻量级请求处理模块、beatufilsoup等
    • 数据相关:numpy数据矩阵、pandas数据清洗、jieba词频分析
    • 自动化测试(selenium自动化测试框架)
    • 数据可视化(matplotlib)
    • web相关:flask轻量web开发框架、Django全能web框架 、tornado
    • UI界面程序相关:pyQT tkinter
    • 基于python开发的云计算OpenStack
    • 数据库相关:pymongo pymysql sqlalchemy
  • 还有很多的包让python变得简单、易用、强大,慢慢大家会有所接触

解惑2:Anconda是干啥的?为毛老师要讲这么多虚拟环境,简单粗暴的开始python语法不好吗?

  • 这里,为了让大家更容易理解,我就说的粗暴一些
  • 首先,Anconda大家可以理解为:虚拟环境和第三方包管理集成工具
  • 何一种编程语言,都有基础库,和插件(或称第三方库)如C语言,当你使用一些科学计算时,需要在头部写<match.h>(不知道这个引用有没有对哈,C大神勿喷)
  • 在python中,也是一样,当你安装一个版本的python解释器,它内部会有这个版本支持的官方库(我们通常成为内置库或者内置方法/函数)
  • 因为python项目需要很多第三方包的支持,而这些包都有对应支持的Python版本,而有的包又需要其他第三方包的支持。
  • 如果你仅在计算机上使用一个python环境(如,到python官网上直接下载一个安装到电脑上);当你学习越来越多的python知识,就会用到越多的包,这样,不可避免的,就像你在就像windows装了很多的程序;你的这个python环境会越来越复杂,难用。而不太懂window底层的你,又不知道该如何删掉一些无用的东西,或者一顿各种管家清理后电脑崩溃了=》重装。

因此,python开发者都会使用虚拟环境和包管理工具来做开发环境的搭建

  • 常用的虚拟环境管理器:anconda和virtualenv
  • 常用的包管理工具:pip

    使用anconda,项目用到什么第三方包就只装什么,互不污染,互不冲突

    然后,我们来说说Anconda

  • anconda是什么?

    (玩过虚拟机的你可以这么理解)
  • 在window上安装vm、vbox等程序,然后,你可以创建各种虚拟机;虚拟机坏了,你可以直接用快照进行恢复,或者直接删除,重建一个。

  • anconda就可以想象为一个虚拟机管理程序(只不过这个虚拟机是python的虚拟环境),新建的环境,只安装需要的包,要做其他项目,新建一个环境再安装需要的包。虚拟机(python的虚拟环境)之间并不会有任何冲突和相互污染。

    (没玩过虚拟机的你可以这么理解)
  • 公司让我做一份报告,这份报告分为5个大部分,我将其拆分为5个word文档,每个文档以各自标题命名

  • 这五个部分就相当于5个虚拟环境,我将这五个部分发给各自部门去写,而我就是anconda,负责管理这5个文档;每个文档在各自部门编制(他们只需要做自己的东西),如果写的不好,我直接找负责人即可(重写、重构、修改)

    注意
  • base环境是作为copy基础的,也就是纯净版快照,所以,一般我们不动他

  • 新建的环境坏了,再创建一个使用pip安装用到的包就好了,或者之前你已经用pip导出了包列表,直接导入新环境即可。
  • 重要的思考题(掌握):conda install 和 pip install有什么区别?适用场景?

    清华镜像不能用的看群公告


解惑3:为什么不简单粗暴的开始讲语法?

  • 如果你认真阅读了上面的内容,这部分你应该有了自己的想法?
  • 很多同学,开始学习后,兴趣百倍,各种激动,想着尽快学完进入模块二,开始语法。
    当然,你可以跳过这步,直接去学python语法,很多培训课程也是直接就说python语法的,简单粗暴的教你在官网上下载一个python,然后就开始写代码。

    到后期,越来越多的第三方包造成python环境的污染,会出现一堆奇奇怪怪的错误,谁也解决不了。

    简单粗暴是好,迅速提起兴趣,迅速拉学生来学习?只想着挣学费吗?

    因此,请重视模块一,不超过20个单词的命令,你记不住就抄下来。这部分必须掌握!

题外话:论提问的方式?

  • 老师,在吗?(截图一个自己写的函数一部分过来)我这个怎么运行不了,报错了。
    • 老师不是神,函数是你自定义的,我猜不到你前后怎么写的,要截图请截全或者发文件。
    • 没有必要问我在不在,我在上班可能不会及时回复,晚上回到家打开QQ也会看到你的留言,会给你解答的。不要着急
  • 老师,你看我报错啦(截图一个报错信息过来)。

    • 学习编程,一些基本单词你应该有所了解,就算不了解,你将错误信息贴到百度,基本都有说明。很多同学会在初期贴图询问如:缩进错误、类型错误、下标越界等,其实你只要思考一下,自己是能解决的。
      线上学习,在于培养自学能力和自行debug的能力,遇到问题先自己查找解决方案,再找老师
  • 老师不可能跟你一辈子,每个bug都给你解决,要学会遇错先查再问

  • 搜索优先级:官方网站(装一个翻译插件,你能看懂的)、谷歌(需要有VPN协助)、维基百科、知乎、必应国际版。(尽量舍弃某度,太流氓了)

    正确的提问方式:
  • 老师,我在写XX(描述清楚你的需求)时,遇到XX(描述清楚你是需求的哪部分问题)问题,报错如下:xxxxerror:line[xx].....................;报错前后代码和调用是这样(截图相关上下文,或者给我你写的文件);我尝试过XXXX(描述你做过哪些处理),但没有起作用。