Python学习week2-python介绍与pyenv安装

一、python简介及python环境安装

1.一、python的语言类型

(1)pyhton是一种强类型的,动态语言;java

  强类型语言:不一样数据类型之间的操做,必须进行强制类型转换才能操做,例如:java,python等node

  弱类型语言:能够进行不一样数据类型之间操做,解释器会进行隐私转换,例如:JScript等python

print('a'+1) 
==> 运行报错
'''
TypeError: Can't convert 'int' object to str implicitly
'''

print('a'+str(1)) 
==>a+1

(2)什么是动态语言?静态语言?linux

  动态语言简单的理解为:在编译前不须要定义变量的数据类型,例如 :a=2,直接能使用a;优势:便于使用;缺点:不严谨;git

  静态语言:在编译前必事先定义变量类型,典型的语言为:java,定义变量 int a=2;github

(3)语言类型分类图:web

1.二、冯诺依曼体系

 计算机由五大部分组成:算法

(1)输入设备:常见的例如键盘鼠标等;sql

(2)寄存器:用来存放数据和程序的地方;shell

(3)运算器:运算算术运算和逻辑运算;

(4)控制器:主要控制程序的运行;

(5)输出设备:常见的例如各类显示设备;

冯诺依曼主要提出了0和1二进制做为计算机的控制信号,给将来计算机发展提供了方向;(我的理解)

1.三、程序是什么?

  程序=算法+数据结构

   数据结构:数据在计算机系统中的类型和组织结构;

   算法:简单理解为处理数据的方式;

1.四、原码,反码和补码

(1)原码:所谓的原码其实就是符号位加上数字的二进制表示;(符号位通常为最高位,0表示正数,1表示负数);方便人类识别》

 7的原码:  0000 0111
-7的原码: 1000 0111

(2)反码:正数的反码与原码相同;负数的反码,符号位不变,其余位按位取反;

-7的原码: 1000 0111
-7的反码: 1111 1000

(3)补码:计算机内存中表示数据都是经过补码的形式表示的,其中正数的补码与原码相同;负数的补码则为在反码的基础上加1;

+7的原码:0000 0111 ==> 反码 0000 0111 ==> 补码 0000 0111
-7的原码:1000 0111 ==> 反码 1111 1000 == >补码 1111 1001

 (4)运算练习:计算5-1

5的反码:0000 0101
-1的原码:1000 0001 ==> 反码 1111 1110==>补码:1111 1111
# 计算机内部运算都经过反码计算
0000 0101
1111 1111
       +1
0000 0100 符号位溢出,则取值为 0000 0100结果为4 

总结:正数的原码,反码和补码都相同;负数的反码符号位不变,其余位按位取反,补码在反码的基础上加1;

1.五、pyenv

1.5.一、pyenv简介

 # pyenv:是一款python的多版本控制器,能经过virtualenv插件彻底隔离用户的python环境;

1.5.二、pyenv安装

(1)系统环境准备

 Centos6.10_x64

(2)安装过程

# 安装git

# yum install git -y

# 安装python编译环境

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

# 建立python用户

# useradd python
# echo python | passwd --stdin python

# 切换python用户登陆系统,并安装pyenv

# curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
###pyenv-installer 一个pyenv安装的shell脚本###

# 若是出现“curl: (35) SSL connect error ”,则是nss版本低形成的,更新nss便可;

# yum update nss

# 修改python用户的环境变量

# vim ~/.bash_profile

export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

# souce ~/.bash_profile

1.5.三、pyenv的使用

# python版本及patch路径

$ python --version
$ echo $PATH

# pyenv命令

install命令
$ pyenv install --list   //列出全部可用版本
$ pyenv install 3.5.3   //在线安装指定python版本,在线安装因为网速限制可能比较慢,推荐经过cache的方式安装;
# cache方式安装
1)先在~/.pyenv目录下,新建cache目录,放入下载好的待安装文件,因为不肯定安装时候到底须要哪一个具体文件,最好将xz,gz,tgz等文件都放到cache目录中
2)执行$ pyenv install 3.5.3 $ pyenv versions
//显示已有版本

1.5.四、pyenv的python多版本控制

1 $ pyenv version  //显示当前python版本
2 $ pyenv versions  //显示当前系统全部可用的pyton版本,*表示当前生效版本
3 
4 $ pyenv global 3.5.3 // 表示当前用户全局生效
5 $ pyenv shell 3.5.3 // 当前shell生效
6 $ pyenv local 3.5.3 // 当前目录及子目录生效
# 取消设置为
pyenv local --unset

1.5.五、virltualenv虚拟环境设置

# 为何要使用虚拟环境?

由于刚才使用的python环境都为一个公共的空间,若是多个项目同时开发,而且使用的不一样的python版本开发,或者使用不一样版本的python进行部署运行等均可能会照成冲突,最好的解决方法为:

每一个项目都是用单独独立的环境中,此时virltualenv是一种比较好的解决方案;

# viltualenv插件目录 /home/python/.pyenv/plugins

