当前位置 博文首页 > u011767319的博客:python-个人笔记

    u011767319的博客:python-个人笔记

    作者:[db:作者] 时间:2021-09-22 12:49

    入门python运行

    在这里插入图片描述

    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