Python的基本语法汇总
Python的基本语法汇总
1.常⽤列表的操作
L =[[1,2],'string',{}]# 嵌套列表
L =list('spam')# 列表初始化
L =list(range(0,4))# 列表初始化
list(map(ord,'spam'))# 列表解析
len(L)# 求列表长度
L.append(obj)# 向列表的尾部添加数据,⽐如append(2),添加元素2
L.insert(index, obj)# 向列表的指定index位置添加数据,index及其之后的数据后移
L.index(value,[start,[stop]])# 返回列表中值value的第⼀个索引
L.pop([index])# 删除并返回index处的元素,默认为删除并返回最后⼀个元素
L.sort(cmp=None, key=None, reverse=False)# 排序列表
2.常⽤字典的操作
D ={}
D ={'spam':2,'tol':{'ham':1}}# 嵌套字典
D =dict.fromkeys(['s','d'],8)# {'s': 8, 'd': 8}
D =dict(name='tom', age=12)# {'age': 12, 'name': 'tom'}
D =dict([('name','tom'),('age',12)])# {'age': 12, 'name': 'tom'}
D =dict(zip(['name','age'],['tom',12]))# {'age': 12, 'name': 'tom'}
D.keys();
D.values();
D.items()# 字典键、值以及键值对
<(key, default)# get函数
D.update(D_other)# 合并字典,如果存在相同的键值,D_other的数据会覆盖掉D的数据
D.pop(key,[D])# 删除字典中键值为key的项,返回键值为key的值,如果不存在,返回默认值D,否则异常
D.popitem()# pop字典中随机的⼀项(⼀个键值对)
D.setdefault(k[, d])# 设置D中某⼀项的默认值。如果k存在,则返回D[k],否则设置D[k]=d,同时返回D[k]。
del D  # 删除字典
del D['key']# 删除字典的某⼀项
3.⽂件基本操作
output =open(r'C:\spam','w')# 打开输出⽂件,⽤于写
input=open('data','r')# 打开输⼊⽂件,⽤于读。打开的⽅式可以为'w', 'r', 'a', 'wb', 'rb', 'ab'等
fp.write(str)# 把str写到⽂件中,write()并不会在str后加上⼀个换⾏符
fp.writelines(seq)# 把seq的内容全部写到⽂件中(多⾏⼀次性写⼊)
fp.writeable()# 是否可写
fp.close()# 关闭⽂件。
fp.flush()# 把缓冲区的内容写⼊硬盘
<()# 返回下⼀⾏,并将⽂件操作标记位移到下⼀⾏。把⼀个file⽤于for … in file这样的语句时,就是调⽤next()函数来实现遍历的。
fp.seek(offset[, whence])# 将⽂件打操作标记移到offset的位置。whence可以为0表⽰从头开始计算,1表⽰以当前位置为原点计算。2表⽰以⽂件末尾为原点进⾏计算。
fp.seekable()# 是否可以seek
4.if/else三元表达符
A =1if X else2
A =1if X else(2if Y else3)
5.⽣成器表达式(不占内存)
G =(x **2for x in range(3))# 使⽤⼩括号可以创建所需结果的⽣成器generator object
next(G),next(G),next(G)# 和上述中的⽣成器函数的返回值⼀致
# (1)⽣成器(⽣成器函数/⽣成器表达式)是单个迭代对象
G =(x **2for x in range(4))
I1 =iter(G)# 这⾥实际上iter(G) = G
next(I1)# 输出0
next(G)# 输出1
next(I1)# 输出4
# (2)⽣成器不保留迭代后的结果
gen =(i for i in range(4))
2in gen  # 返回True
3in gen  # 返回True
1in gen  # 返回False,其实检测2的时候,1已经就不在⽣成器中了,即1已经被迭代过了,同理2、3也不在了
6.Python的while语句或者for语句可以带else语句当然也可以带continue/break/pass语句
while a >1:
anything
else:
anything
# else语句会在循环结束后执⾏,除⾮在循环中执⾏了break,同样的还有for语句
for i in range(5):
anything
else:
anything
7.for循环的元组赋值
for(a, b)in[(1,2),(3,4)]:# 最简单的赋值
for((a, b), c)in[((1,2),3),((4,5),6)]:# ⾃动解包赋值
for((a, b), c)in[((1,2),3),("XY",6)]:# ⾃动解包 a = X, b = Y, c = 6
for(a,*b)in[(1,2,3),(4,5,6)]:# ⾃动解包赋值
8.匿名函数:lambda
f =lambda x, y, z: x + y + z  # 普通匿名函数,使⽤⽅法f(1, 2, 3)
f =lambda x=1, y=1: x + y  # 带默认参数的lambda函数
def action(x):# 嵌套lambda函数
return(lambda y: x + y)
f =lambda: a if xxx()else b  # ⽆参数的lambda函数,使⽤⽅法f()
9.⽣成器函数:yield VS return
def gensquare(N):
for i in range(N):
yield i **2# 状态挂起可以恢复到此时的状态
for i in gensquare(5):# 使⽤⽅法
print(i, end=' ')# [0, 1, 4, 9, 16]
x = gensquare(2)# x是⼀个⽣成对象
next(x)# 等同于x.__next__() 返回0
next(x)# 等同于x.__next__() 返回1
next(x)# 等同于x.__next__() 抛出异常StopIteration
10.查看全部的模块搜索路径
import sys
sys.path
sys.argv  # 获得脚本的参数
sys.builtin_module_names  # 查内建模块
sys.platform  # 返回当前平台出现如: "win32" "linux" "darwin"等
sys.stdout  # stdout 和 stderr 都是类⽂件对象,但是它们都是只写的。它们都没有 read ⽅法,只有 write ⽅法
python新手入门基础语法sys.stdout.write("hello")
sys.stderr
sys.stdin
11.包相对导⼊:使⽤点号(.) 只能使⽤from语句
from.import spam                  # 导⼊当前⽬录下的spam模块(Python2: 当前⽬录下的模块, 直接导⼊即可)
from.spam import name              # 导⼊当前⽬录下的spam模块的name属性(Python2: 当前⽬录下的模块, 直接导⼊即可,不⽤加.)from..import spam                # 导⼊当前⽬录的⽗⽬录下的spam模块
12.包相对导⼊与普通导⼊的区别
from.string import*# 这⾥导⼊的string模块为本⽬录下的(不存在则导⼊失败) ⽽不是sys.path路径上的
13.OS模块
import os
os.chdir("dirname")#改变当前脚本⼯作⽬录;相当于shell下cd
os.curdir #返回当前⽬录: ('.')
os.pardir #获取当前⽬录的⽗⽬录字符串名:('..')
os.makedirs('dirname1/dirname2')#可⽣成多层递归⽬录
os.mkdir('dirname')#⽣成单级⽬录;相当于shell中mkdir dirname
os.listdir('dirname')#列出指定⽬录下的所有⽂件和⼦⽬录,包括隐藏⽂件,并以列表⽅式打印
os.stat('path/filename')#获取⽂件/⽬录信息
os.linesep    #输出当前平台使⽤的⾏终⽌符,win下为"\t\n",Linux下为"\n"
os.pathsep    #输出⽤于分割⽂件路径的字符串
os.name    #输出字符串指⽰当前使⽤平台。win->'nt'; Linux->'posix'
os.system("bash command")#运⾏shell命令,直接显⽰
14.正则表达式
15.异常
#捕获异常
try:
except:# 捕获所有的异常等同于except Exception:
except name:# 捕获指定的异常
except name, value:# 捕获指定的异常和额外的数据(实例)
except(name1, name2):
except(name1, name2), value:
except name4 as X:
else:# 如果没有发⽣异常
finally:# 总会执⾏的部分
#引发异常: raise⼦句(raise IndexError)
raise< instance ># raise instance of a class, raise IndexError() raise<class># make and raise instance of a class, raise IndexError raise# reraise the most recent exception

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。