# 创建虚拟环境

$ pyenv virtualenv 3.5.3 mag353 // 至关于创建一个以3.5.3为基础的mag353环境

# 查看可用版本

# 具体使用实例:

[python@node ~]$ mkdir -p magedu/projects/web
[python@node ~]$ cd magedu/projects/web/
[python@node web]$ pyenv local mag353
(mag353) [python@node web]$ cd ..
[python@node projects]$ cd web/
(mag353) [python@node web]$

1.六、pip的使用

# pip是python 的包管理工具,和rhel的yum工具相似,也须要配置源站:

linux系统下pip配置:
$ mkdir ~/.pip
$ vim ~/.pip/pip.conf
###配置以下###
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com

windows则在登陆用户的家目录建立一个pip目录,而后再建立内容和上面同样的pip.ini文件便可;

1.七、pyenv导出与导入包

# 虚拟环境的好处就在于和其余项目运行环境隔离。每个独立的环境均可以使用pip命令导出已经安装的包,在另
一个环境中安装这些包 ;

1 (mag353) [python@node web]$ pip freeze > requirement   
//导出包文件名,内容例如:
backcall==0.1.0
bleach==2.1.3
decorator==4.3.0
2 (mag353) [python@node web]$ mkdir ~/magedu/projects/pro1 3 (mag353) [python@node web]$ cd ~/magedu/projects/pro1 4 [python@node pro1]$ pyenv install --list 5 [python@node pro1]$ pyenv install 3.6.4 6 [python@node pro1]$ pyenv virtualenv 3.6.4 mag364 7 [python@node pro1]$ pyenv local mag364 8 (mag364) [python@node pro1]$ mv ../web/requirement ./ 9 (mag364) [python@node pro1]$ pip install -r requirement

二、python基础语法

2.一、python文件执行过程

(1)先启动python解释器;

(2)python解释器把文件从硬盘读取到内存;

(3)读入内存后,Python解释器解释执行;

2.二、python变量

(1)定义一个变量的3个特征:

1 a=10       # 定义变量a
2 id(a)      # 先理解为在内存的地址
3 type(a)    # 变量类型
4 value      # 变量值,10

总结:id相同,则type和value一定相同;value相同,则type相同,id未必相同;python中的变量名没有存值的功能,变量名与变量值只是一种绑定关系;

(2)变量的定义规范

  1)变量名只能是字母,数字或者下划线的任意组合;

  2)变量名的第一个字符不能以数字开头;

  3)python的关键字不能声明为变量名;

  4)定义方式:最好是有具体含义,一看能明白的驼峰体;

2.三、关于python的注释

# 代码注释分为:单行注释和多行注释;单行注释用#表示,多行注释用''' '''来表示;

# 写注释原则:不用所有都写注释,只须要在本身以为很差理解的代码加上注释便可;

# 关于文件开头:

#!/usr/bin/env python    ==> 声明解释器;
# -*- coding:utf-8 -*-    ==> 声明编码格式;

2.四、python的基本数据类型

(1)数字类型:int和float

(2)字符串:在python中加了引号就表示为字符串类型str,注意:python没有单个字符类型;

(3)列表:有序,能够存放多个值,而且每一个值可使任意数据类型;

(4)字典:无序,采用key:value方式存储,能够存放多个值;每一个key必须是不可变数据类型,每一个value可使任意数据类型;

(5)布尔类型:True和False;注意:全部数据类型都自带布尔值,其中None、0、和空三种状况为False;其他为True;

2.五、运算符

2.5.一、算数运算符

+      加法
-      减法
*      乘法
/      除法
**     幂运算
//     取整除,返回商的正数部分;例如:9//2 = 4 , 50021 // 10000 =5

2.5.二、位运算

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011  

移位操做:
>> 左移位:将操做数的二进制码总体左移指定位数,左移以后的空使用“0”来补位;值变大,幂运算;
>> 右移位:将操做数的二进制码总体右移指定位数,右移以后的空使用“符号位”(正数为“0”,负数为“1”)来补位;值变小12>>2 ,0000 1100 ==> 0000 0011=4
常见的移位操做:
1) m*2^n :左移是乘以2的幂,例如:2^3 ==> 1<<3 ==> 1*2^3=8

2.5.三、逻辑运算

# 与或非,and or not

# 短路运算:

  and:若是第一个表达式为False,后面的表达式则不须要运算,结果必定为False;

  or:若是第一个表达式为True,后面的表达式不须要运算,结果必定为True;

2.5.四、运算符的优先级

# 算数运算符 > 位运算符 > 身份运算符 > 成员运算符 > 逻辑运算符;记不住顺序用括号来区分优先级;

2.5.五、表达式expression

# 表达式由:数字、符号、括号和变量等的组合

  算数表达式

  逻辑表达式

  赋值表达式

    在python中,赋值即定义;

2.六、程序控制语句

2.6.一、单分支

2.6.二、多分支

2.6.三、循环语句

2.6.四、循环控制continue与break

相关文章
相关标签/搜索