语法入门
须知
- 课前预习
- 课上听讲
- 课后整理笔记,知识总结整理过程
要找到高效的学习方法 - 作业:
随堂练习
基础知识习题
进阶知识习题
项目实战编程 - 目标:
写20000行有效代码
Python
- Dropbox云服务
- Python哲学
>>>import this
Python之禅 - 应用领域:
人工智能
运维
脚本 - 版本:
2.x发展到了2.7
3.x发展到了3.8
https://pythonclock.org/2.x(python2.x版本的倒计时)
开发环境——Pyenv
Python多版本管理工具
https://github.com/pyenv/pyenv
pip包管理器
官方网站:https://pypi.org/
相关指令:
pip install
pip list
pip search keywords
pip help install
pip通用配置
$vim~/.pip/pip.conf #Linux下的文件放置位置
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
~/.pip/pip.ini #window的文件放置位置
详情见:https://developer.aliyun.com/mirror/pypi
如果有需要,可以使用其他镜像网站的源,如清华,中科院等
pip install redis ipython
pip install jupyter
pip -v #可查看pip包的版本
pip freeze >requirement #输出重命项,将获得屏幕结果输出到文件项上
pip install -r requirement
如果在安装过程中某个pip包无法安装可以到pip包库下载
然后用
pip install 这个包的地址+名字 #安装指令
IPython Jupyter
Ipython
增强的Python Shell
Jupyter
会保存结果
编程基础
-
现代计算机
图灵
冯·诺依曼
数学计算机之父 -
程序
一组能让计算机识别和执行的指令 -
电子计算机
能够执行程序的机器
冯·诺依曼体系
优化运算器与I/O设备
CPU->寄存器(在CPU上)->缓存Cache(在CPU上)->内存->磁盘
——>速度逐渐递减,但是容量逐渐变大
总线(bus)
编程基础
- 计算机语言
人与计算机之间交互的语言 - 机器语言
一定位数组成的二进制,为机器指令 - 汇编语言
- 用一些助记符号替代机器指令
- 汇编语言写好的程序需要汇编程序转换成机器指令 - 低级语言
面向机器的语言,包括机器语言,汇编语言(不通用) - 高级语言
- 接近自然语言和数学语言的计算机语言
- 高级语言首先要书写程序,通过编译程序把源程序转换成机器语言的原理
- C,C++等语言的源代码需要本地编译
- Java,Python,C#的源代码需要解释器编译成中间代码(Bytecode)在虚拟机上运行
- 每种技术都有适用点
高级语言的发展
- 非结构化语言
- 编号或标签,GOTO,子程序可以有多个入口和出口
- 有分支和循环 - 结构化语言
- 任何基本结构只允许是唯一入口和唯一出口
- 有顺序、分支、循环,废弃GOTO - 面向对象语言
- 更加接近人类的认知,将世界万物抽象成对象,对象间关系抽象成类和对象
- 有封装、继承、多态 - 函数式语言
- 古老的编程范式,应用在数学计算、并行处理的场景
- 函数是“一等公民”,高阶函数(不太了解)
程序Program
- 程序
- 程序 = 算法 + 数据结构
- 数据是一切程序的核心
- 数据结构是数据在计算机中的数据类型和组织方式
- 算法是处理数据的方式,算法有优劣之分 - 难点
- 理不清数据
- 搞不清处理方法
- 无法把数据设计转换成数据结构
- 无法把处理方法转换成算法
- 无法用设计范式来进行程序设计
- 会写bug,不会debug
Python解释器
- 官方CPython
C语言开发,最广泛的Python解释器 - IPython
一个交互式,功能增强的CPython - PyPy
Python语言写到Python解释器,JIT(Just in Time)技术,动态编译Python代码 - Jython
Python的源代码编成Java的字节码,跑在JVM上 - IronPython
与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码