> 文档中心 > python 函数基础--------学会他你将对python有了更深入的了解,适合初学者和进阶者

python 函数基础--------学会他你将对python有了更深入的了解,适合初学者和进阶者

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


**

print

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

# TODO  鸟欲高飞,必先展翅# TODO   向前的人 :Jhonprint("小美")print("在吃饭")print("添加联系方式")

结果:

小美在吃饭添加联系方式

**

函数

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

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

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

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

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

注意

**

1、 函数代码块以def关键词开头,后接函数标识符和圆括号。2、 任何传入的参数必须放在圆括号中间,圆括号中间可以用于定义参数。3、 函数参数可以有多个,也可以没有,但圆括号必须保留4、 定义函数的冒号后面,第一行语句可以选择性的使用文档字符串对函数进行说明。5、 函数内容以冒号开始并且强制缩进6return [表达式]结束函数,选择性的返回一个值给调用方。不带表达式的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是: 1tuple_pack中的b是: (2, 3)dict_pack中的a是: 1dict_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+num2print(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 cA=T_w(3,5)print(A)

结果:

5