''' 函数的概念: 将特定功能的一些代码,整合在一个单元中,这个单元就叫做方法或函数 函数的定义: 1、使用关键字def定义 2、def后跟的是函数名(标识符) 3、函数名后面一定要有一对小括号(),python2是不带小括号的,python3要求必须带 4、小括号中是可以定义参数的(形式参数),不用指定数据类型,实际调用方法时传什么类型的数据就处理什么数据 5、小括号后是冒号,(冒号和缩进是在一起) 6、在函数代码块的第一行,可以放文档字符串(多行注释),如果不知道此函数的功能,可以使用函数._doc_查看函数的功能 7、return: 1)方法中不写return语句,返回None 2)方法中写return,但不指定返回的变量或值,返回None 3)方法中写return,并制定返回的数据,返回指定数据 4)方法中写return,并指定返回多个数据,使用逗号分隔,返回多个数据的元组 函数的调用:函数不调用,不执行 1、直接调用 area(5, 6),只需要用到一次,调用该方法并不关心返回值 2、输出调用 print(area(5, 6)),只需要用到一次 3、赋值调用 在代码中可能会使用多次,需要有一个变量把返回的数据保存起来 类和方法特性差不多:方法不调用,不执行;类,不创建对象,不能调用成员方法 对于类方法,是可以直接通过类名调用的,不需要创建对象的,eg:math.sin() 不用创建对象就可以调用的属性(变量)叫静态属性,是可以通过类名调用 python类中的构造方法名是:__init__(self) 私有变量是需要在变量前面加__ 类变量:所有类的对象同意使用的变量,不会随着对象的不同而改变 实例变量:是创建了对象才有的变量 局部变量:在类的方法中或者方法的声明上()里面定义的变量 python中以.py结尾的文件,我们就叫做模块 包:就是文件夹,里面需要有个文件__init__.py 导包或导模考:import XXX from XXX import yyy import XXX as zzz ''' # 声明一个方法,要指定参数聊表的,怎么指定? # 在python定义的变量,不是我们直接指定是什么类型,而是通过赋值的形式来确定的 # 参数列表就只有变量名,不需要数据类型,那么这个变量就可以接收任意类型的数据了 # def sum(a, b): # ''' # 这是一个加法运算 # ''' # # pass #空语句,起到占位符的作用 # return a + b # print(sum.__doc__) #文档字符串,这是一个加法运算 # # print(sum(2, 3)) # 求长方形面积的方法 def area(high, width): return high * width print(area(5, 6))
''' 函数的参数类型使用: 位置参数: 1、必须与声明中的参数个数保持一致,否则会报错 2、参数的顺序可以不一样,但是不保证结果的正确性,故数据类型也要保持一致 3、可以通过判断,确定传入参数的合理性,传入的参数类型如果不一致,解释器无法检查,需要在代码中添加判断语句(错了,会显示None) 关键字参数: 1、在关键字参数的后面不能跟着位置参数,会直接报语法错误 2、前面使用了关键字参数,后面一定也要使用关键字参数 3、位置参数后面是可以使用关键字参数,但是要求与声明的参数位置保持一致 默认值参数: 1、调用函数时,如果没有传递参数,则会使用默认参数 2、声明函数时要指定默认值 3、使用默认值可以起到避免漏掉参数导致的错误 4、使用场景:参数比较多,某个参数,一般不会变化,每次调用方法的时候就没有必要去填,如果写的话就按照设定数据来执行 不定长参数: 1、需要一个函数能处理比当初声明时更多的参数,这些参数就叫做不定长参数,和上述三种不同,声明时不会命名 2、使用场景:定义的方法的参数个数是不确定的 3、加了星号*的变量名会存放所有未命名的变量参数,一般使用*args,args是一个特定数据类型,其中可以放入多个数据 4、args是一个元组,调用方法是传参数的形式把数据放入元组args中,使用for循环对元组进行遍历取值 5、如果声明为第一个参数是位置参数,第二个是不定长参数,在调用的时候,我们传递的实际数据,第一个是位置参数,第二个之后的放入不定长参数 6、如果声明为,第一个参数是不定长参数,第二个是位置参数,在调用的时候,我们直接给位置参数,会报错(第二个变量拿不到),西能通过关键字参数给第二个参数进行传参 7、在后面自动化测试里面,我们需要记录脚本运行的情况,不同的脚本或用例,他们需要输出的日志内容可能不一样,这时候就需要将日志方法的参数定义为不定长的,用的时候传递什么,就在日志文件中写入什么 ''' # 所有语言中浮点数据,都是不精确的,做是否相等判断时,是不能用==直接判断,可以用差值小于多少误差数 # 变量定义的时候必须同时进行初始化(赋值) def print_hello(name, sex): # 判断sex的值是否为整型,是否是int的一个实例 if isinstance(sex, int): sex_dict = {1: '先生', 2: '女士'} print('hello %s %s ,welcome to python world!' % (name, sex_dict.get(sex))) print_hello('王炸', 1) #hello 王炸 先生 ,welcome to python world! print_hello(1, '王') #不加判断时输出hello 1 None ,welcome to python world! print('a' < 'b' < 'c') #True print('a' < 'b' and 'b' < 'c') #True print('ab' < 'ac') #True字符串是可以进行大小比较的,'ab'相当于['a','b'],相当于两个列表进行比较大小,按位进行对比 a = (1) print(type(a)) #<class 'int'>元组中至少有一个逗号(1,)表示元组 #元组、列表是容器类型,里面什么都可以放,字符串、整型数据、列表和元组都可以
