初识函数

it2022-05-05  192

函数的定义

#函数的定义 def meylen(): '''计算s1的长度''' s1 = 'hello world' length = 0 for i in s1: length = length + 1 print(length) #函数的调用 mylen()

总结一

定义:def关键字开头,空格之后接函数名称和括号(),最后有一个‘:’

   def是固定的,不能变,必须是连续的def三个字母,不能分开

   空格 为了将def关键字和函数名分开,必须空4格

   函数名:函数名只能包含字符串,下划线和数字且不能以数字开头。

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面的第一行,增加函数的可读性

调用:就是函数名()要记得加上括号

函数的返回值

return关键字的作用

  return是一个关键字,这个词翻译过来就是‘返回’

没有返回值

  不写return的情况下,会默认返回一个none

def mylen(): """计算s1的长度""" s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) #函数调用 str_len = mylen() #因为没有返回值,此时的str_len为None print('str_len : %s'%str_len)

  只写return,后面不写其他的内容,也会返回none

def ret_demo(): print(111) return print(222) ret = ret_demo() print(ret)

return none:和上面的两种情况一样

返回一个值:

def mylen(): s1 = 'hello word' length = 0 for i in s1: length = length + 1 return length str_len = mylen() print('str_len:%s'%str_len)

注意:return和返回值之间要有空格,可以返回任意数据类型的值

返回多个值

  可以返回任意多个、任意数据类型的值

def ret_demo1(): return 1,2,3,4 def ret_demo2(): return 1,['a','b'],3,4 ret1 = ret_demo1() print(ret1) ret2 = ret_demo2() print(ret2)

返回的多个值会被组织称元组被返回,也可以用多个值来接收

def ret_demo2(): return1,['a','b'],3,4 a,b,c,d = ret_demo2() print(a,b,c,d)

函数的参数

def mylen(s1): length = 0 for i in s1: length = length + 1 retrun length str_len = mylen('hello world') print('str_len:%s'%str_len)

实参和形参

参数还有分别:

我们调用函数时传递的参数叫做实际参数,简称实参。定义函数时的s1,只是一个变量的名字,被称为形式参数,简称形参

传递多个参数

参数可以传递多个,多个参数之间用逗号分割

def mymax(x,y): the_max = x if x>y else y return the_max ma = mymax(10,20) print(ma)

位置参数

  站在实参的角度

  1.按照位置传值

def mymax(x,y): the_max = x if x>y else y return the_max ma = mymax(10,20) print(ma)

  2.按照关键字传值

def mymax(x,y): print(x,y) the_max = x if x>y else y return the_max ma = mymax(y=10,x=20) print(ma)

  3.位置关键字形式混用

def mymax(x,y): print(x,y) the_max = x if x>y else y return the_max ma = mymax(10,y=20) print(ma)

  正确用法

  问题一:位置参数必须在关键字参数的前面

  问题二:对于一个形参只能赋值一次

站在形参的角度

  位置参数必须传值

默认参数

  1.正常使用

    使用方法

    为什么要有默认参数:将变化比较小的值设置成默认参数

  2.默认参数的定义

def stu_info(name,sex='male'): print(name,sex) stu_info('alex') stu_info('eva','female')

  3.参数陷阱:默认参数是一个可变数据类型

def defult_param(a,l=[]): l.append(a) print(l) defult_param('alex') defult_param('egon')

动态参数

  按位置传值多余的参数都有args统一接受,保存成一个元组的形式

def mysum(*args): the_sum = 0 for i in args: the_sum+=i return the_sum the_sum = mysum(1,2,3,4) print(the_sum) def stu_info(**kwargs): print(kwargs) print(kwargs['name],kwargs['sex']) stu_info(name = 'alex',sex = 'male')

 

转载于:https://www.cnblogs.com/KrisYzy/p/11157657.html


最新回复(0)