Python基础 part one
1、环境搭建
1.1 anaconda环境配置
Anaconda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换,它包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等。
下载地址:https://www.anaconda.com
1.2 解释器
CPython:官方版本的解释器,是用C语言开发的,是使用最广的Python解释器。
IPython:基于CPython之上的一个交互式解释器。
PyPy:采用JIT技术,对Python代码进行动态编译,显著提高Python代码的执行速度。
Jython:运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython:运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。
2、Python初体验
2.1 print
print() 方法用于打印输出
print("hello world")
2.2 input
接受一个标准输入数据,返回为 string 类型
a=input("hello world!")
print(a)
3、Python基础讲解
3.1 Python变量特性+命名规则
(1)第一个字符必须是字母或下划线。
(2)其他由字母或下划线或数字组成。
(3)区分大小写。
3.2 注释方法
(1)单行注释
单行注释常以#开头,单行注释可以作为单独的一行放在被注释代码行之上,也可以放在语句或者表达式之后。例如:#这是一个单行注释
(2)多行注释
多行注释使用三个单引号’’’或者三个双引号”””来标记,而实际上这是多行字符串的书写方式,并不是Python本身提倡的多行注释方法。
例如:
‘’’
这是多行注释,使用单引号。
这是多行注释,使用单引号。
‘’’
(3)编码注释
如采用UTF-8编码,需在源码上方进行 # -- coding: UTF-8 -- 声明。
(4)平台注释
如果需要使Python程序运行在Windows平台上,需在Python文件的上方加上 #!/usr/bin/python 注释说明。
3.3 python中“:”作用
冒号: 用于定义分片、步长。a[ : n]表示从第0个元素到第n个元素(不包括n),a[1: ] 表示该列表中的第1个元素到最后一个元素。
3.4 使用dir( )及和help( )
(1)dir()
dir()用来查询一个类或者对象所有属性
r=dir(list)
print(r)
(2)help()
help()函数帮助我们了解模块、类型、对象、方法、属性的详细信息
s=help(list)
print(s)
3.5 import使用
使用import语句将一个源代码文件作为模块导入,可以使用 as 关键字来改变模块的引用对象名字。
3.6 pep8介绍
(1)代码排版
保持每行缩进使用4个空格,不能混用tab和空格,默认会全部转换为空格。
一行的最大长度为79个字符(文档字符串或注释不超过72个字符),窗口显示限制,默认换行会打断代码结构。
换行首选括号,再是反斜杠,换行点在操作符后敲回车。
顶层函数与类之间空两行,类方法之间空一行,函数内部不同逻辑段之间空一行。
(2)文档排版
Py2中默认编码ASCII或Latin-1,Py3中默认为UTF-8。
import导入时单独分开导入,from xx import xx,xx 可以多个导入。
导入位于文件的顶部:在模块注释和文档字符后,全局变量和常量前。
导入顺序:标准库 、相关第三方库 、 本地库/自定义库,之间空一行,并配置相关的__all__说明书。
包导入时:尽量使用绝对路径,移植性和阅读性更高。
(3)避免多余空格
各种括号前不加空格;逗号、分号或冒号前不加空格;函数调用的参数列表的圆括号的开括号前,text(1);索引或切片的方括号的开括号前,list[1];在复制或其他语句的运算符周围,不要为了对齐使用多个空格;算数运算符前后加空格:1 * 3;不在一个关键字参数或一个缺省参数值的 = 前后加一个空格:def text(real, imag=0);通常不推荐使用复合语句(一行多语句);if/for/while 块中,执行语句必须另起一行。
(4)注释
块注释:在一段代码前增加,以 # 开头跟一个空格。段落以# 的单行分隔。
行内注释:与语句间隔两个空格,起始于 #和一个空格。
文档字符串:对于模块,函数,类和方法进行注释说明,位于def 行之后 。
版本注记:有Subversion、CVS、RCS等,在块注释后,其他代码之前,前后一个空行。
(5)命名风格
大小写字母和下划线组成;首字母大写缩进:所有字符用大写;单下划线开始:表示内部使用的方法,不建议修改;单下划线结束:用于避免与Python关键字或方法冲突;双下划线开始:定义类中的属性,不能直接通过类名进行调取,而是类方法获取,或者是类名.类名_**属性名进行获取;双下划线开始结束:永远不要自定义该类型的方法,用于内部的魔法方法。
(6)命名规范
特别注意"l"(小写l)、“I”(大写i)、“1”(数字1)、“0”(数字0),“O”(大写o),不作为单个变量名。
模块名:全小写并简短,可以使用下滑线。
包名:全小写并简短,不建议下滑线。
类名:首字母大写。内部类加上前导下划线。
异常名:沿用类名规则并以"Error"为前缀。
全局变量名:尽量只在模块内有效。实现为__all__或者是前缀一个下划线。
函数名:小写,可用下划线分隔。
方法名和实例变量:下划线分隔的小写字母,私有方法和实例变量前用单下划线。 常量:在模块级别定义,全大写和下划线分隔。
类的属性有三种作用域public、non-public与subclass API,类似Java中的public、private、protected。non-public属性前,前缀单下划线。
公有属性和保留字冲突时,在属性后加一个下划线,比缩写和拼写好。
如果属性不希望被子类继承时,用双下滑先开头,可以进行避免。但需要注意调取时的命名内容,类名._类名__属性名可以调用,或者是子类出现相同的类名和属性名,会有冲突。
类的实例方法第一参数为self,类方法第一参数为cls。
4、python数值基本知识
4.1 python中数值类型,int,float,bool,e记法等
(1)整型int
创建 int 值有两种方式:直接赋予变量整数值,使用构造器 int() 创建 int 类型实例。
(2)浮点型float
创建 float 值有两种方式:直接赋予变量整数值(使用第一种方式,如果该数值没有小数,需要添加后缀 .0),使用构造器 float() 创建 float 类型实例,默认值为0.0。
(3)布尔型bool
布尔型仅有两个实例对象 False 和 True,布尔型是 int 类型的子类,False 等同于 0,True 等同于 1,布尔型无法再被继承使用。
(4)e记法
e记法是科学计数法,对于较大的数,用幂的形式进行表示,如1234567.89 可以表示为1.23456789E+06。
4.2 算数运算符
+(加),-(减),*(乘),/ (除),// (取整除,返回除法的整数部分)
% (取余数,返回除法的余数 ),** (幂)
4.3 逻辑运算符
and,or,not
优先级:() > not > and > or
(1)and
逻辑运算符and,x and y,如果x为True则返回y值。如果x为False则返回y值。如果x的值为True,and的运算不会结束,会继续看y的值,所以此时真与假取决于y的值,所以x如果为真,则返回y的值。如果x为假,那么and运算就会结束运算过程了,因为有一个为假则and为假,所以返回x的值。
(2)or
逻辑运算符or,x or y, 如果x为True则返回x,如果x为False返回y值。因为如果x为True那么or运算就不需要在运算了,因为一个为真则为真,所以返回x的值。如果x的值为假,那么or运算的结果取决于y,所以返回y的值。
4.4 成员运算符
in和not in
4.5 身份运算符
is和not is
4.6 运算符优先级(高到低)
运算符说明 | Python运算符 |
---|---|
索引运算符 | x[index] 或 x[index:index2[:index3]] |
属性访问 | x.attrbute |
乘方 | ** |
按位取反 | ~ |
符号运算符 | +(正号)或 -(负号) |
乘、除 | *、/、//、% |
加、减 | +、- |
位移 | >>、<< |
按位与 | & |
按位异或 | ^ |
按位或 | 丨 |
比较运算符 | ==、!=、>、>=、<、<= |
is 运算符 | is,is not |
in 运算符 | in,not in |
逻辑非 | not |
逻辑与 | and |
逻辑或 | or |