当前位置:文档之家› PYTHON知识点汇总.doc

PYTHON知识点汇总.doc

print 句子也能够跟上多个字符串,用逗号“ ,”离隔,就能够连成一串输出: print 'The quick brown fox', 'jumps over', 'the lazy dog'在 Python 中,等号 =是赋值句子,能够把恣意数据类型赋值给变量,同一个变量能够重复赋值,并且能够是不同类型的变量。

变量自身类型不固定的言语称之为动态言语,与之对应的是静态言语。

静态言语在界说变量时有必要指定变量类型,假如赋值的时分类型不匹配,就会报错。

假如字符串自身包含 '怎么办?比方咱们要表明字符串 I'm OK ,这时,能够用 " " 括起来表明。

相似的,假如字符串包含 ",咱们就能够用 ' '括起来表示:假如字符串既包含 '又包含 "怎么办?这个时分,就需求对字符串的某些特别字符进行“转义”,Python 字符串用进行转义。

\n 表示换行\t 表示一个制表符\\ 表示\ 字符本身假如一个字符串包含许多需求转义的字符,对每一个字符都进行转义会很费事。

为了防止这种状况,咱们能够在字符串前面加个前缀 r,表明这是一个raw 字符串,里面的字符就不需要转义了。

如,r'\(~_~)/ \(~_~)/' 。

如果要表示多行字符串,可以用'''...''' 表示如果中文字符串在Python 环境下遇到UnicodeDecodeError ,这是因为.py 文件保存的格式有问题。

可以在第一行添加注释# -*- coding: utf-8 -*-print u' 中文'在 Python 中,布尔类型还能够与其他数据类型做 and 、or 和 not 运算直接用[ ] 把list 的所有元素都括起来,就是一个list 对象。

通常,我们会把list 赋值给一个变量,这样,就可以通过变量来引用list索引从 0 开端,也便是说,榜首个元素的索引是 0,第二个元素的索引是 1 ,以此类推。

因此,要打印第一名同学的名字,用L[0]添加list 的append() 方法或者insert() 方法定位删去 L.pop()()对 list 中的某一个索引赋值,就能够直接用新的元素替换掉本来的元素, list 包含的元素个数坚持不变。

缩进请严厉依照 Python 的习气写法: 4 个空格,不要运用 Tab,更不要混合 Tab 和空格,不然很简单形成由于缩进引起的语法过错。

if age >= 18:要防止嵌套结构的 if ... else ... ,咱们能够用 if ... 多个 elif ... else ... 的结构,一次写完一切的规矩奇数加和for a in L:sum+=ax += 2偶数不要if x%2==0:Continuedict 的榜首个特点是查找速度快,不管 dict 有 10 个元素仍是 10 万个元素,查找速度都相同。

而 list 的查找速度跟着元素增加而逐步下降。

d={}d.get(x) 可以取到d{} 中key 后面的value个数len(s)s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])for name,score in s:print name,':',scores.remove():s.add()比较函数cmp(x,y)假如想让一个函数能承受恣意个参数,咱们就能够界说一个可变参数:def fn(*args):print args可变参数的名字前面有个* 号,我们可以传入0 个、1 个或多个参数给可变参数r.append(L[i]) 向r 添加对这种常常取指定索引规模的操作,用循环十分繁琐,因而, Python 供给了切片( Slice )操作符,能大大简化这种操作。

对应上面的问题,取前 3 个元素,用一行代码就能够完结切片:>>> L[0:3]['Adam', 'Lisa', 'Bart']只用一个 : ,表明自始至终:>>> L[:]切片操作还能够指定第三个参数:>>> L[::2]['Adam', 'Bart']第三个参数表示每N 个取一个,上面的L[::2] 会每两个元素取出一个来,也就是隔一个取一个。

