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

1、python简介及python环境安装

1.1、python的语言类型

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

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

  弱类型语言:可以进行不同数据类型之间操作,解释器会进行隐私转换,例如:JScript等

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

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

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

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

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

(3)语言类型分类图:

1.2、冯诺依曼体系

 计算机由五大部分组成:

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

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

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

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

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

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

1.3、程序是什么?

  程序=算法+数据结构

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

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

1.4、原码,反码和补码

(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.5、pyenv

1.5.1、pyenv简介

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

1.5.2、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.3、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.4、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.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.6、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.7、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

2、python基础语法

2.1、python文件执行过程

(1)先启动python解释器;

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

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

2.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.3、关于python的注释

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

# 写注释原则:不用全部都写注释,只需要在自己觉得不好理解的代码加上注释即可;

# 关于文件开头:

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

2.4、python的基本数据类型

(1)数字类型:int和float

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

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

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

(5)布尔类型:True和False;注意:所有数据类型都自带布尔值,其中None、0、和空三种情况为False;其余为True;

2.5、运算符

2.5.1、算数运算符

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

2.5.2、位运算

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.3、逻辑运算

# 与或非,and or not

# 短路运算:

  and:如果第一个表达式为False,后面的表达式则不需要运算,结果一定为False;

  or:如果第一个表达式为True,后面的表达式不需要运算,结果一定为True;

2.5.4、运算符的优先级

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

2.5.5、表达式expression

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

  算数表达式

  逻辑表达式

  赋值表达式

    在python中,赋值即定义;

2.6、程序控制语句

2.6.1、单分支

2.6.2、多分支

2.6.3、循环语句

2.6.4、循环控制continue与break

原文地址:https://www.cnblogs.com/soulgou123/p/9394913.html