因个人习惯,在阅读和学习文字资料时,习惯摘写笔记,因此在这里留下自己的学习记录。笔记的内容偏摘抄为主,并非自己的原创内容。
内容基于:《简明 Python 教程》Swaroop, C. H. 著沈洁元 译
(1)定义
函数是重用的程序段,可以为该程序段命名,然后允许在程序的热河地方通过函数名调用该程序段(即调用函数)。
函数可以分为两类:内置函数(python自带的)、自定义函数(自己编写的,通过def关键字定义的函数)
(2)内置函数
python已经为我们写好的,可以直接调用的函数。如:
1、input():获取一个系统输入并返回一个字符串(python2中有区分input()和raw_input(),python3去掉raw_input(),若要达到python2的input效果,可用eval(input())代替);
例子:value = input('输入提示语') value是一个字符串;value =(int)input('输入提示语') value整数
2、range():有三个参数(start,stop,step),start=起始数(缺省默认为0) stop=结束数(序列不包括结束数,不能缺省) step=步长(即增量,不填默认为1,必须为非0整数,否则抛异常ValueError) 序列为[start,start+step,start+2*step.........stop],一般配合for语句使用。
3、len():返回字符串、列表、字典、元组等长度,参数为(字符串、列表、字典、元组等变量),返回长度值,类似Java的length()、size()方法。
4、dir():列出模块中的所有标识符(变量、函数、类),指定模块则返回指定模块,不指定模块则返回当前模块
5、rjust(宽度,填充字符):返回指定宽度的字符串,右对齐,右边长度不足有指定填充符填充;例:字符串变量名.rjust(100,'*')
(3)自定义函数
参考Java的形式,格式为 关键字(def) + 标识符(函数名) + 圆括号(指定参数)+ 冒号(:) 换行开始程序段
函数的参数用逗号分隔,调用时以同样的方式供值,函数中的参数名称为形参,供函数调用的值为实参。
局部变量:
在函数内声明的变量,若与函数外的变量同标识符,则两者无任何关系。(作用域问题)
作用域:
变量的作用域是它们被定义的块,始于被定以的逻辑行。
全局变量:
函数内使用函数外的变量,操作的是函数外的变量(global关键字,类似于Java的this,须在变量使用前定义)。
允许指定同时多个全局变量,变量用逗号分隔。global a,b,c
默认参数:
对于个别函数的参数,你希望它是可选的,即调用时不供值,则为函数提供默认的值。(只需在定义函数时,为相应参数赋值即可),注意:无默认值的形参必须在有默认值的形参前面(形参的定义顺序)
关键参数:
定义:调用函数时,通过命名赋值为相应的形参供值。
优点:
1、可以忽略参数的顺序(前提,调用函数时关键参数不能位于实参前面(传统形式)),因为标识符匹配(传统是参数供值顺序须与形参顺序一致,从而匹配形参);例: func(c=100,2)这是错误的,除非2也是关键参数形式。
2、若所有形参都有默认值,我们可以只给需要的形参赋值。
pass:在python中表示一个空的语句块。
1、文档字符串(DocStrings)
是一个重要的工具,在程序运行的时候,支持从函数恢复文档字符串。
格式:三单引号的字符串文本,一般写一行、空一行、再在下一行继续写,作用是输出函数说明,通过help(函数名)输出DocStrings文本,或者 print 函数名.__doc__(左右两个下划线)打印指定函数的DocStrings文本。(一般用处不大,公共函数可以写)
(1)str(object):将相应的数据类型转成字符串
(2)repr():将对象转换为表达式
(1)os.urandom(位数) :产生指定位数的随机数(当然还可以指定随机的类型,具体用法请自查)
(3)len(object):获取序列个数(类java的size和length)
(4)rang(start,end,stud):获取指定范围随机数值的列表
(5)type(object):获取对象的类型
(6)input(“提示信息”):获取用户系统输入,等同python2的raw_input(),输入均为转为字符串,python3去掉raw_input()
(7)eval('字符串'):计算字符串中的有效表达式,并返回一个对象
(8)dictObject.items():将字典返回可遍历的元组列表(即列表的元素类型是元组)
(1)__name__:当前模块名,当前进程执行则固定为__main__
(2)__init__:实例化对象前执行
(3)__del__:删除实例前执行