Python 学习
第五天
1》函数了解
(1)函数的出现解决了多次重复书写某一部分代码的问题
(2)函数往往是莫格功能的集合
(3)函数不要和我们数学中的函数联系起来
(4)函数就是个代码块,具有对立的功能,也可以理解为一个对象
2》函数定义与调用
函数的定义:
函数代码块以def关键字开头,后接函数标识符名称和小括号()
函数内容以冒号开始,并且必须要缩进
def 函数名():
函数体
函数的调用:
执行执行函数名就调用了
每次调用某个函数时,该函数体都会从头开始
当函数中代码块执行完毕时,意外着调用结束
函数的定义一定要在函数调用之前,否则找不到函数
3》函数文档说明
def 函数名(a,b):
'''
注释
'''
查看函数的文档信息
help(函数名)
4》函数参数
(1)定义
def 函数名(parim1,parim2):
函数体
parim1,parim2 是形参
调用的时候,传的参数就实参
def add(num1,num2):
'''
:param num1:
:param num2:
:return:
'''
return num1+num2
print(add(10, 20))
help(add)
'''
函数参数类型
位置参数
1.必须与声明中的参数个数保持一致
2.参数顺序可以不一样,当不保证结果不正确,可以通过判断,确定数据合理性
关键字参数
默认值参数
不定长参数
'''
# 位置参数
# 通过代码看出:name 是字符串,sex是整型
# def pa_hell(name,sex):
# # 这个方法去判断是否是摸一个类
# if isinstance(sex,int):
# sex_dict = {1: u'先生', 2: u'女士'}
# print('%s %s' %(name,sex_dict.get(sex)))
# else:
# print('参数错误')
#
# pa_hell('dd','2')
# 关键字参数(一个参数用关键字参数,其他参数也必须用关键字参数)
# def pa_hell1(name,sex):
# sex_dict = {1: u'先生', 2: u'女士'}
# print('%s %s' %(name,sex_dict.get(sex)))
#
#
# pa_hell1(sex= 2, name= 'dd')
# 默认值参数
# 1.使用场景,参数比较多,某个参数,一般不会变化,每次调用方法的时候没有必要必填
# 2.对于默认值参数来说,调用的时候,你写与不写,他都在哪里,不写则是默认值
# print就是一个默认参数
#print('123', end='/t')
# 定义一个默认值参数
# def getUserInfo(name,age,sex='man'):
# print("%s %s %s" %(name,age,sex))
# getUserInfo("dd",12)
# 不定长参数
# 1.场景定义的方法的参数是不确定的
# 2.使用不定长的参数(可以是1个,2个,n个)
# 3.使用*ages做为变量名,args是特定的数据类型,可以放入多个数据
# 4.ages类型是一个元组,调用方法参数的形式把元素放入元组args,通过for进行取值
# 5.如果声明为,第一个参数是位置参数,第二个是不定长参数,再调用的时候,我们传递的实际数据,第一个是位置参数,第二个是不定长参数
# 6.如果声明为,第一个参数是不定长参数,第二个是位置参数,再调用的时候,我们传递的实际数据时没第二个变量获取不到值,这只能通过第二个参数后边的用关键字参数传参
# def sum(*args):
# for i in args:
# print(i)
#
# sum(1,2,3,4)
# def sum1(a,*args):
# for i in args:
# print(i)
#
# sum1(1,2,3,4)
def sum2(*args,a):
for i in args:
print(i)
sum2(1,2,3,4,a=12)
5》函数返回值
函数执行完成后,返回回来的数据
一个函数可以有返回值,也可以没有返回值
函数返回数据的时候用关键字return
一旦执行了return,后面的代码不会执行了
如果要返回多个值,就返回一个容器(元组,字典等)
6》四种函数类型
(1)无参数,无返回值的函数
(2)无参数,有返回值的函数
(3)有参数,无返回值的函数
(4)有参数,有返回值的函数
7》函数的嵌套调用
一个函数里面有调用了另一个函数,就是所谓的函数调用
8》细节
(1)python中一切都是对象,严格意义我们不能说值传递还是引用传递,我们说传不可变对象和传可变对象
(2)可变对象和不可变对象
string,tuples和number是不可变对象,而list,dict是可变对象
不可变类型:变量a = 5然后再赋值a=10,这里实际是生成一个int对象10,让a再指向它。
可变类型:变量赋值la = [1,2,3,4]后,赋值a[2]=5,则是la的第三个元素改变,而la不变。
9》lambda方法
'''
lambda方法:匿名方法,没有方法名
这种方法只使用一次,用完就不用了,省内存
lambda是一个表达式,不需要def定义,只能写简单的逻辑
'''
sun = lambda a,b: a + b
print(sun(1, 2))