notice:本文仅针对Linux环境(Ubuntu16.04)
part1
1 使用Anaconda搭建python环境
1.1 Linux安装Anaconda
在Linux环境下使用Anaconda搭建python环境超级简单,首先需要下载Anaconda*.sh安装文件,在文件当前目录下打开终端执行:
./Anaconda*.sh
在安装过程中会出现设定安装目录和设置环境变量的提醒,默认大法好!
1.2 搭建python环境
之所以使用Anaconda搭建python环境,好处主要有两点:可以便捷地获取绝大部分的包;可以为每一个项目搭建一个虚拟环境,避免各种冲突。
在安装Anaconda之后,会默认建立一个python基础环境,这个python基础环境也会成为系统的python环境。对于项目开发,个人还是建议使用虚拟环境,终端执行:
conda create -n env_name python=3.6
其中env_name就是新建的虚拟环境,可以指定python的版本,这里是3.6
1.3 conda常用命令
conda info #可查看版本、下载源等信息
conda list #查看当前python环境下的包列表
conda env list #查看虚拟环境列表
source activate env_name #激活指定虚拟环境
source deactivate env_name #退出指定虚拟环境
conda install numpy=1.14 #在当前python环境下,安装numpy包,可指定版本
conda update numpy #在当前python环境下,更新numpy包
conda remove numpy #在当前python环境下,删除numpy包
2 Anaconda的环境变量设置
其实上一啪已经说明了在安装Anaconda的时候默认设置了Anaconda的系统环境变量,如下查看:
sudo gedit ~/.bashrc
在文件底部可以看到:
#added by Anaconda3 installer
export PATH="/home/osea/anaconda3/bin:$PATH"
3 python变量
3.1 什么是变量
变量是用标识符命名的存储单元的地址,是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。
3.2 变量命名规则
-
变量标示符可以由字母、下划线和数字组成
-
不能以数字开头
-
不能与关键字重名
4 字符串方法
字符串很简单,但不是几句话能说完的。挑几个方法看看。
str1 = ’heLlo‘
str2 = 'WOrLD'
str3 = '123Hello, World,321'
str4 = ’ Hello, World ‘
print(str1.upper()) #转大写
print(str2.lower()) #转小写
print(str1.swapcase()) #大小写互换
print(str1.capitalize()) #首字母大写
print(str1.capitalize() + ' ' + str2.capitalize()) #字符串拼接
print(str3.strip()) #移除字符串头尾指定字符(序列)
print(str4.strip()) #移除字符串头尾空白
结果:
HELLO
world
HElLo
Hello
Hello World
Hello, World
Hello, World
5 基本转义字符和格式化字符
5.1 转义字符
在需要在字符中使用特殊字符时,python用反斜杠\
转义字符。示例如下:
print('AB\
... CD') #续行符
print('-----------------------')
print('\'单引号\'', '\"双引号\"') #单引号,双引号
print('-----------------------')
print('AAA\bAAA') #退格
print('-----------------------')
print('AAA\000AAA') #空
print('-----------------------')
print('AAA\nAAA') #换行
print('-----------------------')
print('AAA\vAAA') #纵向制表
print('-----------------------')
print('AAA\tAAA') #横向制表
print('-----------------------')
print('AAA\rAAA') #回车,后面的内容就失效了
结果如下:
ABCD
-----------------------
'单引号' "双引号"
-----------------------
AAAAA
-----------------------
AAAAAA
-----------------------
AAA
AAA
-----------------------
AAA
AAA
-----------------------
AAA AAA
-----------------------
AAA
5.2 格式化字符
python字符串格式化的基本方法是类C风格的,示例如下:
print('我叫%s, 今年%u岁。这个学期考试成绩还不错,全%c。我昨天跑了个代码,迭代了%d次,这个数用科学计数法是%E,化为八进制是%o,化为十六进制是%x,化为浮点数%f是没有意义的!'%('小明',24,'A',10000,10000,10000,10000,10000))
结果如下:
我叫小明, 今年24岁。这个学期考试成绩还不错,全A。我昨天跑了个代码,迭代了10000次,这个数用科学计数法是1.000000E+04,化为八进制是23420,化为十六进制是2710,化为浮点数10000.000000是没有意义的!
6 整数与浮点数
python其实有三种数字类型:
- 整型
- 浮点型
- 负数
整型个浮点型都有正负,一般整型可用十六进制、八进制表示:
num_x = 0xAB
num_o = 0o12
print(num_x)
print(num_o)
int(5/2)
float(4/2)
结果如下:
171
10
2
2
7 注释
# 单行注释
'''
单引号多行注释1line
单引号多行注释2line
单引号多行注释3line
'''
"""
双引号多行注释1line
双引号多行注释2line
双引号多行注释3line
"""
print('Hello, World')
结果如下:
Hello, World
Part2
1 列表数据类型
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
List = [1, 'A', "Hello"]
2 列表的增删查改
color_list = ['yellow', 'blue', 'green', 'red']
print('org:',color_list)
color_list.append('pink') #增
print('增:',color_list)
color_list.extend(['white', 'gray']) #扩增
print('扩增:',color_list)
color_list.insert(0,'purple') #指定索引增加
print('指定索引增加:',color_list)
color_list.pop() #删
print('删:',color_list)
'pink' in color_list #查
print('查:',color_list)
color_list[0] = 'black' #改
print('改:',color_list)
结果如下:
['yellow', 'blue', 'green', 'red']
增: ['yellow', 'blue', 'green', 'red', 'pink']
扩增: ['yellow', 'blue', 'green', 'red', 'pink', 'white', 'gray']
指定索引增加: ['purple', 'yellow', 'blue', 'green', 'red', 'pink', 'white', 'gray']
删: ['purple', 'yellow', 'blue', 'green', 'red', 'pink', 'white']
查: ['purple', 'yellow', 'blue', 'green', 'red', 'pink', 'white']
改: ['black', 'yellow', 'blue', 'green', 'red', 'pink', 'white']
3 比较sorted和sort
两点不同:
- sort()方法为Python list内置,sorted()方法为python全局内置
- sort()方法更改原列表排序,sorted()方法对可迭代的序列排序生成新的序列
示例如下:
a = [3,2,5,1,4]
b = sorted(a)
print(a)
print(b)
print('-----------------')
a.sort()
print(a)
结果如下:
[3,2,5,1,4]
[1,2,3,4,5]
-----------------
[1,2,3,4,5]
4 列表方法
以上已经涉及部分列表方法,列表的reverse()方法用于反向列表中元素:
a = [2,3,1,4,5]
a.reverse()
print(a)
结果如下:
[5,4,1,3,2]
sort()中的key参数用来指定一个函数,此函数将在每个元素比较前被调用
lst = [['a',1],['b',0],['c',3]]
lst.sort(key = lambda x:x[1])
print(lst)
结果如下:
[['b', 0], ['a', 1], ['c', 3]]
5 遍历列表
lst = ['A', 'B', 'C', 'D', 'E']
for x in lst:
print(x)
结果如下:
A
B
C
D
E
6 创建、解析列表
lst1 = list(range(10)) #range创建列表
print(lst1)
lst2 = ['A', 'B', 'C', 'D', 'E']
#range解析列表
for i in range(len(lst2)):
print(lst[i])
结果如下:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A
B
C
D
E
7 切片
lst = ['A', 'B', 'C', 'D', 'E']
print(lst[1:3]) #不包含末元素
print(lst[:3]) #从头开始
print(lst[3:]) #直至末元素
print(lst[-2]) #倒数第二个
print(lst[::2]) #给个步长
结果如下:
['B', 'C']
['A', 'B', 'C']
['D', 'E']
D
['A', 'C', 'E']