Python入门导论

为什么学Pyhton

历史
  • 诞生于1991年

  • 为什么发明PythonC语言开发效率太低,而shell只是一种胶水语言。作者的目的:创建一种Cshell之间,功能能够全面,易学易用,可拓展的语言。

  • 当前主流版本:2.7/3.6

蓬勃发展
  • 伴随着人工智能的发展,Python成了标配语言
    人工智能
  • 数据处理,科学计算
  • map/reducePySpark
  • XGBoostTensorFlowGluonPyTouchCaffe
    工业界应用
  • Dropbox:美国最大的在线云存储网站,每天处理10亿文件上传下载
  • Instagram:美国最大的图片分享网站,每天超过3千万张照片被分享
  • Redhat:世界上最流行的Linux发行版本中的yum包管理工具就是用Python开发的
  • 豆瓣:公司几乎所有的业务均是通过Python开发的
  • 知乎:
  • 除上述之外,还有盛大、网易、阿里、土豆、新浪、果壳等公司,都在使用Python完成各种各样的任务
    现状
  • 最新的TIOBE排行榜,Python赶超PHP占据第五,Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
  • 2017 GitHubrepo中,Python排名第二
    工作岗位
  • 数据分析
  • 人工智能
  • Python开发工程师
  • Python高级工程师
  • Python自动化测试、Python游戏开发工程师、SEO工程师、Linux运维工程师等…
    优点
  • 简单,容易学习
  • 免费开源
  • 高级语言,细节隐藏
  • 解释性,可移植。一次编写,导出运行。
  • 面向对象
  • 可扩展。可嵌入C/C++,或者使用C/C++提供性能
  • 扩展库
    缺点
  • 慢了一点,多吃了一点内存

如何学好编程

基础部分
  • 常用关键字
    • 常量
      • True
      • False
      • None
    • 对象和容器
      • class
      • import
      • from
      • del
    • 判断
      • if
      • elif
      • else
      • is
      • in
      • assert
    • 循环
      • for
      • while
      • continue
      • break
      • pass
    • 异常
      • raise
      • try
      • except
      • finally
      • as
  • 常用运算符
    • 算术运算符
      • +-*/
      • %
      • **
      • //
    • 比较运算
      • >, >=
      • <, <=
      • ==
      • !=
    • 逻辑运算
      • and
      • or
      • not
    • 位运算
      • >>
      • <<
      • &
      • |
      • ^
  • 基本语法
    • 基本数据类型
    • 对象的定义和声明
    • 循环和判断:for,foreach,if,while,do…
    • 逻辑运算
    • 位运算
  • 数据结构
    • 数组
    • 字符串
    • 系统标准库自带的数据结构,如链表,哈希表(字典)
    • 如何实现常用数据结构:链表,堆栈,二叉树…
  • 输入输出
    • 标准输入输出:print,echo,input…
    • 文件读写:文本/二进制
    • 格式化字符串
  • 异常处理
    • 抛出和捕获异常:try/catch,try/except…
    • 异常和错误的区别和应用场合
  • 缩进
  • 注释
  • 多行代码表示
  • 中文支持
    进阶提高
  • 数据库访问【业务系统,90%都是做的代码去执行SQL,对数据库的增删改查】
    • 建立连接
    • 执行SQL查询
    • 读取查询记录
    • 修改/插入/删除数据
  • 面向对象
    • 继承
    • 多态
    • 静态变量和方法
  • 工程化
    • 常用框架:Flask,Django,gRPC,Thrift等等
    • 单元测试
    • 日志,监控
  • 其它
    • 多线程/进程
    • 匿名函数
    • 语言相关特定知识
  • 常用算法
    • 分治
    • 贪心
    • 动态规划
      突破舒适区
不要自我设限
  • 我肯定不行
  • 我可能不行
  • 我可能行
  • 我肯定行
Prictice makes perfect
  • WATCH
  • DO
  • READ