- 论坛徽章:
- 0
|
1、第一行需指定python路径
2、缩进很重要
3、关键参数的概念很有用
4、None 返回“没有任何东西”,每一个函数默认返回None
5、pass 空语句块
6、文档字符串,__doc__,没多大用
6、python中引入模块后(import)首先就要执行模块的主块,当然模块中可能全是函数
如果要避免使用模块名称:from 模块名 import 符号名,那麽使用该符号名就不用使
用模块名+点号+符号名,但是不推荐,容易造成程序不容易读,而且容易出错(特别是
在python简洁而简单的语法的基础上) import... as ... 起一个别名
7、模块的__name__属性,相当有用,解决了import的缺点,可以实现如果不是运行的本
模块而被调用,不调用主块- #!/usr/bin/python
- # Filename: using_name.py
- if __name__ == '__main__':
- print 'This program is being run by itself'
- else:
- print 'I am being imported from another module'
-
复制代码 8、删除一个变量/名称,你将无法再使用该变量——它就好像从来没有存在过一样。
9、可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。当你为dir()提供一个模块名的
时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表
10、元组语法与list相似,意义相当于枚举,可以为空,如果只含有一个元素,需要加逗号以区别于表达式(“one”, )
11、元组最通常的用法是用在打印语句中,可以使用格式控制符- #!/usr/bin/python
- # Filename: print_tuple.py
- age = 22
- name = 'Swaroop'
- print '%s is %d years old' % (name, age)
- print 'Why is %s playing with that python?' % name
复制代码 12、有一个内建的字典类型,但是没有冲突的解决方案,但这确实是字典的定义,想要更好的结构就自己实现吧。
语法:{key:value, key1:value1,...}
13、序列的概念:列表、元组和字符串都是序列,支持索引操作符和切片操作符。索引操作符让我们可以从序列中抓
取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。索引可以是负数,在那样的情况
下,位置是从序列尾开始计算的。序列的神奇之处在于你可以用相同的方法访问元组、列表和字符串。
14、如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使
用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的
话,可能会引来各种麻烦。[浅拷贝和深拷贝的关系]
15、str类有很多方法,如果要非常熟悉str的操作,参考help(str)
16、剩下的就是掌握很多系统库了,这个要靠经验,比如说os.system(命令)可用于执行shell命令,了解的库越多,
python就会让你完成更强大的功能。
17、接下来是面向对象,基本概念一样,this由代替self, 而且这个名字不一定要写成self,任何名字都可以,这也
带来了一个缺点,你必须在形参里面指定,调用函数时不用传递该参数。
构造函数:__init__(self, ......)
析构函数:__del__ 对象灭亡时或者调用del时被调用
Python中所有的类成员(包括数据成员)都是公共的 ,所有的方法都是有效的 。
只有一个例外:如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量。
支持多重继承
18、如果你已经厌烦了java、c++的读写文件,那么python会让你重新喜欢上文件读写,python主张解决问题的方案
越少越好,写文件就一个 f = file(name, 'w'),f.write(...)读文件也一样,f = file(name),f.read或readline
最后close
19、cPickle和pickle是叫做存储器的重要模块,可以非常方便地将一个对象存储到一个文件,然后再取存储从文件中取出来
pickle.dump(object, file object),构造对象时,pickle.load(file object) [储存、取存储]
20、异常:raise,except,try...finally
21、sys模块和os模块有很多强大功能。
22、在函数中接收元组和列表当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,它分别使用*和**前缀。
这种方法在函数需要获取可变数量的参数的时候特别有用。
23、lambda形式:lambda语句被用来创建新的函数对象,并且在运行时返回它们。lambda语句用>来创建函数对象。本质上,lambda
需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。注意,即便是print语句也不能用在lambda形式中,
只能使用表达式。
24、exec、eval、assert、repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。
学了这么久,给一个我自己写的一个程序吧,查找文件:- #!/usr/bin/python
- #Filename: find.py
- import os
- '''
- Created on 2010-11-6
- @author: cucugbgb
- '''
- a = raw_input()
- list = ["/home/fanqiang/eclipse"]
- while list.__len__() != 0:
- for dir in list:
- list.remove(dir)
- if os.path.isdir(dir):
- try:
- child = os.listdir(dir)
- for i in range(child.__len__()):
- if dir.__eq__("/") == False:
- child[i] = "/" + child[i]
- child[i] = dir + child[i]
- list = list + child
- except:
- print dir, "acess denied"
- elif dir.__contains__(a):
- print dir
复制代码 helloworld
/home/fanqiang/eclipse/plugins/org.python.pydev.customizations_1.4.8.2881/templates/google_app_engine/hello_webapp_world/helloworld.py
/home/fanqiang/eclipse/plugins/org.python.pydev.customizations_1.4.8.2881/templates/google_app_engine/hello_world/helloworld.py
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld-composite.xml
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld/helloworld-create.xml
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld/helloworld-update.xml
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld/helloworld-install.xml
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld/helloworld-feature.xml
/home/fanqiang/eclipse/configuration/org.eclipse.osgi/bundles/500/1/.cp/cheatsheets/helloworld/helloworld-extension.xml |
|