全国计算机等级考试二级教程--python语言程序设计(2018年版)第五章:函数和代码复用

版权声明: https://blog.csdn.net/qq_38351824/article/details/84554965

声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。

作者:sumjess

 

一、函数的基本使用:

      函数包括:函数的定义和函数的使用

      使用函数的目的:降低编程难度、增加代码复用、降低代码行数和代码维护难度

1、函数的定义:

      Python语言通过保留字def定义函数,语法形式如下:

      def<函数名>(<参数列表>):

            <函数体>

            return <返回值列表>

      函数名可以是任何有效的python标识符,参数列表是调用该函数时传递给它的值。如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句。

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

2、函数的使用:

      调用函数的基本方法如下:

      <函数名>(<实际赋值参数列表>)

      例子同上。

3、函数的使用的四步骤:

      1、函数定义:确定函数名、参数名、参数的个数;

      2、函数调用:;

      3、函数执行:;

      4、函数返回:;

二、函数的参数传递:

1、可选参数传递:

      函数定义时的语法形式如下:

         def <函数名>(<非可选参数列表>,<可选参数> = <默认值>):

             <函数体>

            return <返回值列表>

       需要注意,可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。

2、参数名称传递:

      python语言同时支持函数按照参数名称方式传递参数,语法形式如下:

     <函数名>(<参数名> = <实际值>)

     这种东西会显著增强程序的可读性。

3、函数的返回值:

      return语句可以出现在函数中的任何部分,同时可以将0个、1个或多个函数运算的结果返回给函数被调用处的变量。

当return返回多个值时,这些值形成了一个元组数据类型,由小括号和逗号分隔,

例如(a,b,c)

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

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

当函数使用return返回多个值时,可以使用一个变量或多个变量保存结果。

三、变量的作用域:

1、局部变量:

      局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时变量将不再存在。

      内部的变量,当函数调用后,变量将不存在。

2、全局变量:

      全局变量在函数内部使用时,需要提前使用保留字global声明:

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

     使用global对全局变量声明时,该变量要与外部全局变量同名。

四、代码复用:

        使用函数的优点有:可读性提高、实现代码复用、提高封装级别、增强代码可读性、使代码易于维护

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

        利用程序进行排版。

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)

六、习题五:

(1)全局变量在函数内部使用时,需提前使用global声明

(2)生成器:在yield的区域内进行迭代处理

(3)def func():

                  print("hello")          

type(func)type(func())返回的结果是:<class'function'><class'NoneType'>

(4)Python语言从没有缩进的代码开始运行

(5)在函数内定义的子函数只能在函数内调用。

(6)生成器:在yield的区域内进行迭代处理

(7)参数传递的优点有:加强可读性、降低代码维护难度、参数顺序可任意调整

(8)函数返回值不止一个时,返回值是元组类型

(9)可变数量参数接收的值将以元组类型传入函数。

(10)使用函数的优点:可读性提高、实现代码复用、提高封装级别、增强代码可读性、使代码便于维护

(11)函数返回时,传入的组合数据类型变量不会被释放;函数内创建的且未作为返回值的组合数据类型变量被释放。

(12)想要操作全局列表变量时,列表类型的参数不需要加global声明,因为组合数据类型默认是传递而非副本传递。

猜你喜欢

转载自blog.csdn.net/qq_38351824/article/details/84554965