python 系统学习

来源:互联网 发布:如何修改知乎首页话题 编辑:程序博客网 时间:2024/06/04 18:28

给自己python的学习画上一个句号,系统学习以下,找个这个教程

http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html


记录下了部分知识点:

一些方法

>>>print a

>>>print type(a)

这里,我们学到一个内置函数type(), 用以查询变量的类型。

>>>a = 1.3

>>>print a,type(a)

我们看到print的另一个用法,也就是print后跟多个输出,以逗号分隔。

函数

函数可以return 为null,也就是不写return .

return 可以返回一个值,也可以返回多个值,用逗号分隔。

值传递 和 指针传递  java中有类似的概念。


python类和继承


http://www.cnblogs.com/vamei/archive/2012/06/02/2531515.html


它的参数中有一个self,它是为了方便我们引用对象自身。方法的第一个参数必须是self,无论是否用到。

在方法内部通过self来调用类的其它属性,类似与java中的this


__init__()方法

__init__()是一个特殊方法(special method)。Python里会有一些特殊方法,Python会以特别的方式处理

它们。特殊方法的名字的特点是前后都有两个下划线


__init__()方法的特殊在于,如果你在类中定义了这个方法,一旦你根据这个类建立对象,Python就会

动调用这个方法(这个过程也叫初始化)。

特殊方法有:

http://docs.python.org/2/reference/datamodel.html#special-method-names


帮助

类似linux 中的man 或 --help

man adduser 很全
adduser --help

>>>print dir(list)

help()用来查询的说明文档。你可以尝试一下

>>>print help(list)

(list是Python内置的一个类,对应于我们之前讲解过的表)


python模块,多文件调用。


引入(import)和使用模块

我们先写一个first.py文件,内容如下:

def laugh():    print 'HaHaHaHa'

再写一个second.py

import firstfor i in range(10):    first.laugh()

在second.py中,我们并没有定义laugh函数,但通过从first中引入(import),我们就可以直接使用

first.py中的laugh函数了。


python 函数默认值

参数默认值(default)

定义函数的时候,使用形如a=19的方式,可以给参数赋予默认值。如果该参数最终没有被传递值,将使用该默认值。

def f(a,b,c=10):    print a,b,cf(3,2)
f(3,2,1)

在第一次调用函数f时, 我们并没有足够的值,c没有被赋值,c将使用默认值10.

第二次调用函数的时候,c被赋值为1,不再使用默认值。


包裹位置,包裹关键字 解包裹

http://www.cnblogs.com/vamei/archive/2012/07/08/2581264.html



循环方法 range() enumerate() zip()的使用

http://www.cnblogs.com/vamei/archive/2012/07/09/2582435.html


循环对象和函数对象

http://www.cnblogs.com/vamei/archive/2012/07/09/2582499.html

http://www.cnblogs.com/vamei/archive/2012/07/10/2582772.html

动态类型 

类似与java中的声明(堆)和引用(栈)
http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html

其他

subprocess包被用于执行外部命令

java中使用这个Runtime.getRuntime().exec(cmd)


def suqare_sum(a,b):    c=a**2 + b**2    return cdef suqare_sum_1(a,b):    c=a**2 + b**2    return a,b,cprint suqare_sum(2,3),type(suqare_sum(2,3))print suqare_sum_1(2,3),type(suqare_sum_1(2,3)),suqare_sum_1(2,3)[0]    a = 1def change_integer(a):    a = a + 1    return aprint change_integer(a)print a#===(Python中 "#" 后面跟的内容是注释,不执行 )b = [1,2,3]def change_list(b):    b[0] = b[0] + 1    return bprint change_list(b)print b#print dir(list)#print help(list)print [1,2,3] + [5,6,7]dic = {'tom':11, 'sam':57,'lily':100}print type(dic)def func(*name):    print type(name)    print namefunc(1,4,6)func(5,6,7,1,2,3)def func_1(**dict):    print type(dict)    print dictfunc_1(a=1,b=9)func_1(m=2,n=1,c=11)S = 'abcdefghijk'for i in range(0,len(S),2):    print S[i]print "---------------------------------"for (index,char) in enumerate(S):    print index," ",charprint "---------------------------------"ta = [1,2,3]tb = [9,8,7]tc = ['a','b','c']for (a,b,c) in zip(ta,tb,tc):    print a,b,cprint "-------------generator--------------------"def gen():    a = 100    yield a    a = a*8    yield a    yield 1000for i in gen():    print i  print "---------------list comprehension------------------"L = [x**2 for x in range(10)]print Lprint "---------------map------------------"re = map((lambda x: x+3),[1,3,5,6])print redef add_test(x):    return x+3print map(add_test,[1,3,5,6])re1 = map((lambda x,y: x+y),[1,2,3],[6,7,9])print re1print "---------------filter------------------"def func_filter(a):    if a > 100:        return True    else:        return Falseprint filter(func_filter,[10,56,101,500])print "---------------reduce------------------"print reduce((lambda x,y: x+y),[1,2,5,7,9])print "----------------动态类型-----------------"def f_(x):    x = 100    print xa = 1f_(a)print adef f__(x):    x[0] = 100    print xa = [1,2,3]f__(a)print a


原创粉丝点击