《最新PYTHON知识点汇总》由会员分享,可在线阅读,更多相关《最新PYTHON知识点汇总(30页珍藏版)》请在金锄头文库上搜索。
1、print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出:print The quick brown fox, jumps over, the lazy dog在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。如果字符串本身包含怎么办?比如我们要表示字符串Im OK,这时,可以用 括起来表示。类似的,如果字符串包含,我们就可以用 括起来表示:如果字符串既包含又包含怎么办?这个时候
2、,就需要对字符串的某些特殊字符进行“转义”,Python字符串用进行转义。n 表示换行t 表示一个制表符 表示 字符本身如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀r,表示这是一个raw字符串,里面的字符就不需要转义了。如,r(_)/ (_)/。如果要表示多行字符串,可以用.表示如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释# -*- coding: utf-8 -*-print u中文在Python中,布尔类型还可以与其他数据类型做
3、and、or和not运算直接用 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。因此,要打印第一名同学的名字,用 L0添加list 的append()方法或者insert()方法定位删除L.pop()对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。if age =
4、 18:要避免嵌套结构的 if . else .,我们可以用if . 多个elif . else .的结构,一次写完所有的规则奇数加和 for a in L:sum+=a x += 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.
5、remove():s.add()比较函数cmp(x,y)如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:def fn(*args): print args可变参数的名字前面有个*号,我们可以传入0个、1个或多个参数给可变参数r.append(Li) 向r添加对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。对应上面的问题,取前3个元素,用一行代码就可以完成切片: L0:3Adam, Lisa, Bart只用一个:,表示从头到尾: L:切片操作还可以指定第三个参数: L:2Adam, Bart第三个参数表示每N个取
6、一个,上面的 L:2 会每两个元素取出一个来,也就是隔一个取一个。print L4:5-10: 先获得5的倍数,再取后10个首字母大写 def firstCharUpper(s): return s:1.upper()+s1: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转换成一个包含所
7、有value的list,这样,我们迭代的就是 dict的每一个 value:d = Adam: 95, Lisa: 85, Bart: 59 print d.values()# 85, 95, 59for 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
8、+ v n+=1 print k,:,vprint average, :, sum/nx * 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()+s1:.lower()print m
9、ap(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
10、()函数是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.sqr
11、t(x)%1=0升序 def cmp_ignore_case(s1, s2): if s1.lower()s2.lower(): return 1 elif s1.lower() 0, test, None, , str, , END)装饰器newfndef 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装饰器有decorat
12、or的情况下,再打印函数名:def log(f): def wrapper(*args, *kw): print call. return f(*args, *kw) return wrapperlogdef 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) * 1000 print call %s() in %s %s % (f._name_, t, unit) return