一.函数的初识
函数:以功能(完成一件事)为导向,登录,注册,len一个函数就是一个功能。随调随用
函数的优势
1.减少了代码的重复性。
2.增强了代码的可读性
二.函数的结构和调用
2.1 函数的结构
def 函数名():
函数体
def关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"
def 是固定的,不能变,他就是定义函数的关键字
空格 为了将def关键字和函数名分开,必须空,当然你可以空2格、3格,但正常人还是空一个
函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并且要具有可描述性
括号: 是必须加的,先别问为啥要有括号,总之加上括号就对了(下面就会讲到)!
下面的函数体一定全部都要缩进,这代表是这个函数的代码。
2.2 函数的调用
使用函数名加小括号就可以调用函数了 写法:函数名(),这个时候函数的函数体会被执行
而且是这个指令你写几次,函数里面的代码就运行几次
三.函数的返回值
一个函数就是封装一个功能,这个功能一般都会有一个最终结果的,比如你写一个登录函数,最终登录成功与否是不是需要返回你一个结果?还有咱们是不是都用过len这个函数,他是获取一个对象的元素的总个数,最终肯定会返回一个元素个数这样的结果:
那么这个返回值如何设置呢?这就得用到python中的一个关键字:return
1.函数中遇到return,此函数结束.不在继续执行
def date(): print("拿出手机") print("打开陌陌") print('左滑一下') print('右滑一下') print("找个漂亮的妹子") return print("问她,约不约啊!") print("ok 走起") date() 结果: D:\pythonProject\python3\venv\Scripts\python.exe D:\pythonProject\python3\day10\s2.py 拿出手机 打开陌陌 左滑一下 右滑一下 找个漂亮的妹子
2.return 会给函数的执行者返回值。
如果return后面什么都不写,或者函数中没有return,则返回结果是None
如果return后面写一个值,返回给调用者这个值
如果return后面写多个结果,返回给调用者一个tuple(元组),调用者可以直接使用元组解构获取多个变量
def date(): print("拿出手机") print("打开陌陌") print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") print(date()) # None def date(): print("拿出手机") print("打开陌陌") print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") return '约起' print(date(),type(date())) # 约起 <class 'str'> def date(): print("拿出手机") print("打开陌陌") print("找个漂亮的妹子") print("问她,约不约啊!") print("ok 走起") return '约起','OK 走起' print(date(),type(date())) # 约起 <class 'str'> a1,a2 =date() print(a1,a2) #约起 OK 走起
四.函数的参数
函数的参数可以从两个角度划分:
1.行参
写在函数声明的位置的变量叫行参,形式上的一个完整,表示这个函数需要XXX
2.实参
在函数调用的时候给函数传递的值叫实参,实际执行的时候给函数传递的信息,表示给函数XXX
def date(sex): # sex就是行参 print('设置筛选性别 %s' %(sex)) date('女') # 女就是实参
4.1 实参角度
1.位置参数
位置参数就是从左到右,实参与形参一一对应
def msg(sex,age,hobby): print('人员信息 性别:%s 年龄:%s 兴趣爱好:%s' %(sex,age,hobby)) msg('女',25,'弹钢琴') # 实参和形参位置一一对应 msg('人妖',20,'钢管舞')
联系题:
# 编写函数,给函数传递两个参数a,b a,b相加 返回a参数和b参数相加的和 def f_sum(a,b): c = a + b return c print(f_sum(100,23))
#比较大小的这个写法有点麻烦,我们在这里学一个三元运算符(单个if else语句可以改为一个三元运算符) def f_size(a,b): return b if a < b else a print(f_size(100,200)) #200
2.关键字参数
位置参数如果在参数比较少的时候很方便,如果参数比较多时,需要记住每个参数的位置就比较困难了,这个时候我们
就需要关键字参数了,我们只需要记住参数的名字就可以了
def msg(sex,age,hobby): print('人员信息 性别:%s 年龄:%s 兴趣爱好:%s' %(sex,age,hobby)) msg(age=25,hobby='弹钢琴',sex='女') # 关键字参数不需要关系参数的位置
3.混合参数
可以吧位置参数和关键字参数混合使用,但是需要注意关键字参数一定在位置参数后面
def msg(sex,age,hobby): print('人员信息 性别:%s 年龄:%s 兴趣爱好:%s' %(sex,age,hobby)) msg('女',hobby='音乐',age=16) #人员信息 性别:女 年龄:16 兴趣爱好:音乐
4.2 形参角度
1.位置参数
位置参数其实与实参的位置参数是一样的就是按照位置从左到右
2.默认值参数
在函数声明的时候,可以给函数参数默认值。默认值参数一般是这个参数使用率较高
# 例如大部分公司的操作系统都是linux def msg(name,scale,system='Linux'): print('公司信息 名称:%s 规模:%s 操作系统:%s' %(name,scale,system)) msg('阿里巴巴',10000) # 公司信息 名称:阿里巴巴 规模:10000 操作系统:Linux msg('腾讯',100000,'Windows') # 公司信息 名称:腾讯 规模:100000 操作系统:Windows
练习题:
#写函数,检查列表的长度,如果大于2,那么仅保留前2个长度内容,并将新内容返回给调用者 def trunc_lis(lis): # if len(lis) > 2: # return lis[0:2] # else: # return lis return lis[0:2] if len(lis) > 2 else lis # 或者 return lis[:2] l1 = [1,2,3,4,5,6] l2 = ['a',2] ret1 = trunc_lis(l1) print(ret1,type(ret1)) ret2 = trunc_lis((l2)) print(ret2,type(ret2))
标签:return,函数,Python,date,参数,print,def From: https://www.cnblogs.com/zhazhadba/p/17027893.html