最近在研究动态脚本语言 Python , 出于对其语言精简度的喜欢及大学时期对 matlab 这样的数学领域语言的怀念, 再加上笔者是C++起家,Python中所涉及的del机制与特殊方法重载(类比于c++中的运算符重载)等
, 让笔者不自觉地玩起了 Python 。关于Python 发展历程与基本语法这里不再多说,主要记录一下学习过程中敲的一些样例代码。
首先介绍一下最基本的多行、带中文字符和特殊字符的字符串打印:
# -*- coding: utf-8 -*- #注意在首行加上上面这行注释,否则解释器会报错 print r\'\'\'中文测试/(\'\') 来个高难度的‘’/* 哈哈!()"" \'\'\'
关于带默认参数、可变参数的自定义函数及偏函数:
import functools print \'------------ 自定义默认参数函数 -----------------\' def power(x,n = 2): s = 1 while n > 0: s = s * x n = n - 1 return s print power(3) print power(3, 3) print \'------------ 算定义可变参数 -----------------\' def fn(*args): print args print fn(36,\'39\',47) print \'------- 函数默认参数 -----\' def myInt2(x,n = 2): return int(x,n) print myInt2(\'1101\') print \'------------ partial -----------------\' int2 = functools.partial(int,base = 2) print int2(\'1001\')
生成列表打印及其在条件过滤和嵌套循环中的应用:
print \'------------直接打印------------\' print range(0,13) print \'------------生成列表---------------\' print [x * x for x in range(1,8)] print \'-------------- 生成列表的高级用法 ------------------\' d = { \'Adam\': 90, \'Lisa\': 80, \'Bart\': 68} tdList = [\'<tr><td>%s</td><td>%s</td></tr>\' % (name,score) for name,score in d.iteritems()] print \'<table>\' print \'<tr><th>Name</th><th>Score</th></tr>\' print \'\n\'.join(tdList) print \'</table>\' print tdList print \'------------------ 列表条件过滤 ------------------\' print [x * x for x in range(1,11) if x % 2 != 0] print \'------------- 两种方式 实现多层嵌套打印 ----------------\' print \'------------ 1.传统方式 -----------\' L = [] for m in \'ABC\': for n in \'123\': L.append(m + n) print L print \'------------- 2.生成列表 ---------\' print [m + n for m in \'abc\' for n in \'123\']
关于迭代,这里以dict的迭代为例:
print \'------------ enumerate ---------------\' L = [\'Adam\',\'Lisa\',\'Bart\',\'Paul\'] for index,value in enumerate(L): print index,\'-\',value print \'------------- iteration of dict -----------\' d = {\'Adam\': 95, \'Lisa\': 80, \'Bart\': 60} print \'------ 直接打印值 --------\' print d.values() print \'------ 普能迭代 --------\' for v in d.values(): print v print \'------ 省内存迭代 --------\' for v in d.itervalues(): print v print \'------ 直接打印键值对 --------\' print d.items() print \'------ 键值一起迭代 --------\' for k,v in d.iteritems(): print k,\':\',v
最后提一下lambda函数,感觉它跟生成列表一样,能帮助使用者快生成一个自定义函数:
f = lambda x: x * x print f(3) myabs = lambda x: -x if x < 0 else x print myabs(-11) print myabs(12)