当前位置 博文首页 > u011767319的博客:python-个人笔记
Python综述
python是什么
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
?Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
?Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 ?Python是交互式语言:
这意味着,我们可以在一个Python提示符后面直接互动执行写自己的程序。 ?Python是面向对象语言:
这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
?Python是初学者的语言:Python简单易学,对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW
浏览器再到游戏。
python的发展
Python 是由 Guido van Rossum(龟叔) 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
Python 本身也是由诸多其他语言发展而来的,这包括
ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl
语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python
是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
python的特点
?易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。 ?易于阅读:Python代码定义的更清晰。
?易于维护:Python的成功在于它的源代码是相当容易维护的。
?一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
?互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
?可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
?可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
?数据库:Python提供所有主要的商业数据库的接口。 ?GUI编程:Python支持GUI可以创建和移植到许多系统调用。 ?可嵌入:
你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
Python3安装
python3 和 python2的区别
Python的3??.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。
为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。 许多针对早期Python版本设计的程式都无法在Python
3.0上正常执行。 为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。 新的Python程式建议使用Python 3.0版本的语法。 除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python
3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。 Python 3.0 在 print函数、Unicode编码、除法运算、数据类型和异常等方面都与2.X版本有所变化。
2.2 python3环境的安装(以windows为例) 第一步,下载python环境安装包 官方地址:https://www.python.org/ 第二步,安装python环境第三步,测试是否安装成功 打开cmd命令终端,输入python,显示版本信息表示安装成功
2.3 Anaconda 安装(可选)
如果是在windows系统中安装,为了更简单地使用python中丰富的库资源,可以直接安装一个python“全家桶”——Anaconda。
Anaconda 是一个python的发行版,包括了python和很多常见的软件库,
和一个包管理器conda。常见的科学计算类的库都包含在里面,使得安装比常规python安装要容易。注意,装了Anaconda就不需要再装python了。
Anaconda不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目;从而大大简化了工作流程。
下载地址:https://www.anaconda.com/distribution/
下载需要的对应版本,安装非常简单,只要跟着引导一步步做就可以了。
3. Python基本语法
3.1 编码 默认情况下,python3源文件以UTF-8编码,所有字符串都是unicode字符串。同时可以指定源文件的不同编码 文件开头加上
第一种:# -*- coding: UTF-8 -*- 第二种: # coding=utf-8
(等号两边不能有空格)
允许在源文件中使用utf-8字符集中的字符编码,对应的适合语言为中文等。
3.2 标识符 ?第一个字符必须是字母表中的字母或下划线_ ?标识符中的其他部分由字母、数字和下划线组成 ?标识符对大小写敏感 ?在python3中,非ASCII标识符 (如中文字符) 也是允许的
3.3 注释
单行注释:井号 # 多行注释:三个单引号’’’,或者三个双引号"""
3.4 关键子和保留字
import keyword
print(len(keyword.kwlist)) #33
print(keyword.kwlist) #打印关键字
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
简介:
1.and:表示逻辑‘与’
2.del:用于list列表操作,删除一个或者连续几个元素。
3.from:导入相应的模块,用import或者from…import
4.not:表示逻辑‘非’
5.while:while循环,允许重复执行一块语句,一般无限循环的情况下用它
6.as:as单独没有意思,是这样使用:with…as用来代替传统的try…finally语法的。
7.elif:和if配合使用的,if语句中的一个分支用elif表示。
8.global :定义全局变量
例如:
name = 10
age = 20
def test():
global name
age = 30
name = 'aa'
#print(name)
test()
print(name) # 'aa'
print(age) # 20
9.or:表示逻辑“或”
10.with:和as一起用,使用的方法请看as,见with
11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError
v1 = 10
v2 = 20
assert(v1 > v2)
12.else:参考下面if的解释
13.if:if语句用于选择分支,依据条件选择执行那个语句块。(if语句中最好不要嵌套if语句,建议把嵌套的if语句写在另一个函数中)
14.pass:pass的意思就是什么都不做
15.yield:用起来和return很像,但它返回的是一个生成器
16.break:作用是终止循环,程序走到break的地方就是循环结束的时候。
17.except:和try一起使用,用来捕获异常。
18.import:用来导入模块,有时这样用from…import
19.class:定义类
20.in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。
21.raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
22.continue:跳过continue后面循环块中的语句,继续进行下一轮循环。
23.finally:看到finally语句,必然执行finally语句的代码块。
24.is:Python中的对象包含三要素:id、type、value,用来判断对象是否相等
25.return:用于跳出函数,也可以在跳出的同时返回一个值。
26.def:用于定义方法
27.for:for…in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目
28.lambda:即匿名函数
29.try:出现在异常处理中,使用格式为:try…except,try中放想要执行的语句,except捕获异常
30.nonlocal:nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量
例如:
def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return counter
def make_counter_test():
mc = make_counter()
print(mc())
print(mc())
print(mc())
make_counter_test()
3.5 行和缩进
学习 Python 与其他语言最大的区别就是,Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。python
最具特色的就是用缩进来写模块。 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
例如:
if True:
print "True"
else:
print "False"
3.6 多行语句
Python语句中一般以新行作为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaa')
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
3.7 python的引号
Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" )表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
3.8 Python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
3.9 等待用户输入
执行下面的程序在按回车键后就会等待用户输入: input("\n\n按下 enter 键后退出。")
3.10 同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
x = 'runoob';print(x + '\n')
3.11 多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( :
)结束,该行之后的一行或多行代码构成代码组。 我们将首行及后面的代码组称为一个子句(clause)。
例如:
if expression :
suite
elif expression :
suite
else :
suite
3.12 Print 输出
同类型才可以相加
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
x="a"
y="b"
# 换行输出
print( x )
print( y )
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()
3.13 import 与 from…import
在 python 用 import 或者 from…import 来导入相应的模块。
a、将整个模块(somemodule)导入,格式为: import somemodule b、从某个模块中导入某个函数,格式为:
from somemodule import somefunction c、从某个模块中导入多个函数,格式为: from
somemodule import firstfunc, secondfunc, thirdfunc
d、将某个模块中的全部函数导入,格式为: from somemodule import *
(1)导入 sys 模块
import sys
print('================Python import mode==================');
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\n python 路径为',sys.path)
(2)导入 sys 模块的 argv,path 成员
from sys import argv,path # 导入特定的成员
print('================python from import=====================')
print('path:',path) # 因为已经导入path成员,所以引用不需要加sys.path
3.14 命令行参数
很多程序可以执行一些操作来查看一些基本信息,Python可以使用-h参数查看各参数帮助信息:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit
4. 基本数据类型
4.1 变量赋值
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print (counter)
print (miles)
print (name)
4.2 多变量赋值
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。
可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "runoob"
a,b = b,a # 变量的交换
以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。
注意:
a = 10
b = 20
a,b = b,a+5
print(a,b)
结果:a = 20,b=15
4.3 标准数据类型
Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
a、不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
b、可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
4.4 Number
int、float、bool、complex(复数)
例如:
a,b,c,d = 20,5.5,True,5+4j
print(type(a),type(b),type?,type(d))
4.1.1 函数
type(a) # 判断数据类型
isinstance(a,int) # 判断数据是否属于某类型
del var1,var2 # 手动GC
区别:
(1) type()不会认为子类是一种父类类型
(2) isinstance()会认为子类是一种父类类型
例如:
class A:
pass
class B(A):
pass
print(type(A()) == A)
print(type(B()) == A)
print(isinstance(B(),A))
print(isinstance(B(),A))
4.1.2 进制
二进制:使用0b开头 例如:0b1010
八进制:使用0o开头 例如:0o555
十六进制:0x开头 例如:0x52A74(大小写都OK)
python中没有数字的大小限制,可以使用任意大的数字;python可以保证整数运算的精确,但是浮点数运算时可能会得到一个不精确的结果。
4.1.3 数学函数
import math
(1) 基本数学函数
函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
(x>y)-(x<y) 如果 x < y 返回 -1, 如果 x == y 返回 0,
如果 x > y 返回 1
exp(x) 返回e的x次幂(ex),
如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,
如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,
两部分的数值符号与x相同,
整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,
则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根。
(2) 随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,
比如random.choice(range(10)),
从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合
中获取一个随机数,基数缺省值为1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。
如果你不了解其原理,你不必特别去设定seed,
Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
(3) 三角函数
函数 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(xx + yy)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0