python入门基础-初识函数
1.函数
1 函数 # 函数是组织好的,可以重复的使用,用来实现单一或相关联功能的代码段。 # 函数能提高应用的模块性和代码的重复利用率。
2.函数的定义
#2 函数的定义 #1、def关键词开头 + 空格 + 函数名 + () + : #2、函数名命名只能包含字母、数字和下划线,但不能以数字开头,并且命名应具有可描述性。 #3、在函数下面的第一行中应写上该功能和参数的说明。
3.return作用
#3 return关键作用 #return是一个关键字,它在python中的作用是返回一个方法的值。 #return返回值也分没有返回值、返回一个值、返回多个值三种情况 #(1)【没有返回值】在不写return的情况下,调用此函数会返回一个None。 def my_len(): #定义一个函数 """计算字符串的长度""" s1 = '今天是个好日子啊!' count = 0 for i in s1: count += 1 print(my_len()) #打印并调用这个函数,因为没有函数中没有return,所以打印出来的None #(2)【没有返回值】只写return,也会返回None;那没有写return和只写return有什么区别呢? #只写return会有一个功能,就是“一旦遇到return,就会结束整个函数!” def my_print(): #定义函数 print('111aaa') return print('222bbb') #这句命令不会被执行,因为上一句是return print(my_print()) #调用函数,得到的返回值是None #return None和中情况一样 #(3)【返回一个值】在return后面加上要返回的值就可以了,注意中间需要存在空格,return支持返回任意类型的值。 def my_len(): #定义函数 """计算字符串的长度""" s1 = '今天是个好日子啊!' count = 0 for i in s1: count += 1 return count #将count对应的值返回 print(my_len()) #调用函数,打印出函数返回的值 #(4)【返回多个值】return支持返回多个任意数据类型的值。 #多个变量接收:有多少返回值就用多少个变量接收。 #用一个变量接收:得到的是一个元组。 #多个变量接收 def ret_demo1(): #定义函数 s1 = '1','2','3',['11','22'] return s1 a,b,c,d = ret_demo1() #用多个变量接收函数的返回值 print(a,b,c,d) #最终打印出 1 2 3 ['11', '22'] #一个变量接收 def ret_demo2(): #定义函数 s2 = '1','2','3',['11','22'] return s2 a = ret_demo2() #用一个变量接收函数返回值 print(a) #最终打印出一个元组 ('1', '2', '3', ['11', '22'])
4.函数的参数
def my_len(s1): #s1是形式传参,简称 形参 """计算字符串的长度""" count = 0 for i in s1: count += 1 return count str_len = 'hello word!' print(my_len(str_len)) #str_len是实际传参,简称 实参 #实际传参:指的是 调用 函数时传递的参数称之为“实际传参”,简称实参。 #形式传参:指的是 定义 函数时写的变量名称之为“形式传参”,简称形参。
4.1 参数(站在实参角度)
#参数(站在实参角度) #1 按照位置传值 def my_sum(a,b): sum = a + b return sum print(my_sum(10,20)) #按照形参的位置传递参数 #2 按照关键字传值 def my_sum(a,b): print(a,b) sum = a + b return sum print(my_sum(b =10,a = 20)) #按照关键字的方式传递参数 #3 位置、关键字混合着用 #注意:1 位置参数必须在关键字前面 # 2 对于一个形参只能赋值一次 def my_sum(a,b): print(a,b) sum = a + b return sum print(my_sum(10,b = 20)) #位置、关键字混合着用
4.2 参数(站在形参角度)
#参数(站在形参角度) #1 位置参数必须传值,否则会报错! def my_sum(a,b): print(a,b) sum = a + b return sum print(my_sum()) #结果:TypeError: my_sum() missing 2 required positional arguments: 'a' and 'b' #2 默认参数时,如果不传递参数用默认值,如果传递参数就用传递的。 def my_info(name,hobby = 'girl'): '''打印人员信息''' print(name,hobby) my_info('小A') my_info('小C','girl') #可以发现两次调用函数,对应的hobby是一样的。 #3 参数陷阱:默认参数是一个可变数据类型 def defult_param(a,l = []): l.append(a) print(l) defult_param('小A') defult_param('小C') #4 动态参数:按位置传值多余的参数都由args统一接收,保存成一个元组的形式 def my_sum(*args): # *args 可以接收多个任意位置参数 sum = 0 for i in args: sum += i return sum print(my_sum(1,5,10,20)) #向形参传递任意的位置参数。 def my_info(**kwargs): # **kwargs 可以接受多个关键字参数 print(kwargs) print(kwargs['name'],kwargs['age']) my_info(name='小A',age='18')
5.总结
(1)定义函数规则
1.定义:def 关键词开头,空格之后接函数名称和圆括号()。 2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。 参数可以定义多个,也可以不定义。 参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。 如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序 3.注释:函数的第一行语句应该添加注释。 4.函数体:函数内容以冒号起始,并且缩进。 5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None def 函数名(参数1,参数2,*args,默认参数,**kwargs): """注释:函数功能和参数说明""" 函数体 …… return 返回值
(2)调用函数规则
1.函数名() 函数名后面+圆括号就是函数的调用。 2.参数: 圆括号用来接收参数。 若传入多个参数: 应按先位置传值,再按关键字传值 具体的传入顺序应按照函数定义的参数情况而定 3.返回值 如果函数有返回值,还应该定义“变量”接收返回值 如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致 无返回值的情况: 函数名() 有返回值的情况: 变量 = 函数名() 多个变量接收多返回值: 变量1,变量2,... = 函数名()
(3)思维导图总结