《跟我学》:Python的套路——Python自定义函数(二)

目录

1、学习交流

2、内容介绍

3、理论与实操

作者:

编辑:

版本:

林义孟

刘梦婷

python3

对于新手而言,做了这么多每日一练,看了这么多历史文章中高大上的爬虫、深度学习等,怎么感觉对python仍旧没有底气呢,我掐指一算,套路缺你,亦或你缺套路,套路是什么,就是我们接下来的《Python自定义函数》教程。

对于不太新也不太老的python学习者而言,很多小伙伴应该和我一样,在自定义函数的实践方面,自己定义了成千上百了吧,这个就算没有专门学习也快要无师自通了,但是还是建议查漏补缺,比如在参数的设置方面,比如,默认参数、不定长参数,比如global调用全局变量等知识性问题。

对于老手便可选择看一下面的内容介绍,进行性阅读啦,老铁!

学习交流

关于函数的学习,之前和新入手的小伙伴交流过,他带着哭腔说Python这么多函数怎么记住呢(此处给他一个抱抱)。其实呢,Python一些特定的函数,使用频率也许不高,你可以不清清楚楚地记得拼写规则,但是你要知道这个功能python有、在哪个模块下面,在用的时候能够快速的描述需求,进而找到所需。

内容介绍

Python自定义函数学习内容:

查漏补缺系统学习一下Python自定义函数,本知识点分为两个部分:

函数部分,包含1.定义一个函数语法及简单规则;2.通俗实例;3.函数调用。

参数部分,包含1. 四种参数类型介绍;2.全局变量和局部变量;3. global 和 nonlocal关键字。

本次进行参数的第一部分,四种参数类型介绍。

理论与实操

(一)四种参数

必需参数;关键字参数;默认参数;不定长参数

1.必需参数

必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

defSum(a,b):

c =a+b

d =a-b

returnc,d

result2=Sum(1,2)

2.关键字参数

函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致。

defprintNA ( name, age ):

print ("名字: ", name)

print ("年龄: ", age)

return

#调用printNA函数

printNA( age=16, name="TOM ")

以上输出结果:

名字: TOM

年龄: 16

3.默认参数

调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:

defprintNA(name, age=16):

"打印任何传入的字符串"

print("名字: ", name)

print("年龄: ", age)

return

# 调用printNA函数

printNA(age=18, name="runoob")

print("------------------------")

printNA(name="TOM")

运行结果为:

名字: runoob

年龄: 18

------------------------

名字: TOM

年龄: 16

4.不定长参数

先不说理论,直接上例子,比较靠谱啦:

defprintL(arg, *vartuple):

"打印任何传入的参数"

print("输出: ")

print(arg,end=" ")

print(vartuple)

# 调用printiL 函数

printL(70,60,50)

printL(70)

运行结果为:

输出:

70 (60, 50)

输出:

70

为什么需要不定长参数,因为我们不确定参数有固定的长度。我们学习一下语法(语法定义来自菜鸟教程):

def functionname([formal_args,] *var_args_tuple ):

function_suite

return [expression]

注意:

1.加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组,我们也可以不向函数传递未命名的变量,这句话分布别对应上面代码块的两个输出。

2.参数带两个星号**的参数会以字典的形式导入 。

下一次我们进行参数的最后探索, global 和 nonlocal关键字等。

配套教学视频

本系列练习可以配合计算机二级视频一起食用,观看地址为:

https://study.163.com/course/introduction.htm?courseId=1006044085

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181130G1KJ6A00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券