python中的函数无非就是封装、调用、传参等等…


**

print

**

这就是一个简单的print()输出,python最简单的,也是最基础,最重要的,后期调试代码,解决问题时经常会用到。

# TODO                鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon

print("小美")
print("在吃饭")
print("添加联系方式")

结果:

小美
在吃饭
添加联系方式

**

函数

**

什么是函数?

函数是组织好的,可重复使用的,用来实现单一或者相关联功能的代码段,最重要的就是可复用,使有些代码不必重复书写,大大减少工作量

为什么要学习函数?函数有什么作用?

函数能提高应用的模块性,减少代码的冗余。除了进线程,代码的冗余也会影响计算机工作的效率。在计算机编程中,经常有一些逻辑算法需要打包,从而使其在不同的地方重复利用。函数允许将代码整合成一个功能模块,并且此功能模块能重复使用。在Python程序中函数不进可以提高程序的模块性,最大程度的减少代码冗余,而且有利于后期的代码维护。

流程的分解?

使用函数可以将整个流程分解成一个一个的子任务,实现模块化开发

如何定义一个函数?

在Python中定义一个功能函数语法格式如下

def 函数名([参数]):
"函数_文档字符串"
函数体
return [表达式]

注意

**

1 函数代码块以def关键词开头,后接函数标识符和圆括号。
2 任何传入的参数必须放在圆括号中间,圆括号中间可以用于定义参数。
3 函数参数可以有多个,也可以没有,但圆括号必须保留
4 定义函数的冒号后面,第一行语句可以选择性的使用文档字符串对函数进行说明。
5 函数内容以冒号开始并且强制缩进
6 return [表达式]结束函数,选择性的返回一个值给调用方。不带表达式的return 相当于返回none。Python中的函数允许没有返回值,也就是不用return。同样,return也可以返回多个值,中间以逗号隔开,等同于返回一个元组。如果retur=后面没有返回值,函数将自动返回none,none是Python中一个特别的数据类型,表示什么都没有

**

例如:

def Say_Hello():
print("小美")
print("在吃饭")
print("添加联系方式")

上面这个结果是为空的,什么都没有打印出来。以上的函数只是进行了一个封装,没有调用,所以没有任何结果打印出来。


这时候就引入了一个很重要的概念,就是调用函数。就是在使用这个函数时候调用一下他。例如我上课被老师叫起来回答问题,当老师上课让我回答问题的时候会叫一下我们的名字,这时我们的名字就是函数名,叫我们名字就是调用一下我。

def Say_Hello():
print("小美")
print("在吃饭")
print("添加联系方式")

Say_Hello()

结果:

小美
在吃饭
添加联系方式

我们可以发现在封装的函数下面喊一下它(也就是调用一下),就可以将函数中的方法打印出来(这时函数中的print()就是执行打印方法)


**

函数传参

**

def Say_Hello(boy):
print("小美"+boy)
print("在吃饭")
print("添加联系方式")

Say_Hello("很美")

结果:

小美很美
在吃饭
添加联系方式

我们发现在喊它(调用Say_Hello函数)的时候加上一个参数就可以传给他了。​注意​​,​此时Say_Hello("很美")中 "很美"是实参,真实的参数,有肉有框架​​ ,​而Say_Hello(boy)中boy也就是我们经常说的形参,也就是只有一个框架,没有血肉,相当于起到了占位符的作用​。print(“小美”+boy)中"小美"+boy就是字符串的拼接,如果此时传递的不是字符串形式的参数,要使用字符串拼接就需要将不是字符串的强制转化为字符串:str(需要强制转换的参数)


多个函数传递

def Say_Hello(boy,adress,contact):
print("小美"+boy)
print("在"+adress+"吃饭")
print("添加"+contact+"联系方式吧")

Say_Hello("很美","上海","陌陌"

结果:

小美很美
在上海吃饭
添加陌陌联系方式

只需要同属传递多个参数就可以了。


还写一些什么呢,再来个例子更好的了解形参和实参吧

def Say_Hello(boy,adress,contact="微信"):
print("小美"+boy)
print("在"+adress+"吃饭")
print("添加"+contact+"联系方式吧")

Say_Hello("很美","上海","陌陌")

结果:

小美很美
在上海吃饭
添加陌陌联系方式吧

我们发现虽然contact赋值了微信(contact=“微信”),结果打印出来的还是陌陌,而不是微信。但是当实参没有传递参数的时候,函数就会用形参有的值(参数)

例如:

def Say_Hello(boy,adress,contact="微信"):
print("小美"+boy)
print("在"+adress+"吃饭")
print("添加"+contact+"联系方式吧")

Say_Hello("很美","上海")

结果:

小美很美
在上海吃饭
添加微信联系方式吧

这时候我们发现我们并没有传递实参 ''陌陌'' ,然后函数就用了形参 ''微信'' 了。所以综上所的,我们只需要记住,实参控制形参,框架的形参不可以为空。


位置参数

def Eat(a,b,c):
print("我想吃%s%s%s"%(a,b,c))
Eat("小米饭","中米饭","大米饭")

结果:

我想吃小米饭中米饭大米饭

关键字传参 元组/字典

def tuple_pack(a,*b):
print("tuple_pack中的a是:",a)
print("tuple_pack中的b是:",b)
tuple_pack(1,2,3)

def dict_pack(a,**b):
print("dict_pack中的a是:",a)
print("dict_pack中的b是:",b)
dict_pack(1,小花=15,小红=16,小白=18,阿白="永远年轻,不为钱发愁")

结果:

tuple_pack中的a是: 1
tuple_pack中的b是: (2, 3)
dict_pack中的a是: 1
dict_pack中的b是: {'小花': 15, '小红': 16, '小白': 18, '阿白': '永远年轻,不为钱发愁'}

return

**

def Say_Hello():
print("小美")
print("在吃饭")
print("添加联系方式")
return "小美","学生","花钱"

print(Say_Hello())

结果:

小美
在吃饭
添加联系方式
('小美', '学生', '花钱')

程序从上往下执行,遇到return就退出,类似于break,但是他可以把返回值 传给调用者(调用函数)。一般起到终止函数的执行,并返回一个指定的值给函数调用者。即:return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值, 由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 我们可以发现return的返回值是以元组的形式存在的。


def Say_Hello():
print("小美")
print("在吃饭")
return "小美","学生","花钱"
print("添加联系方式")


print(Say_Hello())

结果:

小美
在吃饭
('小美', '学生', '花钱')

我们可以发现return下面的 **​​print("添加联系方式")​​**没有执行,所以return起到了终结者的角色。

def Say_Hello(num1,num2):
print("小美")
print("在吃饭")
return num1+num2


print(Say_Hello(1,2))

结果:

小美
在吃饭
3

我们可以发现return直接把1+2的值传递出来了。-_-


def T_w(num1,num2):
c=num1 if num1>num2 else num2 #如果 num1 大于 num2,就num1赋值给 c ,否则就把num2赋值给c
return c

A=T_w(3,5)
print(A)

结果:

5