Python程序设计要点.docx
《Python程序设计要点.docx》由会员分享,可在线阅读,更多相关《Python程序设计要点.docx(9页珍藏版)》请在冰点文库上搜索。
![Python程序设计要点.docx](https://file1.bingdoc.com/fileroot1/2023-8/4/06c19806-d1ea-47c9-820e-7ee885e9d1f7/06c19806-d1ea-47c9-820e-7ee885e9d1f71.gif)
Python程序设计要点
1.布尔型TrueFalsebool
2.字符串、元组属于不可变序列,不可以通过X[1]方式修改元素值,列表是可变序列
3.Python是基于值的内存管理方式,两个变量分别赋值为两个可变对象,值即便相同,也会有两个可变对象存在。
而对于不可变对象,由于其值不变,为了性能方面的考虑,Python实现中可能仅仅分配一个对象。
多个变量指向同一个对象修改变量的值实为修改变量指向的内存地址。
Python具有自动内存管理功能,对于没有任何变量指向的值,Python将会自动将其删除。
4.十六进制0x八进制0o二进制0b
5.字符串支持使用‘+’进行合并a=’ab’+’c’a=’abc’
6.x//y求整商x%y求余数x/y真除法x!
=yx不等于y&交集|并集
7.内置函数——不需要导入模块即可直接使用
8.break语句continue语句在for循环while循环中都可以使用,continue终止本次循环,直接回到循环顶端,提前进入下一次循环;break使整个循环提前结束。
9.计算列表中元素的平均值sum(x)/len(x)
10.列表中部分元素删除后,列表会自动收缩其内存空间以保证各元素连续储存
11.用del命令删除对象时,如果值还有别的变量指向,则不删除值,如果不再有其他变量指向,则删除值。
del适用于删除列表中指定元素,和删除整个字符串、元组和列表
12.输出重定向fp=open(r’D:
\mytest.txt’,’a+’)
print(‘HELLOWORLD!
’,file=fp)
fp.close()
13.输出内容不换行print(i,end=’’)
14.pip是管理扩展模块的重要工具。
在Python启动时,仅加载了很少的一部分模块,在需要时由程序员显式加载,减小程序运行的压力
15.导入模块的方法:
1)import模块名[as别名]
2)from模块import对象名[as别名]
3)一次导入所有模块from模块import*
16.Python程序是依靠代码的缩进来体现代码之间的逻辑关系的,行尾的冒号以及下一行的缩进表示一个代码块的开始。
在编写程序时,同一个级别的代码块的缩进量必须相同。
17.在IDLE开发环境中,一般以4个空格作为基本缩进单位
18.注释:
1)以符号#开始,表示本行#之后的内容为注释
2)包含在一对三单引号或三双引号之间且不属于任何语句的内容
19.使用必要的空格与空行增强代码的可读性
20.Python文件名
1).py—Python源文件,由Python解释器负责解释执行
2).pyw—Python源文件,常用于图形界面程序
3).pyc—Python字节码文件
21.文件读写模式:
r只能读
r+可读可写不会创建不存在的文件从顶部开始写会覆盖之前此位置的内容
w+可读可写如果文件存在则覆盖整个文件不存在则创建
w只能写覆盖整个文件不存在则创建
a只能写从文件底部添加内容不存在则创建
a+可读可写从文件顶部读取内容从文件底部添加内容不存在则创建
21.Python运算符优先级
指数**乘、除、取余、取整*/%//加减+-比较运算符><
逻辑运算符notorand
22.局部变量全局变量局部变量和全局变量名称相同
23.Python脚本的_name_属性
.py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入
在python中导入模块一般使用的是import
__name__作为模块的内置属性是.py文件的调用方式。
最后是__main__,刚才我也提过,.py文件有两种使用方式:
作为模块被调用和直接使用。
如果它等于"__main__"就表示是直接执行。
在if__name__=="__main__":
之后的语句作为模块被调用的时候,语句之后的代码不执行;直接使用的时候,语句之后的代码执行。
24.表达式由值、变量和运算符组成。
单一的值或变量也可以当作是表达式。
25.序列是一块用来存放多个值的连续内存空间
26.字典和集合为无序序列,列表、元组、字符串为有序序列,支持双向索引
27.尽量从列表的尾部进行元素的增加和删除,不仅大幅度提高处理速度,并且总可以保证得到正确的结果
28.同一个列表中元素的数据类型可以各不相同
29.
列表list()元组、字符串
元组tuple()列表、字符串
字符串‘’.join(list)列表
集合set()列表,元组(重复元素只保留一个)
30.计时:
importtime
start=time.time()
main()
end=time.time()
print(end-start)
31.列表元素的增加
(1)使用+运算符:
并非为列表添加,而是创建新列表,将原列表和新元素依次复制,速度较慢
(2)使用l.append(),原地修改列表,速度较快
(3)使用l.extend([]),也是原地操作,不改变其内存首地址
(4)使用l.insert(index,x),涉及到插入位置之后所有元素的移动,速度慢
32.序列对象在内存中的起始地址是不改变的,仅仅是被改变值的元素地址发生变化a=[1,2,3]b=[1,2,4]id(a[0])==id(b[0])True
33.a=[1,3,5]a=a*3a=[1,3,5,1,3,5,1,3,5]
x=[[None]*2]*3x=[[N,N],[N,N],[N,N]]
34.删除列表中指定元素的所有重复(从尾部开始)
(1)x=[1,2,1,2,1,1,1]
foriinx[:
:
-1]:
ifI==1:
x.remove(i)
(2)foriinrange(len(x)-1,-1,-1):
35.切片操作——原地修改列表内容
切片适用于列表、元组(仅用于访问,不适用于修改)、字符串[:
:
]左闭右开step
步长省略时可以顺便省略最后一个冒号
a=[0,1,2,3,4,5]
a[:
:
2]=[0]*(len(a)//2)
a=[0,1,0,3,0,5]
36.切片返回的是列表元素的浅copy,不同于列表对象直接赋值
al=[3,5,7]al=blid(al)==id(bl)True
al=[3,5,7]bl=al[:
:
]id(al)==id(bl)False
37.迭代对象遍历一遍即结束
38.a=[1,2]b=[1,2,3]a39.如果要创建只包含一个元素的元组,需要在元素后面加一个逗号
a=(3)a3a=(3,)a(3,)
40.元组的访问和处理速度比列表快,也更安全
41.元组中元素的值不可改变,但元组中可变序列的元素的值可以改变
x=([1,2],3)x[0][0]=5x([5,2],3)
x[0]=x[0]+[5]error
42.序列解包——同时对多个变量进行赋值
x,y,z=1,2,3print(x,y,z)123
keys=['a','b','c']values=[1,2,3]
fork,vinzip(keys,values):
print(k,v)a1b2c3
43.生成器推导式的结果是生成器对象,而不是列表,也不是元组,当所有元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象
44.字典是”键值”对的无序可变序列,{keys:
values,keys:
values}字典中的键是任意的不可变(为了安全性)数据(字符串、数字、元组),keys不允许重复,values允许重复
45.创建字典
keys=['a','b','c']values=[1,2,3]print(dict(zip(keys,values))){'c':
3,'b':
2,'a':
1}
46.字典元素的访问:
1)通过下标的方式Dict[keys]
2)d.get()获取指定键对应的值,指定键不存在,默认返回None
keys=[1,2,3]values=['a','b','c']d=dict(zip(keys,values))
d.get
(1)'a'd.get(4)d.get(4,'d')'d'
47.以指定键为下标为字典元素赋值时,若‘键‘存在,则修改’值‘,‘键’不存在,则创建新的‘键值’对
48.统计字符串中每个元素的出现次数
z'mlSXvqBIMa'
>>>fromcollectionsimportCounter>>>frequences=Counter(z)
>>>frequences.most_common
(1)[('I',1)]
d=dict()
foriinz:
#对随机数列表扫描一次,即可得到结果
d[i]=d.get(i,0)+1
49.有序字典:
记住元素插入的顺序
importcollections
x=collections.OrderedDict()>>>x['a']=3>>>x['b']=5>>>x['c']=8
>>>x
OrderedDict([('a',3),('b',5),('c',8)])
50.集合{}无序性,*唯一性
51.‘==’判断是否等于‘=’赋值
52.条件表达式的值只要不是空、0、False,Python解释器均认为与True等价
即(if3:
)可执行
if表达式:
语句块
53.if表达式:
表达式值为True执行1,否则执行2
语句块1
else:
语句块2
54.使用选择结构的嵌套时,一定要严格控制好不同级别代码块的缩进量
55.在IDLE交互式环境中,每次只能执行一条语句
56.循环语句:
for和whilewhile循环一般用于循环次数难以提前确定的情况,当然也可以用于循环次数确定的情况;for循环一般用于循环次数可以确定的情况,尤其适用于枚举或遍历序列
57.求100以内的素数
forninrange(100):
foriinrange(2,n):
ifn%i==0:
break
else:
print(n,end='')
58.Python的关系运算符可以连续使用,3<4<5>2True
59.因式分解
x=input('Pleaseinputanintegerlessthan1000:
')
x=eval(x)
t=x
i=2
result=[]
whileTrue:
ift==1:
break
ift%i==0:
result.append(i)
t=t/i
else:
i+=1
print(x,'=','*'.join(map(str,result)))
60.大写字母ASCII65-90
小写字母ASCII97-122
ASCII采用一个字节进行编码最多表示2^8256个字符
61.字符串格式化‘%d’%x
62.s.count()统计子字符串的出现次数
.*连在一起就意味着任意数量的不包含换行的字符
任意数量的字母或数字(\w*)
^和$的意义就变成了匹配行的开始处和结束处
\.和\*。
当然,要查找\本身,你也得用\\.
a.*b,它将会匹配最长的以a开始,以b结束的字符串
.*?
就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复