09 2014 档案
摘要:先来点题外话:在现代编程开发中,TDD(测试驱动开发)变得越来越流行(PS:DDD(领域驱动开发)也是,但两者并不冲突,就像面向过程和面向对象)。而作为TDD的根本——单元测试也是越来越重要,单元测试可以测试代码的正确性,例如以下的C#代码:1 public class Helper2 {3 ...
阅读全文
摘要:在上一篇中,我们使用了生成器来创建了一个可遍历的对象。在其中,我们使用了yield关键字。Python我也正在学习中,因此对yield的本质我并不熟悉,但是,在C#中,yield关键字则是语法糖,其内部维护着一个迭代状态(对于C#里的Array,这是当前遍历的元素下标)。那么,在Python中,是否...
阅读全文
摘要:先回顾列表解释1 lista = range(10)2 listb = [elem * elem for elem in lista]那么listb就将会是0至9的二次方。现在有这么一个需求,需要存储前10个斐波那契数到硬盘。那么先写产生斐波那契数的函数:1 def fib(max):2 n...
阅读全文
摘要:在Python中,正则表达式还有较其他编程语言有特色的地方。那就是支持松散正则表达式了。在某些情况,正则表达式会写得十分的长,这时候,维护就成问题了。而松散正则表达式就是解决这一问题的办法。用上一次分组的代码作为例子:1 import re2 userinput = input("please in...
阅读全文
摘要:作为一门现代语言,正则表达式是必不可缺的,在Python中,正则表达式位于re模块。1 import re这里不说正则表达式怎样去匹配,例如\d代表数字,^代表开头(也代表非,例如^a-z则不匹配任何小写字符),$代表结尾,这些百科或者其他书籍都有。例子一,字符串中是否包含数字:1 import r...
阅读全文
摘要:具体同列表解释,也是使用if来进行过滤例子,生成一个新的字典,并且是原来字典的键值交换。1 mydict={'Tom':18,'Mary':20}2 print({value:key for key,value in mydict.items()})结果为:{18:'Tom',20:'Mary'}
阅读全文
摘要:在某些情况下,我们需要对列表进行某些操作,例如对列表中的每一个元素都乘以2,这样一般来说就是遍历每个元素在乘以2。那么写下来就得两行了。而且这会修改原来的列表,如果要求不能修改原来的列表,又得多一行了。1 mylist = [1,3,5,7]2 copylist = []3 for i in myl...
阅读全文
摘要:stat方法:用于获取文件信息,例如创建时间、文件大小等。1 import os2 filestate=os.stat("e:/temp/test.txt")3 print(filestate.st_mtime)# 文件最后修改的时间距离1970/1/1的秒数。4 5 import time6 pr...
阅读全文
摘要:glob模块中有一个叫glob的方法可以获取某个目录下的文件。1 import glob2 temp=glob.glob("E:\\Temp\\*.txt")3 print(temp)则返回E盘下Temp文件夹下的所有txt文件的路径。注意返回的是一个列表。另外参数可以为一个相对路径,则以当前工作目...
阅读全文
摘要:首先肯定是要引入os模块了。1 import osgetcwd方法:1 print(os.getcwd())上面的语句将会输出当前的工作目录,相当于C#中的Environment.CurrentDirectory。chdir方法:1 os.chdir(r'C:\PythonTest\')修改工作目录...
阅读全文
摘要: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...
阅读全文
摘要:元组使用()定义,元组一旦定义就无法修改。元组的索引方式同列表,也是使用[]。元组也可以进行切片操作,使用方式同列表一样。可以说,一个没法修改的列表就是元组。在没有修改操作的情况下,应尽可能使用元组,因为效率更高更快。
阅读全文
摘要: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...
阅读全文
摘要:在实际的业务过程中,经常有这么一个操作:取一个列表的一部分进行操作,而不影响原来的列表。也就是将原来的列表复制一个部分副本并对其进行操作。举个完整例子:1 list = ['a','b','c','d','e']# 声明一个列表。2 sublist = list[1:3]# 对列表进行切片,取索引为...
阅读全文
摘要:列表已经用了很多次了。使用中括号包含元素。1 list = ['a','b','c']获取元素使用[]。1 print(list[0])输出a不过值得注意的是,[]只能是0到元素个数-1吗?在Python中并不是。1 print(list[-1])这行并不会报错,而是输出c。也就是说,在上面这个li...
阅读全文
摘要:Python中的三角函数位于math模块内。引入模块:1 import math输出pi1 import math2 print(math.pi)得:3.141592653589793math模块内还有sin、cos、tan之类的函数,与C#的用法一致。但有一点要注意的是:1 import math...
阅读全文
摘要:在Python中,不止有浮点数(float),而且还有分数(Fraction)这个类型。要使用分数,必须引入一个模块。1 import fractions然后就可以声明一个分数了1 x = fractions.Fraction(1,2)这样就声明了一个2分之1的分数,打印这个变量则会得出:1/2声明...
阅读全文
摘要:加法:+,与C#中并无区别,并且一样可以作用于字符串。但Python中不支持字符串与数值类型的相加。1 i = 12 s = '1'3 print(s + i)这样是会在运行时报错的,正确写法如下:1 i = 12 s = '1'3 print(s + str(i))Python中不支持自增,即:1...
阅读全文
摘要:在Python中可以使用isinstance函数来判断某个值或变量是否为某个类型。例子:1 print(isinstance(1,int))2 print(isinstance(1,float))3 print(isinstance('str',str))则将会输出:TrueFalseTrue相当于...
阅读全文
摘要: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('...
阅读全文
摘要:在Python中有两种注释,一种是普通注释,另一种是文档注释。普通注释是使用#开头1 print('output something') # here is comment而Python中多行注释也是使用#1 # comment 12 # comment 23 # comment 3而文档注释则是使...
阅读全文
摘要:除了 Http 模块可以模拟 Http 请求外,使用 Urllib 模块也是可以模拟 Http 请求的,只不过功能相对弱一点。1 import urllib.request2 3 opener = urllib.request.urlopen("http://www.baidu.com")4 byt...
阅读全文
摘要:模拟 http 请求是比较常见的一种需求,在 Python 中,使用 http 模块操作。 1 import http.client 2 3 # 创建 Http 连接。 4 http = http.client.HTTPConnection('www.baidu.com')...
阅读全文
摘要:在某些情况下,我们需要定义自己的异常并且抛出先定义一个错误:1 class MyError(BaseException):2 def __init__(self):3 pass上面定义了一个叫MyError的类,继承自BaseException。在Python中,所有的错误都...
阅读全文
摘要:错误是多种多样的,在 except 语句中,可以捕获指定的异常修改代码如下: 1 import io 2 3 path = r'' 4 mode = 'w' 5 6 try: 7 file = open(path,mode) 8 str = file.read() 9 p...
阅读全文
摘要:虽然叫错误,但跟 C# 中的异常是一回事。只不过 Python 中叫错误(Error)而 C# 中叫异常(Exception)。先手工产生一个异常:1 file = open('','r')上面一句由于路径是空路径,因此文件肯定是不存在的,执行这一句会引发 FileNotFoundError 这个错...
阅读全文
摘要:Python应用最广泛的要数web方面了。因此,socket显得十分重要。要使用socket,必须引入socket模块,因此在Python脚本开头先写入1 import socket学过socket的都知道,就是客户端和服务端的通信。因此新建client.py和server.py文件。先编写serv...
阅读全文
摘要:在Python中写文件也是得先打开文件的。1 file=open(r'E:\temp\test.txt','a')2 file.write('append to file')3 file.close()第一行使用追加模式打开文件,第二行则将内容写入文件,第三行关闭文件。除了write方法外,还有wr...
阅读全文
摘要:在Python中,读取文件使用open函数1 file=open(r'E:\temp\test.txt','r')2 var = file.read()3 print(var)4 file.close()第一行打开E:\temp\test.txt文件,注意字符串开头使用了r,r表明字符串内的内容不转...
阅读全文
摘要:在Python中,输出使用print函数,之前用过了。输入的话,则使用input函数。1 var = input()2 print('you input is' + var)输入haha则将输出you input is haha。可见input的作用与C#中的Console.ReadLine方法一样...
阅读全文
摘要:Python是一门面向对象语言,那么作为面向对象的特征——类也是有的。值得注意的是Python中一切皆对象,并不像C#中为了性能考虑,int这些在Python中也是对象。(C#中int是结构体)如何定义一个类:1 class Person:2 pass使用class关键字,上面定义了一个Pe...
阅读全文
摘要:在Python中定义函数的时候,可以使用参数默认值的方式定义函数例子:1 def welcome(who,state='is',action='talking'):2 print(who,state,action)调用函数:1 welcome('Tom')输出Tom is talking1 ...
阅读全文
摘要:先定义一个最基本的函数作为例子:1 def Print(msg):2 print(msg)函数名为Print,参数有一个,为msg,函数体调用print系统函数,输出msg。接下来就是可变参数,这个特性是比较特殊的,像C#中的params,但又有所不同。例子1:1 def PrintTupl...
阅读全文
摘要:例子:1 i = 12 while i < 10:3 print(i)4 i+=15 else:6 print('finish')输出1至9和finish在while语句中同样支持for语句所支持的continue、break和else
阅读全文
摘要:Python中循环可以使用for语句来实现1 list = ['Tom','Lucy','Mary']2 for name in list:3 print(name)则将会依次输出Tom Lucy Mary另外Python还支持continue和break关键字,用法与C#相同。比较有特点的...
阅读全文
摘要:Python的分支语句比较简单,只有if、else、elif三个关键字,也就是说,Python没有switch语句,而且,Python中并没有?:这个三目运算符。例子:1 age = 182 if age < 18:3 print('too young')4 elif age == 18:5...
阅读全文
摘要:在Python中,变量类型是固定的,一旦声明就不能修改其类型(在Python里感觉不应该用声明,而应该用使用)正确:1 var = 12 print(var)3 var = 24 print(var)依次输出变量var的值,1和2。错误:1 var = 12 print(var)3 var = "我...
阅读全文
摘要:1、部分函数加载1 from SameFolder import printSameFolder2 printSameFolder()该代码指从SameFolder.py中加载printSameFolder这个函数,而不加载SameFolder.py的其他函数。第二行即调用该函数。2、加载为别名1 ...
阅读全文
摘要:Python中使用import关键字进行模块加载。先在Visual Studio中建立PythonModuleLoad项目作为演示。1、同目录加载建立SameFolder.py文件写入代码:1 def printSameFolder():2 print("this method is in ...
阅读全文
摘要:Python安装包中已经包含了一个IDE了,叫IDLE,可以在Python的安装目录内找到路径为./Lib/idlelib/idle.bat或者可以在开始菜单中找到。但是这个IDE功能很弱,缺少语法提示等的功能。个人作为一名C#的程序员,能用Visual Studio编写Python就好了,搜索了一...
阅读全文
摘要:到Python的官方网站https://www.python.org/downloads/下载官方的安装包https://www.python.org/ftp/python/3.4.1/python-3.4.1.msi下载,完成后安装即可安装过程中注意选择全部(默认是不添加环境变量的),免得安装后再...
阅读全文
摘要:首先准备一个引发异常的方法。1 public static void ThrowException()2 {3 throw new ArgumentException(); 4 }然后在单元测试项目中,写下测试方法。[TestMethod][ExpectedException(typeof...
阅读全文

浙公网安备 33010602011771号