print L[4::5][-10:] 先获得5 的倍数,再取后10 个首字母大写def firstCharUpper(s):return s[:1].upper()+s[1:]range(1,101)方法是使用enumerate() 函数:>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):... print index, '-', name...0 - Adam1 - Lisa2 - Bart3 - Pauldict 对象有一个values() 方法,这个方法把dict 转换成一个包含所有value 的list ,这样,我们迭代的就是dict 的每一个value :d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }print d.values()# [85, 95, 59]for v in d.(iter)values():print v# 85# 95# 59items() 方法把dict 对象转换成了包含tuple 的list ,我们对这个list 进行迭代,可以同时获得key 和valued = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }n=0sum = 0.0for k, v in d.iteritems():sum = sum + vn+=1print k,':',vprint 'average', ':', sum/n[x * x for x in range(1, 11)]变量能够指向函数 f=abs根号import mathdef add(x, y, f):return f(x) + f(y)print add(25, 9, math.sqrt)map() 是Python 内置的高阶函数,它接收一个函数f 和一个list ,并通过把函数f 依次作用在list 的每个元素上,得到一个新的list 并返回。

def format_name(s):return s[:1].upper()+s[1:].lower()print map(format_name, ['adam', 'LISA', 'barT'])reduce() 函数也是Python 内置的一个高阶函数。

reduce() 函数接收的参数和map() 类似,一个函数f,一个list ,但行为和map() 不同,reduce() 传入的函数f 必须接收两个参数,reduce() 对list 的每个元素反复调用函数f ,并返回最终结果值。

reduce() 还可以接收第3 个可选参数,作为计算的初始值。

如果把初始值设为100 ,计算:reduce(f, [1, 3, 5, 7, 9], 100)成果将变为 125 ,由于榜首轮核算是:计算初始值和第一个元素:f(100, 1) ,结果为101 。

filter() 函数是Python 内置的另一个有用的高阶函数,filter() 函数接收一个函数f 和一个list ,这个函数f 的作用是对每个元素进行判断,返回True 或False ,filter() 根据判断成果主动过滤掉不契合条件的元素,回来由契合条件元素组成的新 list 。

利用filter() ,可以完成很多有用的功能,例如,删除None 或者空字符串:def is_not_empty(s):return s and len(s.strip()) > 0filter(is_not_empty, ['test', None, '', 'str', ' ', 'END'])根为整数def is_sqr(x):return math.sqrt(x)%1==0升序def cmp_ignore_case(s1, s2):if s1.lower()>s2.lower():return 1elif s1.lower()<s2.lower():return -1else:return 0print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)像这种内层函数引证了外层函数的变量(参数也算变量),然后回来内层函数的状况,称为闭包( Closure )。

返回闭包不能引用循环变量,请改写count() 函数,让它正确返回能计算1x1、2x2 、3x3 的函数。

def count():fs = []for i in range(1, 4):def f(i):def g():return i*ireturn gfs.append(f(i))return fsf1, f2, f3 = count()print f1(), f2(), f3()通过对比可以看出,匿名函数lambda x: x * x 实际上就是:def f(x):return x * x关键字 lambda 表明匿名函数,冒号前面的 x 表明函数参数。

测验空字符print filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])装修器 @new —fndef performance(f):def print_time(*args, **kw):print 'call '+f.__name__+'() in '+time.strftime('%Y-%m-%d',time.localtime(time.time()))return f(*args,**kw)return print_time装修器有 decorator 的状况下,再打印函数名:def log(f):def wrapper(*args, **kw):print 'call...'return f(*args, **kw)return wrapper@logdef f2(x):passprint f2.__name__def performance(unit):def fn(f):@functools.wraps(f)def wrapper(*args, **kw):t0 = time.time()back = f(*args, **kw)t1 = time.time()t = (t1 - t0) if unit =='s' else (t1 - t0) * 1000print 'call %s() in %s %s' % (f.__name__, t, unit)return backreturn wrapperreturn fnint() 函数还提供额外的base 参数,默认值为10。

相关主题