Python-基础-函数(十二)

1. 函数的定义

定义函数的格式如下 :

def 函数名():
    
    函数封装的代码
 
    ......
  1. def 是英文 define 的缩写 (定义的意思)

  2. 函数名称 应该能够表达 函数封装代码 的功能, 方便后续的调用
    函数名称 的命名应该 符合 标识符的命名规则
    数字,字母,下划线组成,不能数字开头

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

  4. 第一个函数演练
    需求

  5. 编写一个 say_hello 的函数, 封装一行打招呼的代码
    2.在函数下方抵用打招呼的代码

#注意: 定义好函数之后, 只表示这个函数封装了一段代码而已
#如果不主动调用函数, 函数是不会主动执行的
#代码规范函数上面要空两行
 name = "kkw"
 def say_hello():
    """这里写函数的注释也可以"""
    print("hello world")
print(name)
#只有在调用函数时,  函数才会被执行
#函数执行完成之后,  会重新回到之前的程序中,  继续执行后续的代码
say_hello()
print(name)

#执行结果 :
#kkw
#hello world
#kkw
  • 定义好函数之后, 只表示这个函数封装了一段代码而已,如果不主动调用函数, 函数时不会主动执行的

注意 :

能否将 函数调用 放在 函数定义 的上方? 不能 ! 因为在 使用函数名 调用函数之前, 要保证 Python 已经知道函数的存在
否则控制台会提示 : 名字未定义的错误
在这里插入图片描述

  1. PyCharm 的调试工具
    F8 Step Over 可以单步执行代码, 会把函数调用看作是一行代码直接执行(over跳过的意思)
    F7 Step Into 可以但不执行代码, 如果是函数, 会进入函数内部(into进入的意思)

  2. 函数的文档注释

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

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

2. 函数的参数

1. 函数参数的使用
在函数名的后面的小括号内部填写 参数
多个参数之间使用 逗号 分隔

def sun_sum(num1, num2):
    """"两个数求和"""
    result = num1 + num2
    print("%d + %d = %d" % (num1, num2, result))
sun_sum(2, 5)
 
#打印结果
#2 + 5 = 7

2. 参数的作用

  • 函数, 把 具有独立功能的代码块 组织为一个小模块, 在需要的时候 调用

  • 函数的参数, 增加函数的 通用性, 针对 相同的数据处理逻辑, 能够 适应更多的数据

     1. 在函数 内部, 行数=变量 使用
     2.函数调用时,  按照函数定义的 参数顺序,  把 希望在函数内部处理的数据,  通过参数  传递
    

3. 形参和实参
形参: 定义 函数时, 小括号中的参数, 是用来接收参数用的, 在函数内部 作为变量使用
实参: 调用 函数时, 小括号中的参数, 是用来把数据传递到 函数内部 用的

3. 函数的返回值

1. 函数的返回值

  1. 在程序开发中, 有时候, 会希望 一个函数执行结束后, 告诉调用者一个结果, 以便调用者针对具体的结果做后续的处理
  2. 返回值 是函数 完成工作 后, 最后 给调用者的 一个结果
  3. 在函数中适用 return 关键字可以返回结果
  4. 调用函数一方, 可以 使用变量 来 接收 函数的返回结果

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

def sun_sum(num1, num2):
    """"两个数求和"""
    result = num1 + num2
    # 使用返回值,  告诉调用函数一方计算的结果
    return result
    # 注意: return 就表示返回, 下方的代码不会被执行
 
#使用变量接收
 sum_result = sun_sum(2, 5)
4. 函数的嵌套调用

一个函数里面 又调用了 另一个函数, 这就是函数嵌套调用
4.1. 函数嵌套的演练 ---- 打印分割线

多变的需求 -----

需求 1 

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

定义一个函数能够打印 由任意字符组成 的分隔线
def print_line2(line):
    print(line * 50)
print_line2("-")

需求 3
定义一个函数能够打印 任意重复次数 的分割线
def print_line3(line, num):
    print(line * num)
print_line3("+", 50)

需求 4 
定义一个函数能够打印 5  的分隔线,  分割线要求符合 需求 3
提示:  工作中针对需求的变化,  不要轻易修改之前的封装好的函数

def print_line4(line, num):
    """
    打印多行分割线
    :param line: 分割线字符
    :param num: 分割线数量
    """
    row = 0
    while row < 5:
        print(line * num)
 
        print("")  # 换行
        row += 1

print_line4("-", 50)

需求 5
 定义一个函数能够自定义打印行数 的分隔线,  分割线要求符合 需求 3
def print_line3(line, num):
    print(line * num)
 
 
def print_line5(num):
    """
    :param num: 要打印的行数
    """
    row = 0
    while row < num:
        print_line3("+", 50)  # 嵌套调用
        print("")
        row += 1
 
print_line5(5)

感觉这些例子没多大意义。

注释的快捷键,添加的时候,点击函数名,出来一个小灯泡,选择就会出来注释块。
查看的时候,点击函数调用时候的名字,然后CTRL+q就出来了。
在这里插入图片描述

5. 函数的包装模块

模块是 Python 程序架构的一个核心架构的一个核心概念

模块 就好比是 工具包, 想要使用这个工具包中的工具, 就需要 import 这个模块
每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块
在模块定义的 全局变量 , 函数 都是模块能够提供给外界直接使用的工具
1. 模块

  • 可以 在一个 Python 文件 中 定义 变量 或者 函数
  • 然后在 另外一个文件中 使用 import 导入这个模块
  • 导入之后, 就可以使用 模块名.变量 / 模块名.函数 的方式, 使用这个模块中定义的变量或者函数
  • 模块 可以让 曾经编写过的代码 方便的被 复用 !

2. 模块名也是一个标识符

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

注意: 如果在给 Python 文件起名时, 以数字开头 是无法再 PyCharm 中通过导入这个模块的

6. Pyc 文件

在这里插入图片描述

字节码其实就是二进制文件,在执行具有import
关键字的py文件的时候,import的文件就会先生成一个二进制文件。这样的话可以提交代码的执行效率。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值