本篇内容介绍了“python3.7函数基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、函数
从开始接触python就接触了函数。 例如 input()函数用于获取用户键盘输入、print()函数用于输出结果、range()函数用于生成整数序列、len()函数用于获取序列的长度。不仅如此python还为我们提供了自定义函数。即将有规律,可重复使用的代码封装成函数,从而达到一次编写多次调用的结果。由此可见我们可以简单的认为函数是可以实现特定功能的代码块。
二、函数的定义
假如我们要求0-100之间的和应该怎么将其写成函数呢?
def sun():
a = 0
for i in list(range(101)):
a += i
print(a)
sun()
--------------------
5050
上述代码我们定义了一个函数实现0-100的求和。 而且得到了准确的结果。 首先用def关键字用来定义一个函数。后面跟一个函数名。 函数名顾名思义就是函数的名字。 这个名字是我们自定义的同样遵循命名规范。函数名后面的"()"表示参数列表。 具体会在下一个列子中讲到。 括号后面的是函数体即我们的求和功能。 程序的最后一行sun()称之为函数的调用。 定义了函数如果不调用就相当于不执行。简而言之也就无法生成求和的功能。
同时我们思考另一个问题。 不是说函数是可以重复利用的嘛。 很明显上述函数只能完成0-100的求和。 假如说要完成1-1000,或者0-300之间的求和,难道要继续写嘛。显然不是。
def sun(mag):
a = 0
for i in list(range(mag)):
a += i
print(a)
sun(1002)
sun(301)
501501
-----------------
45150
通过上述代码我们发现我们在示例1 的基础上在参数列表假如mag,这个成为参数。 关于参数后面还会具体讲到。 一个参数可以有多个参数。 参数与参数之间用逗号隔开。 与此同时我们吧range里原先的100换成了我们的参数。 此时不难发现我们在调用函数的时候分别在括号里填上了1001和301。 这样就实现了我们提出的求0-1000和0-300求个的功能。
那么我们有提出新的疑问。假如说我们不仅要实现求和。 然后还要将求出来的和参与别的运算。此时我们又应该怎么做呢?
def sun(mag):
a = 0
for i in list(range(mag)):
a += i
return a
b = sun(1002)
print(b)
c = b - 10000
print(c)
501501
------------------
491501
我们在示例2 的基础上又添加了return a 这句话的意思是把计算结果返回到函数调用的地方。这样我们就可以用个计算结果去做别的事了。
小结:
函数名:其实就是一个符合 Python 语法的标识符,但不建议读者使用 a、b、c 这类简单的标识符作为函数名,函数名最好能够体现出该函数的功能。
形参列表:即上面括号里的函数列表,设置该函数可以接收多少个参数,多个参数之间用逗号( , )分隔。
[return [返回值] ]:整体作为函数的可选参参数,用于设置该函数的返回值。也就是说,一个函数,可以用返回值,也可以没有返回值,是否需要根据实际情况而定
三、函数的调用
到目前为止对函数的调用已经比较熟悉。 即 函数名(形参值),函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值,需要注意的是,创建函数有多少个形参,那么调用时就需要传入多少个值,且顺序必须和创建函数时一致。即便该函数没有参数,函数名后的小括号也不能省略。
四、pass语句
如果想定义一个什么事也不做的空函数,可以用pass语句.pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。
def sun():
pass
五、为函数添加说明文档
函数不仅仅是给自己用的。 在一个团队中很可能其他人也要用到。 这时如果他不知道函数的功能就没法准确的调用。或者时隔很久要做维护和修改或者新员工要接手项目。 如果没写注释不仅效率低。而且有可能回成为吐槽的对象。 因此添加说明文档必不可少。例如
"""
功能:求指定序列的和
mag 要生成的序列的最大值
"""
def sun(mag):
a = 0
# 通过循环求和并返回结果
for i in list(range(mag)):
a += i
return a
b = sun(1002)
print(b)
六、参数检查
函数调用时如果参数的个数不对。python的解释器会自动检查出来
"""
功能:求指定序列的和
mag 要生成的序列的最大值
"""
def sun(mag):
a = 0
# 通过循环求和并返回结果
for i in list(range(mag)):
a += i
return a
b = sun()
print(b)
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 12, in
b = sun()
TypeError: sun() missing 1 required positional argument: 'mag'
但是参数的类型不对那么解释器就无能为力了。
def my_list(number):
print(list(range(number)))
my_list("10")
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in
my_list("10")郑州正规人流医院 www.zykdrl120.com
File "/Users/apple/Documents/重要文件/python3/python20.py", line 3, in my_list
print(list(range(number)))
TypeError: 'str' object cannot be interpreted as an integer
显然我们要生成0-9的列表。而我们偏偏传入了字符串这时就会报错。此时内置函数isinstance()就派上用场了
def my_list(number):
if isinstance(number, int):
print(list(range(number)))
else:
print("只接受整型的数值")
my_list("10")
my_list(10)
只接受整型的数值
---------------
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
那么可不可以一个参数满足两个或者以上类型呢?当然可以
def my_list(number):
if isinstance(number, (int, float, str)):
print("我满足了条件")
else:
print("我不满足条件")
my_list("10")
my_list(10)
my_list((1, 2))
我满足了条件
我满足了条件
我不满足条件
七、函数返回多个值
def my_list():
return 10, 20, [1, 3]
a = my_list()
print(a)
(10, 20, [1, 3])
由上述例子可知函数是可以一次性返回多个值的。但是这个返回值是tuple
“python3.7函数基础知识有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。