Python笔记-1-学习方法、开发环境、计算机理论基础

学习方法

记录问题
总结知识

Python之禅:

The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one -- and preferably only one -- obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

工作方向:


Python笔记-1-学习方法、开发环境、计算机理论基础_第1张图片

Python笔记-1-学习方法、开发环境、计算机理论基础_第2张图片

Python笔记-1-学习方法、开发环境、计算机理论基础_第3张图片

千里之行,基于跬步
关注有价值的东西


开发环境

pyenv安装:

1.安装git
2.安装python编译依赖环境

$ yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel libffi-devel

3.创建python用户
4.配置yum源 更新包
5.安装pyenv

$ curl -L [https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer](https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer) | bash

6.添加环境变量+source

pyenv使用

install 查看能提供的版本
cache目录 本地安装块

global 设置全部版本

version当前版本
versions全部版本

shell 只影响当前会话
local 影响当前目录 子目录会继承 会引起包的冲突

虚拟环境解决包冲突

将任意版本衍生出虚拟版本 pyenv virtualenv 3.7.1 v_3.7.1
同样用local指定版本
那么虚拟版本的包在那个目录?
/home/wk/.pyenv/versions/3.7.1/lib/python3.7/site-packages 实际包目录*
/home/wk/.pyenv/versions/3.7.1_v/ lib/python3.7/site-packages
/home/wk/.pyenv/versions/3.7.1/envs/3.7.1_v/lib/python3.7/site-packages 虚拟包目录

pip 包安装管理

建立配置文件 ~/.pip/pip.conf
windows: ~/pip.ini

[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com

pip install XXX

导出包

pip freeze > require

部署包

pip install -r requie

离线安装

Python笔记-1-学习方法、开发环境、计算机理论基础_第4张图片
Python笔记-1-学习方法、开发环境、计算机理论基础_第5张图片

jupyter notebook

pycharm的使用


开发计算机理论基础

程序 :让计算机识别和执行的指令
冯诺依曼体系
寄存器与cpu同频率 多级缓存

Python笔记-1-学习方法、开发环境、计算机理论基础_第6张图片
image.png

计算机语言:人机交互

机器语言:
二进制序列-机器指令-指令的集合
汇编语言:
将二进制指令转换为助记符
低级语言:
面向机器,不通用
高级语言:
高级低级之间需要转换工具:编译器、解释器
编译语言:将源代码转换成目标机器的cpu指令集
C、C++ 本地编辑
解释语言:解释后转换成字节码,运行在虚拟机上,解释器执行中间代码
java、python、c#的源代码需要被解释器编译成中间代码(Bytecode),在虚拟机上运行

高级语言的发展:

非结构化

    编号或标签,子程序可以有多个入口和出口

    分支 循环 goto

结构化语言

    基本结构只允许唯一入口,唯一出口

    顺序、分支、循环、废弃goto

面向对象语言

    更加接近人类人类认知世界的方式,万物抽象成对象,对象间关系抽象成类和继承

    三要素:封装、继承、多态

函数式语言

    数学计算、并行处理

程序=算法+数据结构

数据是核心

数据结构是数据在计算机中的类型和组织方式

算法是处理数据的方式,有优劣

写程序难点:
理不清数据
搞不清数据方法
无法将数据设计转换成数据结构,无法将处理方法转换成算法
无法用设计范式来进行程序设计
世间程序皆有bug,但不会debug

Python解释器:

官方CPython

C语言开发,最广泛

IPython

交互式功能增强的CPython

PyPy

Python写的Python解释器,JIT动态编译 时时编译 在运行期对字节码进行动态优化

JPython

Python源代码编译成Java字节码,跑在JVM上

IronPython

与Jython类似,运行在.Net平台上的解释器,Python代码被编译成.Net的字节码

你可能感兴趣的:(Python笔记-1-学习方法、开发环境、计算机理论基础)