当前位置:首页>python>Python函数与方法

Python函数与方法

  • 2026-10-21 13:28:03
Python函数与方法

写在前面

函数是组织好的、可重复使用的,用来实现特定功能的代码段。通过函数的定义与使用能够提高代码的复用性、减少重复代码,从而让各位码Python的过程变得高级、优雅~

一、函数演示

例如我们上一讲循环(Python循环语句)中提到的打印99乘法表:
for hang in range(1,10):for lie in range(1,hang+1):        print(f"{lie}*{hang}={lie * hang}", end='\t')    print("")
我们需要改成8X8的乘法表则需要:
for hang in range(1,9):for lie in range(1,hang+1):        print(f"{lie}*{hang}={lie * hang}", end='\t')    print("")
这样不仅把四行代码全部重复敲了出来,而且明明我们需要的是8X8的乘法表,在写range时却需要写range(1,9),非常的不高效、优雅。在实战过程中重复的代码可能不仅仅是四行,而是成百上千行,这时我们就可以定义一个函数。通过关键字def(definition的缩写)语句来完成函数定义:
defmy_mul_tab(my_num):for hang in range(1,my_num+1):for lie in range(1,hang+1):            print(f"{lie}*{hang}={lie * hang}", end='\t')        print("")
这时,我们可以仅用一行代码就输出对应数字的乘法表:
my_mul_tab(8)
并且换成其它数字也依旧可以使用:

二、函数的定义方式

上面的函数定义我们没有设置返回值而是直接将结果print出来,需要接受返回值的标准函数定义格式为:
def 函数名(形式参数):    函数体return 返回值
上述形式参数可以不止一个,比如这里我们定义一个用于求和并返回结果提示语的计算器,有一点智障,其实一个加号就能搞定,但是给大家演示一下定义并使用函数的过程:
defmy_add(my_num1,my_num2):    sum_num = f"{my_num1}+{my_num2}的结果是:{my_num1 + my_num2}"    return sum_nummyresult = my_add(1,5)print(myresult)
是可以直接输入求和的结果的:

三、函数返回值

这个内容我们在上文中已经使用到了,即关键字return能够将函数运行过程中的一个变量作为结果传出,这也就是为什么我们能够用myresult这个变量去接受求和的结果,不过需要注意的是函数中return后的代码无法执行(有点类似于continue后的语句)。
defmy_add(my_num1,my_num2):    sum_num = f"{my_num1}+{my_num2}的结果是:{my_num1 + my_num2}"return sum_num    print("求和完成")myresult = my_add(1,5)print(myresult)
例如,这里return下一行的"求和完成"字符并没有被执行并输出
如果不通过return返回值,则函数自动返回None(在条件语句中可以等同于False)
defmy_add(my_num1,my_num2):    sum_num = f"{my_num1}+{my_num2}的结果是:{my_num1 + my_num2}"myresult = my_add(1,5)print(f"函数的返回值为:{myresult}")print(f"函数的返回值类型为:{type(myresult)}")
显然,这样是无法得到计算结果的,我们来看一下None的返回结果与类型:

四、函数说明文档

其实就是在函数中添加一段多行注释,例如对于上面函数来说,可以改成:
defmy_add(my_num1,my_num2):"""    my_add函数可以接受两个参数,这两个参数均为数字,运行此函数可以将两数相加    :param my_num1: 形参中的数字1    :param my_num2: 形参中的数字2    :return my_num1与my_num2相加的结果    """    sum_num = f"{my_num1}+{my_num2}的结果是:{my_num1 + my_num2}"    return sum_nummyresult = my_add(1,5)print(myresult)
这时,神奇的事情就发生了,当你的鼠标悬停在"my_add"这个函数上时,会自动弹出一个方框,其中以标准格式展示了此函数的帮助文档。

五、局部变量与全局变量

局部变量仅在函数内生效,全局变量可以在脚本中定义该变量后的任意位置生效,例如,下面的modify_2()虽然可以在函数内容修改temp_var的值,但在全局变量的print()中返回的依旧是代码开头全局变量的值。
temp_var = "我是一个全局变量"defmodify_1():    print(temp_var)defmodify_2():    temp_var = "我是一个临时变量"    print(temp_var)modify_1()modify_2()print(temp_var)
如何解决这一问题呢,只需要在定义函数时用关键字global声明该变量为全局变量:
temp_var = "我是一个全局变量"defmodify_1():    print(temp_var)defmodify_2():global temp_var    temp_var = "我是一个临时变量"    print(temp_var)modify_1()modify_2()print(temp_var)
这时modify_2()返回的则是修改后的值

六、方法

函数是一个能提供特定功能呢的封装好的代码单元。而在Python中,如果将函数定义为class(类)的成员,那么函数会称之为方法。方法的定义方式为:
class myclass:def add(x, y):return x + y# 那么使用起来就是: 类名.函数名()myclass.add(1,2)# 方法的其它用法均与函数类似
## 3

往期回顾

生信Python速查手册

Python安装(Windows+Linux)

Python的"Rstudio"——Pycharm

码Python神器:jupyter notebook

一文了解Python基础:字面量、注释、变量、类型、运算符

Python判断语句

Python循环语句

如何联系我们

留一个领取资料、开箱即用的单细胞分析镜像的微信号[Biomamba_zhushou],方便各位随时交流。同时我们也构建了交流群矩阵,欢迎大家入群讨论。
大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
没有检索,就没有发言权

已有生信基地联系方式的同学无需重复添加

您点的每个赞和在看,我都认真当成了喜欢

最新文章

随机文章