Python二级(07)——函数和代码复用

一、知识导图

图1.png

二、函数的基本使用

1、函数的定义
I、函数是一段具有特定功能的、可重用的语句组,通 过函数名来表示和调用。经过定义,一组语句等价 于一个函数,在需要使用这组语句的地方,直接调 用函数名称即可。
II、因此,函数的使用包括两部分: 函 数 的 定 义 和 函 数 的 使 用 \color{red}{函数的定义和函数 的使用} 使
III、函数是一种功能抽象。
IV、Python定义一个函数使用def保留字,语法形式 如下:
图2.png
a、函数名可以是任何有效的Python标识符
b、参数列表是调用该函数时传递给它的值,可以有 零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。
c、函数体是函数每次被调用时执行的代码,由一行或多行语句组成。
d、如果需要返回值,使用保留字return和返回值 列表。函数可以没有return语句,函数体结束 后会将控制权返回给调用者。

def fact(n):
    s = 1
    for i in range(1, n + 1):
        s *= i
    return s

如果需要返回值,使用保留字return和返回值 列表。函数可以没有return语句,函数体结束 后会将控制权返回给调用者。
2、函数使用
I、定义后的函数不能直接运行,需要经过“调用” 才能运行。调用函数的基本方法如下:
图3.png

def fact(n):
    s = 1
    for i in range(1, n + 1):
        s *= i
    return s
print(fact(5))

具体来说,函数的使用一共分为四个步骤:
①. 函 数 定 义 \color{red}{函数定义}
使用def保留字将一段代码定义为函数,需要确定函数的名字、参数的名字、参数的个数,使用 参数名称作为形式参数(占位符)编写函数内部的 功能代码。
②. 函 数 调 用 \color{red}{函数调用}
通过函数名调用函数功能,对函数的各个参数赋予实际值,实际值可以是实际数据,也可以是 在调用函数前已经定义过的变量。
③. 函 数 执 行 \color{red}{函数执行}
函数被调用后,使用实际参数(赋予形式参数的实际值)参与函数内部代码的运行,如果有结 果则进行输出。
④. 函 数 返 回 \color{red}{函数返回}
函数执行结束后,根据return保留字的指示决
定是否返回结果,如果返回结果,则结果将被放置 到函数被调用的位置,函数使用完毕,程序继续运 行。

三、函数的参数传递

1、函数参数的传递
I、函数的参数在定义时可以指定默认值,当函数被 调用时,如果没有传入对应的参数值,则使用函 数定义时的默认值替代,函数定义时的语法形式 如下:
图4.png
II、需要注意,可选参数一般都放置在非可选参数的 后面,即定义函数时,先给出所有非可选参数, 然后再分别列出每个可选参数及对应的默认值。

>>>def multiply(x, y = 10):
        print(x*y)
>>>multiply(99)
990
>>>multiply(99, 2)
198

2、 参数名称传递
I、Python语言同时支持函数按照参数名称方式传 递参数,语法形式如下:
图5.png

>>>def multiply(x, y = 10):
        print(x*y)
>>>multiply(x = 99)
990
>>>multiply(y = 2, x = 99)
198

3、 函数的返回值
I、return语句用来结束函数并将程序返回到函数被 调用的位置继续执行。
II、return语句可以出现在函数中的任何部分,同时 可以将0个、1个或多个函数运算的结果返回给函 数被调用处的变量。

>>>def multiply(x, y = 10):
        return x*y
>>>s = multiply(99, 2) 
>>>print(s)
198

III、函数可以没有return,此时函数并不返回值。当 函数使用return返回多个值,可以使用一个变量 或多个变量保存结果。

>>>def multiply(x, y = 10):
        return x*y, x+y
>>>s = multiply(99, 2) 
>>>print(s)
(198, 101)
>>>a,b = multiply(99, 2) 
>>>print(a)
198
>>>print(b)
101

四、变量的作用域

1、函数的返回值
I、根据程序中变量所在的位置和作用范围,变量分为 局 部 变 量 和 全 局 变 量 。 \color{red}{局部变量和全局变量。}
II、局部变量仅在函数内部,且作用域也在函数内部, 全局变量的作用域跨越多个函数。
2、 局部变量
I、局部变量指在函数内部使用的变量,仅在函数内部有效, 当函数退出时变量将不再存在。
图6.png
变量z是函数multiple()内部使用的变量,当函数调用后, 变量z将不存在。
3、全局变量
I、全局变量指在函数之外定义的变量,在程序执行 全过程有效。全部变量在函数内部使用时,需要 提前使用保留字global声明,语法形式如下:
g l o b a l &lt; 全 局 变 量 &gt; \color{red}{global &lt;全局变量&gt;} global<>

>>>n = 2 #n是全局变量 
>>>def multiply(x, y = 10):
        global n
        return x*y*n # 使用全局变量n 
>>>s = multiply(99, 2)
>>>print(s)
396

上例中,变量n是全局变量,在函数multiply() 中使用时需要在函数内部使用global声明,定义 后即可使用。

II、如果未使用保留字global声明,即使名称相同, 也不是全局变量。

>>>n = 2 #n是全局变量 
>>>def multiply(x, y = 10):
        n = x*y
        return n # 此处的n不是全局变量 
>>>s = multiply(99, 2)
>>>print(s)
198
>>>print(n) #不改变外部全局变量的值 
2

五、实例解析-- 软文的诗词风

软文的诗词风将原有文章根据标点符号重新切分 成短句并居中排版,对小屏幕阅读十分有利。使 用程序将普通文章变成软文的诗词风十分有趣

txt = """
昔日龌龊不足夸,今朝放荡思无涯。
春风得意马蹄疾,一日看尽长安花。
"""
linewidth = 30  # 预定的输出宽度
def lineSplit(line):
    plist = [',', '!', '?', ',', '。', '!', '?']
    for p in plist:
        line = line.replace(p, '\n')
    return line.split('\n')


def linePrint(line):
    global linewidth
    print(line.center(linewidth, chr(12288)))

newlines = lineSplit(txt)
for newline in newlines:
    linePrint(newline)

交流

如果你有更好的解法或者有不同的意见,大家可以畅所欲言,共同提高进步!
群主也是小白一枚,零基础学习python,要勇于提问,大家共同探讨,共同学习进步!

1、加入qq群一起交流学习:818757567

图.png

2、关注微信公众号:python大星

图.png

但愿人长久,千里共婵娟。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值