您的位置:首页 > 编程语言 > Python开发

Python知识点汇总

2018-03-10 15:14 393 查看
python的一个特点:
一个对象对应一个ID;(C语言中一个变量对应一个ID,改变变量的值,其ID不变)
有些ID里存放的对象内容不可改变,内容变了就是另一个对象了,对应另一个ID;
有些ID里存放的对象内容可以改变的;

1.python 没有自增自减运算符 python 中,变量是以内容(对象)为基准而不是像 c 中以变量名为基准;变量名是对”对象“的引用,一个对象可同时被多个不同的变量引用;python 中,类型属于对象,变量是没有类型的,仅仅是一个对象的引用(一个指针);
当通过一个变量名改变其引用的对象内容后,其他引用该对象的变量其对象内容也随之发生改变,但是ID保持不变。
>>> a = [1, 2, 3]
>>> b = a
>>> c = []
>>> c = a
>>> d = a[:]
>>> a, b, c, d
([1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3])
>>> b[0] = 'b'
>>> a, b, c, d
(['b', 2, 3], ['b', 2, 3], ['b', 2, 3], [1, 2, 3])
>>> id(a), id(b), id(c), id(d)
(140180778120200, 140180778120200, 140180778120200, 140180778122696)
2.python使用del解除变量对“对象”的引用,或者使用del删除列表中的个别元素list = ['Google', 'Runoob', 1997, 2000]
del list[2]3.python中的字符串可以当做列表来使用
var1 = 'Hello World!'
var2 = "Runoob"a = "Hello"
b = "Python"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])if( "H" in a) :
print("H 在变量 a 中")
else :
print("H 不在变量 a 中")
if( "M" not in a) :
print("M 不在变量 a 中")
else :
print("M 在变量 a 中")
字符串常用的一些内建函数:string.strip()      #在字符串上执行 lstrip()和 rstrip()。依次删除字符串首尾的空格
string.strip(char)    #依次删除字符串首尾中指定的字符(串),只能作用于首尾。
#该函数返回新字符串,原字符串无变化,遵循字符串是不可变类型对象
string.split()    #默认按空字符,包括空格、换行(\n)、制表符(\t)等来分割string
string.split(char,num)    #按指定的字符char分割num次;
#该函数返回一个列表
string.replace(old,new)    #将字符串中的所有的 old(旧字符串) 替换成 new(新字符串)
string.replace(old,new,max)    #max为最大替换次数
#该函数返回新字符串
str.lower()
str.upper()
str.rjust(length)    #字符串右对齐,左边补空格生成新的字符串,length表示新字符串的长度;类似的还有:str.ljust();str.center();
str.zfill(length)    #在字符串左边填充0生成新的字符串
str.format()        #将str中用{}括住的部分依次用format()中的参数替换;{}中若自定义有键,format()的参数定义格式为:自定义键=值
'{} {} {}'.format("1","2","3")
'{a} {b} {c}'.format(a="1",b="2",c="3")
'{0} {1} {2}'.format("1","2","3")    #默认键为0,1,2...
'{0:10d} {1:.2f} {2:5.2f}'.format(1,2,3)    # :后面为格式化符号
str.rfind(s)    #返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1


4.列表常用的一些方法:
删除元素del,截取[:],拼接+,迭代遍历,追加元素append(),插入insert(),计算长度len(),复制*,判断元素是否存在,清空元素clear(),元素排序sort(),颠倒元素顺序reverse(),取出最后一个元素pop()
list.insert(index, obj)
list.append(obj)
list.clear()
list.sort()
list.reverse()
list.pop()    #返回最后一个元素,原列表元素少一

#下面几种用法也适用与字符串,元组,集合,字典
#同时遍历多个列表, 使用zip()将多个列表先打包
for q1, q2 in zip(seq1,seq2):
print(q1, q2)
#反向遍历一个列表
for q in reversed(seq):
print(q)
#排序后遍历一个列表
for q in sorted(seq):
print(q)
5.元组tuple不能修改引用的对象,没有append(), insert(), clear() 方法定义只含一个元素的tuple:
t=(1,)        #末尾,不能省
t=(1,2,[3,4])    #其中的列表元素可修改
6.tuple用( , )定义,列表用[ , ]定义,字典用{ , }定义

7.集合
定义集合使用{ , } 或 set()函数,不能直接使用()
定义时,{ , }中若是单个元素则为集合;{ , }中若是键值对则为字典
s=set(list) #set()将一个列表转化为集合,自动删除重复的元素
s.add(5)
s.remove(1)8.字典特有的一些方法:
str(dict) #以字符串形式返回整个字典
dict.keys() #以列表形式返回整个字典的键
dict.values() #以列表形式返回整个字典的值
dict.items() #以列表形式返回整个字典的键值对,每个键值对为一个tuple
#同时遍历键、值
for k, v in dict.items():
print(k, v)
9.python的复合赋值
a, b = 1, 2
a, b = b, a+b
10.python中的print()可同时输出多个变量
print(a, b, c)
print(a, end=',')    #end表示以。。。结尾
print(a, b, c, sep='/')    #sep表示以。。。分割
11.python中的条件语句
if 条件表达式:
pa
a566
ss      #如果没有内容,可以先写pass,但是如果不写pass,就会语法错误
elif 条件表达式:
pass
else:
pass
12.python中的循环语句
while 条件表达式:
pass

while 条件表达式:
pass
else:        #else只在循环正常终止时执行;若以break语句提前跳出则不执行else部分,下同
pass

for var in seq: #var依次等于seq中的每一个元素
pass
else:
pass
13.python中常用的一些内置函数(其他)
range(num)
range(start, end)
range(start, end, step)
round(x,n)    #对数字x四舍五入,保留n为小数
input(argv)     #读取键盘输入
#文件处理
f=open(filename, mode)    #返回一个file对象,该对象可调用其他文件对象的方法
f.read()
f.seek(pos)    #设置文件当前位置为pos
f.tell()        #返回一个表示文件当前位置的数字
f.readline()    #f.readline() 会从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
f.readlines()    #f.readlines() 将返回该文件中包含的所有行,存为一个列表。
f.writelines([str])    #用于向文件中写入一序列的字符串。一个字符串占据一行。
f.write(argv)
f.close()
14.python定义函数def 函数名(参数列表):
  ...
return
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。
不带参数值的return语句返回None。

15.python中的对象类型可分为不可变类型(如整数、字符串、元组)和可变类型(如列表、字典)不可变类型对象:不能通过变量(指针)修改该对象的内容,即该对象是一个整体
可变类型对象:能通过变量(指针)修改该对象的内容
b = 10
b = 2    #b指向了另一个新的对象,并不是改变了原对象

a = [1,2,3]
a[0] = 'hello'    #a仍然指向原对象,并通过指针修改了原对象的内容
不可变类型对象作为函数参数时,其内容不可被函数改变;
可变类型对象作为函数参数时,其内容可在函数中被改变;
16.python中的推导式列表推导式:[[模式 for var1 in seq1] for var2 in seq2 ...]    #前面是内层,后面是外层
元组推导式:(模式 for var1 in seq1)
集合推导式:{模式 for var1 in seq1}
字典推导式:{模式 for var1 in seq1}17.python中的正则表达式
re 模块使 Python 语言拥有全部的正则表达式功能。
#re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.match(pattern, string, flag)    #flag 用于控制正则表达式的匹配方式
#re.search 扫描整个字符串并返回第一个成功的匹配。
re.search(pattern, string, flag)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: