python学习笔记

来源:互联网 发布:海马玩mac版 编辑:程序博客网 时间:2024/06/05 15:20
1.Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身


2.在Python中有4种类型的数——整数、长整数、浮点数和复数 (-5+4j)和(2.3-4.6j)是复数的例子


3.利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。 ''' abc abc '''


4.自然字符串通过给字符串加上前缀r或R来指定(类似于php中的'')。例如r"Newlines are indicated by \n" 一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成'\\1'或r'\1'。


5.字符串是不可变的


6.把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s' 'your name?'会被自动转为"What's your name?"


7.单引号和双引号字符串是完全相同的(等于PHP中的")


8.标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符


9.Python希望每行都只使用一个语句,这样使得代码更加易读 我从来没有在Python程序中使用过或看到过分号


10.不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我 强烈建议 你在每个缩进层次使用 单个制表符 或 两个或四个空格 。
选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。


11.** 返回x的y次幂3 ** 4得到81(即3 * 3 * 3 * 3)


12.// 取整除 返回商的整数部分 4 // 3.0得到1.0


13.not 布尔“非” 如果x为True,返回False。如果x为False,它返回True。 x = True; not x返回False。(PHP中的!)


14.and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。 x = False; y = True; x and y,由于x是False,返回False。(PHP 中的&&)


15.or 布尔“或” 如果x是True,它返回True,否则它返回y的计算值。 x = True; y = False; x or y返回True。短路计算在这里也适用(PHP 中的||)


16.if elif和else从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块


17.在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作


18.while循环,while循环可以使用一个else语句来处理退出情况
while running:
    guess = int(raw_input('Enter an integer : '))
    if guess == number:
        print 'Congratulations, you guessed it.' 
        running = False # this causes the while loop to stop
    elif guess < number:
        print 'No, it is a little higher than that' 
    else:
        print 'No, it is a little lower than that' 
else:
    print 'The while loop is over.' 
    # Do anything else you want to do here

19.False 和 True 首字母大写


20.for..in循环对于任何序列都适用


21.while和for语句中使用了break语句,else中的内容不会执行


22.要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能
global x

23.可以使用同一个global语句指定多个全局变量。例如global x, y, z


24.不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参


25.如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数
func(25, c=24) (对参数指定名称)

26.文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 强烈建议 你在你的函数中使用文档字符串时遵循这个惯例。
'''getItemFromDB.


This is a function to get item from db
'''


27.对你所写的任何正式函数编写文档字符串 它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述
 使用__doc__(注意双下划线)调用函数的文档字符串属性
 
28.模块的文件名必须以.py为扩展名 import 模块名


29.import sys后打印sys.path 获得当前环境变量
sys.argv 脚本的名称总是sys.argv列表的第一个参数。后面是各个参数名称


30.字节编译的.pyc文件会使脚本运行的更快


31.if __name__ == '__main__': 每个Python模块都有它的__name__,如果它是'__main__',这说明这个模块被用户单独运行


32.使用内建的dir函数来列出模块定义的标识符


33.有三种内建的数据结构——列表、元组和字典


34.元组和列表十分类似,只不过元组和字符串一样是 不可变的 即你不能修改元组。元组通过圆括号中用逗号分割的项目定义。
zoo = ('wolf', 'elephant', 'penguin')


35.含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )


36.元组最通常的用法是用在打印语句中 print '%s is %d years old' % (name, age)


37.字典 类似于php中的array


38.序列 shoplist[-1](最后一个元素)  shoplist[1:3](第二个元素到第四个元素)  shoplist[:](整个列表)  name[2:](第三个元素到最后)


39.只是如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的话,可能会引来各种麻烦。


mylist = shoplist # 只是复制了相同的指针
mylist = shoplist[:] # 复制了整个序列


40.在程序中使用的字符串都是str类的对象


41.delimiter = '_*_'
mylist = ['Brazil', 'Russia', 'India', 'China']
print delimiter.join(mylist)
(explode函数)


41.定义一个python的类
class testClass:
    def showTest(self,name):
        print 'hello'
    def showTest2(self,name):
        print 'hello'
self.name = name


p2 = testClass()
p2.showTest()


42.python的构造函数 __init__方法


43.我们可以在运行时使用Person.__doc__和Person.sayHi.__doc__来分别访问类与方法的文档字符串


44.__del__方法 析构函数


45.如果你使用的数据成员名称以 双下划线前缀 比如__privatevar,Python的名称管理体系会有效地把它作为私有变量 默认所有的都是公共的


46.python 的继承
class Teacher(SchoolMember):
    '''Represents a teacher.'''
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary
        print '(Initialized Teacher: %s)' % self.name


    def tell(self):
        SchoolMember.tell(self)
        print 'Salary: "%d"' % self.salary


47. Python是一个高度面向对象的语言


48.import cPickle as p 以便于我们可以使用更短的模块名称


49.使用try..except语句来处理异常
try:
    s = raw_input('Enter something --> ')
except EOFError:
    print '\nWhy did you do an EOF on me?'
    sys.exit() # exit the program
except:
    print '\nSome error/exception occurred.'
else:
    print 'No exception was raised.'
finally:
pirnt 'eeeee'


50.sys.stdin、sys.stdout和sys.stderr它们分别对应你的程序的标准输入、标准输出和标准错误流


51.os.linesep字符串给出当前平台使用的行终止符


52.os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.existe()函数用来检验给出的路径是否真地存在s


53.__str__(self) 在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other) 当使用 小于 运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key) 使用x[key]索引操作符的时候调用。
__len__(self) 对序列对象使用内建的len()函数的时候调用。


53.listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]


54.def powersum(power, *args):
由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。


55.def make_repeater(n):
    return lambda s: s*n


twice = make_repeater(2)


print twice('word')
make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回


56.exec语句用来执行储存在字符串或文件中的Python语句


57.eval语句用来计算存储在字符串中的有效Python表达式


58.assert len(mylist) >= 1 如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误


59.
i = []
>>> i.append('item')
>>> `i`
"['item']"
repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容





















原创粉丝点击