函数介绍
实现一个len,但是不能使用len
a = "alexdsb"
count = 0
for i in a:
count += 1
print(count)
函数定义
def 是python中关键字主要用来定义函数的
len这个是函数的名字
(): 冒号是表示这个语句写完了
函数体就是有4个空格的缩进
def len():
a = "alexdsb"
count = 0
for i in a:
count += 1
print(count)
内存开辟了一个空间,但是里边存放是代码.
函数的调用
使用函数名加小括号就可以调用了 写法:函数名() 这个时候函数的函数体会被执行
def len():
a = "alexdsb"
count = 0
for i in a:
count += 1
print(count)
len() # 函数的调用
函数的返回值
def yue():
print("掏出手机")
print("打开默默")
print("约一个妹子")
yue()
执行完函数之后,可以使用return来返回结果
def yue():
print("约你")
print("约我")
print("约他")
return
yue()
返回的是什么结果,返回的东西给谁了?? 返回值返回给了函数调用者 yue()就是函数的调用者 那就是返回给它了,看看返回的什么
def yue():
print("约你")
print("约我")
print("约他")
return
ret = yue()
print(ret)
返回的结果是None,操作列表的方法 打印的结果就是None,我们所有用的字符串,列表的方法都是函数.
函数中遇到return,此函数就立马结束了.不在继续执行
def yue():
print("约你")
print("约我")
print("约他")
return
print("大家一起约")
yue()
def yue():
print("约你")
print("约我")
print("约他")
return "美女一枚"
yue()
def yue():
print("约你")
print("约我")
print("约他")
return '美女一枚'
girl = yue()
print(girl)
结果:
约你
约我
约他
美女一枚
1.定义了一个函数yue
2.调用函数
3.执行函数里的约你
4.执行函数里的约我
5.执行函数里的约他
6.返回给调用者一个字符串,这个调用者就是yue()
7.将返回的字符串通过一个等号赋值给白变量girl
8.打印变量girl的值
函数的返回值可以有多个结果:
def yue():
print("约你")
print("约我")
print("约他")
return "美女一枚", "萝莉一枚"
girl = yue()
print(type(girl)) # tuple
当函数的返回值是多个的时候,返回的就是一个元组
1.遇到return,此函数结束,return下面的代码将不会在执行
2.return 关于返回值:
如果return什么都不写或者干脆就没写return,返回的结果就是None
如果return后面写了一个值,返回给调用者这个值
如果return后面写了多个结果,返回给调用者一个tuple(元祖),调用者可以直接使用解构获取多个变量
函数的参数
参数,也就是函数括号里的内容 函数在调用的时候指定一个具体的变量的值 就是参数.写法如下:
def 函数名(参数):
函数体
def yue(chat):
print("拿出⼿手机")
print("打开"+chat)
print("找个漂亮的妹⼦子")
print("约不约")
yue("陌陌")
yue("微信")
yue("探探")
结果:
拿出手机
打开陌陌
找个漂亮的妹⼦
约不约
拿出⼿机
打开微信
找个漂亮的妹⼦
约不约
拿出手机
打开探探
找个漂亮的妹⼦
约不约
调用yue的时候给chat一个值. 然后再执行函数体.
如果再定函数的时候写了形参,在调用函数的时候没有传递值,调用的时候右边括号会发黄,所以必须要传递参数,参数要一一对应,不能多不能少.
1.形参
写在函数声明的位置的变量叫形参,形式上的一个完整.表示这个函数需要xxx
2.实参
在函数调用的时候给函数传递的值.加实参,实际执行的时候给函数传递的信息.表示给函数xxx
3.传参
从调用函数的时候将值传递到定义函数的过程叫做传参
def yue(chat): # chat 形参
print("拿出手机")
print("打开"+chat)
print("找个漂亮的妹子")
print("约不约")
yue("陌陌") # "陌陌"在这里就是实参
len("字符串") # "字符串"在这里就是实参
print("麻花藤") # "麻花藤"就是实参
位置参数
位置传参的时候必须一一对应
形参是默认的参数时,实参传递时可以不写.写了内容就会把形参的默认参数覆盖
混合参数
可以把上面两种参数混合着使用. 也就是说在调用函数的时候即可以给出位置参数, 也可以指定关键字参数.
# 混合参数
yue("微信", age=18, address="上海") # 正确.第一个位置赋值给chat, 后面的参数开始指定关键字.
yue(age="18", "微信", address="广州") # 错误, 最开始使用了关键字参数, 那么后面的 微信的位置就串了, 容易出现混乱
注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面