首页 > 代码库 > Python基本语法(基于3.0)
Python基本语法(基于3.0)
- Python的两种运行模式:
- 命令行模式,运行python,然后在命令行中输入python命令
- 程序脚本, 在命令行中输入 ./hello.py运行
- Python是解释形语言,但可以通过工具打包成二进制可执行文件
- 注释符为#,多行注释以‘‘‘开始,以‘‘‘结束
- 变量不需要声明类型,可以自动推导,type()函数可以获得变量类型
- 序列是一组由顺序的元素的集合,各元素类型可以不同,序列分两种
- tuple(元组):tuple中的元素不可以变更,用()定义,也可以省略(),字符串是一种特殊元组
- list:各个元素可以再变更,用[]定义
- 一个序列可以作另一个序列的元素,用[]可以访问序列元素,也可以使用范围引用,表达式为[下限:上限:步长]
- 函数定义的关键字:def, return可以返回多个值,如return a,b,c,相当于return(a,b,c)
- 函数参数的传递,可以使用关键字传递参数,这样不用遵守位置的对应关系。定义函数时参数可以指定默认值
- 包裹参数传递:定义函数时在相应的元组或者字典前加*或者**,如
- func(*arr):arr是一个tuple,调用时,func(1,2,3,4)
- func(**dic):dic是一个字典,调用时,func(a=1,b=2,c=3)
- 解包裹:函数定义时未使用包裹参数,调用时传入包裹参数,函数会自动进行拆解,注意调用时,参数值前要加*或者**,对应tuple和字典
- 函数也是对象,也可以作为参数传给其他函数
- Python也使用class定义类,类的方法第一个参数必须是self,用于引用对象本身,类似于this
- 继承的语法: class SubClass(ParentClass), ParentClass是父类,SubClass是子类
- __init__()是一个特殊方法,创建对象时python会自动调用这个方法,相当于初始化过程。如:human =new Human("male"); 参数mail会传给__init__()方法
- 两个重要的内置函数:
- dir()用于查询一个类或者对象所有属性
- help()用于查询说明文档
- 词典类型的定义dic={key1:value1,key2,value2},key可以使字符串,数字,bool型等,不可变对象都可以做键,字典的循环如下,注意循环的key值
for key in dic:
print(dic[key]) - 字典的常用函数: keys(),values(),items(),clear(),还有一个常用用法是del dic[‘Tom‘],删除key为Tom的元素,del是Python中的关键字,不是函数,用于删除对象
- 模块(Module):一个.py文件就是一个模块,使用import关键字引入其他模块,使用模块.对象的方式来访问引入模块中的对象
- import的一些用法:
- import a as b :引入模块a,并重命名为b
- from a import func1: 从模块a中引入func1对象,之后可以直接使用func1,而不用使用a.func1
- from a import *:从模块a中引入所有对象,这样可以直接使用a中的对象,而不必用a.对象
- Python会在以下路径搜索它想要的模块:
- 程序所在的文件夹
- 标准库的安装路径
- 操作系统环境变量PYTHONPATH所包含的路径
- 模块包:功能相似的模块放在同一个文件夹(如dir)中,就构成一个模块包,文件夹中必须包含一个__int__.py的文件(可以为空)以通知Python,该文件夹是一个模块包,通过:
import dir.module引用dir文件夹中的module - 用于循环的函数:
- range:
- enumerate():可以在每次循环中同时得到下标和元素,for(index,value) in enumerate(arr)
- zip():用于循环多个等长序列,每次循环从各个序列中分别取一个元素,for(a,b,c)in zip(arr1,arr2,arr3).zip的作用就是从各个序列中依次取出一个元素,合成一个tuple
- 循环对象:包含一个__next__方法,该方法的目的是循环下一个结果,直到最后抛出StopIteration错误
- 生成器(Generator):构建一个用户自定义的循环对象,编写方法与函数类似,只是return改为yield,可以有多个yield,generator遇到yield时会暂停运行返回yield后面的值,再次调用生成器的时候,会从暂停的地方继续运行,返回下一个yield值。生成器示例:
G=(x for x in range(4)),G就是一个生成器,用__next__()方法访问其中的值 - 表推导(table comprehension):快速生成表(list)的方法,示例:
L=(x**2 for x in range(10)),这与生成器表达式类似,只不过用的是中括号 - lambda:示例 func=lambda x,y:x+y 调用跟普通函数一样,func(3,5)
- 常用函数:
- map(函数对象,list...):功能是将函数对象依次作用于list的每一个元素,每次作用的结果存储在返回的循环对象中,如果函数对象有多个参数,则后面可以有多个list,map函数每次从所有的list中取出一个值,作为函数的参数
- filter(函数对象,list...):功能是将函数对象作用于多个元素,如果函数对象返回的是True,则返回该次的元素存储在循环对象中
- reduce(函数对象,list):函数对象只能接受两个参数,可以累进的从list中每次取两个值作参数。3.x中需要引入functools包
- 异常语法如下,自己抛出式样使用raise关键字
try: ... except exception1: ... except exception2: ... except: ... else: ... finally: ...
如果没有异常,则执行else语句,如果没有对应的异常类型则会向上层抛出异常 - 上下文管理器:用于规定某个对象的使用范围,语法:with ....as...,任何定义了__enter__()和__exit__()方法的对象都可用于上下文管理器
# with context manager
with open("new.txt", "w") as f: print(f.closed) f.write("Hello World!") print(f.closed)
- 对象的属性存储在对象的__dict__属性中,以属性名为key,属性值为value
- 闭包:Python中的闭包是一个包含有环境变量取值的函数对象,环境变量取值被保存在函数对象的__closure__属性中
- 装饰器:对一个函数,方法或者类进行加工,被装饰函数或类前要加@decorator,实际上将square_sum传递给decorator,并将decorator返回的新的可调用对象赋给原来的函数名
def decorator(F):
def new_F(a, b):
print("input", a, b)
return F(a, b)
return new_F@decorator def square_sum(a, b): return a**2 + b**2
- 格式化字符串:Python使用一个字符串作模板,模板中有格式符,如print("I am %s,i am %d years old" %(‘Tom‘,10)),模板与tuple之间有一个%号分隔,它代表了格式化操作,可以用如下方式对格式进一步的控制:
%[(name)][flags][width].[precision]typecodeprint("I‘m %(name)s. I‘m %(age)d year old" % {‘name‘:‘Vamei‘, ‘age‘:99})(使用字典传递真实值)
Python基本语法(基于3.0)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。