摘要: 先来点题外话:在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:1 public class Helper2 {3 ... 阅读全文
posted @ 2014-09-29 23:31 h82258652 阅读(1015) 评论(0) 推荐(0) 编辑
摘要: 在上一篇中,我们使用了生成器来创建了一个可遍历的对象。在其中,我们使用了yield关键字。Python我也正在学习中,因此对yield的本质我并不熟悉,但是,在C#中,yield关键字则是语法糖,其内部维护着一个迭代状态(对于C#里的Array,这是当前遍历的元素下标)。那么,在Python中,是否... 阅读全文
posted @ 2014-09-29 22:23 h82258652 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 先回顾列表解释1 lista = range(10)2 listb = [elem * elem for elem in lista]那么listb就将会是0至9的二次方。现在有这么一个需求,需要存储前10个斐波那契数到硬盘。那么先写产生斐波那契数的函数:1 def fib(max):2 n... 阅读全文
posted @ 2014-09-29 21:54 h82258652 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 在Python中,正则表达式还有较其他编程语言有特色的地方。那就是支持松散正则表达式了。在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了。而松散正则表达式就是解决这一问题的办法。用上一次分组的代码作为例子:1 import re2 userinput = input("please in... 阅读全文
posted @ 2014-09-29 21:15 h82258652 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 作为一门现代语言,正则表达式是必不可缺的,在Python中,正则表达式位于re模块。1 import re这里不说正则表达式怎样去匹配,例如\d代表数字,^代表开头(也代表非,例如^a-z则不匹配任何小写字符),$代表结尾,这些百科或者其他书籍都有。例子一,字符串中是否包含数字:1 import r... 阅读全文
posted @ 2014-09-29 20:56 h82258652 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 具体同列表解释,也是使用if来进行过滤例子,生成一个新的字典,并且是原来字典的键值交换。1 mydict={'Tom':18,'Mary':20}2 print({value:key for key,value in mydict.items()})结果为:{18:'Tom',20:'Mary'} 阅读全文
posted @ 2014-09-29 19:36 h82258652 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 在某些情况下,我们需要对列表进行某些操作,例如对列表中的每一个元素都乘以2,这样一般来说就是遍历每个元素在乘以2。那么写下来就得两行了。而且这会修改原来的列表,如果要求不能修改原来的列表,又得多一行了。1 mylist = [1,3,5,7]2 copylist = []3 for i in myl... 阅读全文
posted @ 2014-09-29 19:31 h82258652 阅读(1587) 评论(0) 推荐(1) 编辑
摘要: stat方法:用于获取文件信息,例如创建时间、文件大小等。1 import os2 filestate=os.stat("e:/temp/test.txt")3 print(filestate.st_mtime)# 文件最后修改的时间距离1970/1/1的秒数。4 5 import time6 pr... 阅读全文
posted @ 2014-09-29 19:10 h82258652 阅读(225) 评论(0) 推荐(0) 编辑
摘要: glob模块中有一个叫glob的方法可以获取某个目录下的文件。1 import glob2 temp=glob.glob("E:\\Temp\\*.txt")3 print(temp)则返回E盘下Temp文件夹下的所有txt文件的路径。注意返回的是一个列表。另外参数可以为一个相对路径,则以当前工作目... 阅读全文
posted @ 2014-09-29 19:00 h82258652 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 首先肯定是要引入os模块了。1 import osgetcwd方法:1 print(os.getcwd())上面的语句将会输出当前的工作目录,相当于C#中的Environment.CurrentDirectory。chdir方法:1 os.chdir(r'C:\PythonTest\')修改工作目录... 阅读全文
posted @ 2014-09-29 18:51 h82258652 阅读(292) 评论(0) 推荐(0) 编辑
摘要: add方法:1 s = {1,2,3}2 s.add(4)3 print(s)# {1, 2, 3, 4}同list的append方法,若调用s.add(3),则不会有任何影响。这点与C#中的HashSet有区别。update方法:1 s = {1,2,3,4,5}2 s.update({3,5,7... 阅读全文
posted @ 2014-09-29 18:10 h82258652 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 元组使用()定义,元组一旦定义就无法修改。元组的索引方式同列表,也是使用[]。元组也可以进行切片操作,使用方式同列表一样。可以说,一个没法修改的列表就是元组。在没有修改操作的情况下,应尽可能使用元组,因为效率更高更快。 阅读全文
posted @ 2014-09-29 17:13 h82258652 阅读(169) 评论(0) 推荐(0) 编辑
摘要: in关键字:注意这个是关键字,用来判断元素是否在集合中存在。1 list = ['a','b','c']2 print('a' in list)3 print('f' in list)将依次输出 True 和 False+:1 lista=['a','b']2 listb=['c','d']3 li... 阅读全文
posted @ 2014-09-29 17:07 h82258652 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 在实际的业务过程中,经常有这么一个操作:取一个列表的一部分进行操作,而不影响原来的列表。也就是将原来的列表复制一个部分副本并对其进行操作。举个完整例子:1 list = ['a','b','c','d','e']# 声明一个列表。2 sublist = list[1:3]# 对列表进行切片,取索引为... 阅读全文
posted @ 2014-09-29 16:37 h82258652 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 列表已经用了很多次了。使用中括号包含元素。1 list = ['a','b','c']获取元素使用[]。1 print(list[0])输出a不过值得注意的是,[]只能是0到元素个数-1吗?在Python中并不是。1 print(list[-1])这行并不会报错,而是输出c。也就是说,在上面这个li... 阅读全文
posted @ 2014-09-29 16:22 h82258652 阅读(331) 评论(0) 推荐(0) 编辑
摘要: Python中的三角函数位于math模块内。引入模块:1 import math输出pi1 import math2 print(math.pi)得:3.141592653589793math模块内还有sin、cos、tan之类的函数,与C#的用法一致。但有一点要注意的是:1 import math... 阅读全文
posted @ 2014-09-29 16:12 h82258652 阅读(11825) 评论(0) 推荐(0) 编辑
摘要: 在Python中,不止有浮点数(float),而且还有分数(Fraction)这个类型。要使用分数,必须引入一个模块。1 import fractions然后就可以声明一个分数了1 x = fractions.Fraction(1,2)这样就声明了一个2分之1的分数,打印这个变量则会得出:1/2声明... 阅读全文
posted @ 2014-09-29 16:03 h82258652 阅读(7201) 评论(0) 推荐(0) 编辑
摘要: 加法:+,与C#中并无区别,并且一样可以作用于字符串。但Python中不支持字符串与数值类型的相加。1 i = 12 s = '1'3 print(s + i)这样是会在运行时报错的,正确写法如下:1 i = 12 s = '1'3 print(s + str(i))Python中不支持自增,即:1... 阅读全文
posted @ 2014-09-29 15:56 h82258652 阅读(866) 评论(0) 推荐(0) 编辑
摘要: 在Python中可以使用isinstance函数来判断某个值或变量是否为某个类型。例子:1 print(isinstance(1,int))2 print(isinstance(1,float))3 print(isinstance('str',str))则将会输出:TrueFalseTrue相当于... 阅读全文
posted @ 2014-09-29 15:34 h82258652 阅读(301) 评论(0) 推荐(0) 编辑
摘要: type函数可以检测任何值或变量的类型。例子: 1 def printType(var): 2 print(type(var)) 3 4 class TestClass: 5 pass 6 7 printType(1) 8 printType(1.5) 9 printType('... 阅读全文
posted @ 2014-09-29 15:29 h82258652 阅读(373) 评论(0) 推荐(0) 编辑