最近在研究动态脚本语言 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 ' '.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)