函数基础

    xiaoxiao2022-07-12  138

    0.1 函数的基本使用

    1.1 基本概念

    所谓函数,就是把具有独立功能的代码块 组织为一个整体,在需要的时候调用函数的使用包括含两个步骤: 1.定义函数——在函数中编写代码,实现功能 2.调用函数——执行编写的代码函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的重用

    1.2函数的定义

    定义函数的格式如下:

    def 函数名(): 函数封装的代码 .....

    1.def 是英文 define 的缩写 2.函数名称应该能够简单明确的表达函数功能,以方便后续的调用 3.函数名称的命名应该符合标识符的命名规则

    可以由 字母 下划线和数字组成不能以数字 开头不能与关键字重名

    1.3函数调用

    调用函数很简单的,通过 函数名()即可完成对 函数的调用

    1.4第一个函数演练

    需求

    1.编写一个打招呼say_hello的函数,封装三行打招呼的代码

    1 在函数下方调用打招呼的代码

    name = “小明” #解释器知道这是定义了一个函数 def say_hello(): print("hello 1") print("hello 2") print("hello 3") print(name) # 只有在调用函数时,之前定义的函数才会被执行 #函数执行完成后,会重新回到之前的程序中,继续执行后续的代码 say_hello()

    02.函数执行过程,文档注释

    2.1PyCharm的单步调试

    F8 Step Over 可以单步执行代码,会把函数调用看作是一行代码直接执行

    F7 Step Into 可以单步执行代码,如果是函数,会进入到函数内部 用单步执行F8和F7观察以下代码的执行过程

    定义好函数之后,只表示这个函数封装了一段代码而已

    如果不主动调用函数,函数是不会主动执行的

    思考

    能否将函数调用放在函数定义的上方

    不能 因为在使用函数名调用函数之前,必须要保证Python已经知道函数的存在 否则控制台会提示 NameError: name ‘say_hello’ is not defined(名称错误:say_hello这个名字没有被定义)

    2.2 函数的文档注释

    在开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号在连续三对引号之间编写对函数的说明文字在函数调用位置,使用快捷键CTRL+Q 可以查看函数的说明信息

    函数执行过程,文档注释

    def func_sum(): """求和 1+2""" sum_num = 1 + 2 print(sum_num) func_sum()

    注意:因为函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行

    03.函数的参数(一)

    演练需求 1.开发一个sum_2_num 函数 2.函数能够实现 两个数字的求和 功能 演练代码如下:

    def sum_2_num(): num1 = 10 num2 = 20 result = num1 + num2 print("%d + %d = % d "%(num1, num2, result)) sum_2_num()

    思考一下存在什么问题

    函数只能处理 固定值 的相加

    如何解决?

    如果能够把需要计算的数字,在调用函数时,传递到函数内部就好了!

    3.1 参数的概念

    函数的参数,可以传递数据给函数内部,添加函数的通用性 1.在函数内部,把参数当做变量使用,进行需要的数据处理 2.函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递

    3.2设置函数的参数

    在函数名的后面的小括号内部填写参数多个参数之间使用,分隔 def sum_2_num(num1, num2): result = num1 + num2 print ("%d + %d = %d" % (num1, num2, result)) sum_2_num(20, 80)

    3.3形参和实参

    形参:定义函数时设置的参数,是用来代替真实数据的,在函数内部作为变量使用实参:调用函数时设置的 真实数据,会被传递到函数内部

    形参的作用域

    以下程序两次打印a的结果是?

    a = 5 def test1(a): a += 1 print("%d" % a) test1(2) print("%d" % a) 形参的作用域(起作用的范围)只在定义函数的代码块中,一旦超出该范围再使用该参名,则使用的是同名自定义变量编程中应该尽量避免函数的形参和同文件的变量名 同名

    0.4函数的返回值(一)

    4.1 概念

    开发中,有时会希望一个函数执行结束后,告诉调用者一个结果,以便调用者针对具体的结果做后续的处理返回值是函数给调用方提供放入结果

    4.2 设置返回值

    在函数中使用 return 关键字可以返回结果调用函数一方,可以使用变量来接收函数的返回结果 def sum_2_num(num1, num2): """对两个数字的求和""" return num1 + num2 #调用函数,并使用result 变量接收计算结果 result= sum_2_num(10, 30) print("计算结果是 %d" % result)

    ⚠️注意:return表示返回,后续的代码都不会被执行

    0.5 4种函数的类型

    函数根据有没有参数,有没有返回值,可以相互组合,一共四种

    无参数,无返回值无参数,有返回值有参数,无返回值有参数,有返回值

    5.1无参数,无返回值的函数

    def print_menu(): """打印菜单""" print('--------------------------') print(' xx涮涮锅 点菜系统') print(' ') print(' 1. 羊肉涮涮锅') print(' 1. 牛肉涮涮锅') print(' 1. 猪肉涮涮锅') print('--------------------------')

    5.2 无参数,有返回值的函数

    def get_pi(): """ 获取圆周率 :return:圆周率,小数点后保留9位 """ return 3.141592654 pi = get_pi() print('圆周率为:%.9f' % pi)

    5.3 有参数,无返回值的函数

    def print_star(num): """ 打印星星 :param num:星星数量 """ print("*" num) print_star(5)

    5.4 有参数,有返回值的函数

    def func_num(num): """ 0-n累加求和 :param num:累加的最后一个数 :return:累加的和 """ result = 0 i = 1 while i <= num: result = result + i i += 1 return result result = func_sum(100) print('1~100的累加和为:%d ' % result)

    <5>小总结

    函数根据有没有参数,有没有返回值可以相互组合定义函数时,是根据实际的功能需求来设计的,所以不同开发人员编写的函数类型各不相同

    0.6 函数的嵌套调用

    一个函数里面又调用来另外一个函数,这就是函数嵌套调用如果函数func2中,调用来另一个函数fun1 1.那么执行到调用func1函数时,会把函数func1中的任务都执行完 2. 才会回到func2中调用函数func1的位置,继续执行后续的代码 def func1(): print("func1开始") print("func1结束") def func2(): print("func1开始") func1() print("func1结束") func2()

    函数嵌套的演练-------打印分割线

    需求1

    定义一个print_line 函数能够打印 * 组成的一条分割线 def print_line(): print(" * " * 50)

    需求2

    定义一个函数能够打印由任意字符组成的分割线 def print_line(char): print(char * 50)

    需求3

    定义一个函数能够打印任意长度的分割线 def print_line(char, length): print(char * length)

    需求4

    定义一个函数能够打印5行的分割线,分割线要去符合需求3 def print_line(char, length): print(char * length) def print_lines(char * length): row = 0 while row < 5: print_line(char * length) row += 1
    最新回复(0)