“Python函数的基本使用”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
函数的调用
第162行: 第162行:
 
==函数设计的原则==
 
==函数设计的原则==
 
*设计函数时,应注意提高模块的内聚性,同时降低模块之间的隐式耦合。
 
*设计函数时,应注意提高模块的内聚性,同时降低模块之间的隐式耦合。
 +
 +
==练习==
 +
编写并调用函数,计算1*2*3*...*n的阶乘
 +
 +
编写并调用函数 ,计算 n*(n+1)*...*m的值,其中n<m
 +
 +
思考:在求和的函数中,如何使求和的步长值也变为可自定义的?
 +
 +
编写函数,求[n,m]之间的最大值,其中n<m

2020年3月16日 (一) 07:41的版本

问题引出

我们之前调用的这些简介的代码,他们有一个共同的名字叫什么 ?

  • 函数 描述
  • abs(x) x的绝对值
  • divmod(x,y)
  • pow(x,y) x的y次幂
  • round(x,n) x四舍五入,保留n位小数
  • max(x1,x2,...,xn) x1,x2,x3,...xn的最大值
  • min(x1,x2,...,xn) x1,x2,x3,...xn的最小值


  • abs(x): 求绝对值
>>> x,y = 9,2
>>> abs(x)
9
>>> abs(-x)
9
  • divmod(x,y):获得除法的商和余数
>>> x,y = 9,2
 >>> divmod(x,y)
(4, 1)

函数是什么

函数是一段具有特定功能的、可重用的语句组,通过函数名来表示和调用。

经过定义,一组语句等价于一个函数,在需要使用这组语句的地方,直接调用函数名称即可。

  • 将可能需要反复执行的代码封装为函数,并在需要该功能的地方进行调用,不仅可以实现代码复用,更重要的是可以保证代码的一致性,只需要修改该函数代码则所有调用均受到影响。
  • 设计函数时,应注意提高模块的内聚性,同时降低模块之间的隐式耦合。
  • 例1:生日歌
def happy():
    print("Happy birthday to you!")
def happyTo(name):    
    print("Happy birthday, dear {}!".format(name))

happy( )    
happyTo("Mike")
print()
happyTo("Lily")

函数的定义

函数的使用包括两部分:函数的定义函数的调用。 函数是一种功能抽象。


语法

函数定义语法:

def <函数名>([参数列表]):
    '''注释'''
    <函数体>
    return <返回值列表>
  • 函数名:可以是任何有效的Python标识符
  • 参数列表:是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。
  • 函数体:是函数每次被调用时执行的代码,由一行或多行语句组成。
  • Java2-4.png

如果需要返回值,函数体中使用保留字return返回值。函数可以没有return语句,函数体结束 后会将控制权返回给调用者。


函数的参数

参数列表:是调用该函数时传递给它的值,可以有零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。

注意:

  • 函数形参不需要声明类型,也不需要指定函数返回值类型
  • 即使该函数不需要接收任何参数,也必须保留一对空的圆括号
  • 括号后面的冒号必不可少


例题(二级真题):两点间距离公式常用于函数图形内求两点之间距离、求点的坐标的基本公式,是距离公式之一。两点间距离公式叙述了点和点之间距离的关系。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

设两个点A、B以及坐标分别为Python10-1003.png,则A和B两点之间的距离为:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

Python10-1002.png ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

请输入4个数字(用空格分隔),分别表示x1、y1、x2、y2, 计算距离(保留2位小数输出)。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬

参考编程模板,参考输入输出示例,完善程序。

输入输出示例

 	输入 	输出
示例 1 	1 2 3 4 	2.83
示例 2 	1 1 2 2 	1.14

代码:

def distance(x1,y1,x2,y2):
    d1 = pow(x1-x2,2);
    d2 = pow(y1-y2,2);
    d = pow(d1+d2,1/2)
    return d
#(1,2),(3,4)两点间距离
print(distance(1,2,3,4))

函数体

函数体:是函数每次被调用时执行的代码,由一行或多行语句组成。

函数体相对于def关键字必须保持一定的空格缩进

Python允许嵌套定义函数

函数体中可能存在return语句。函数执行结束后,根据return保留字的指示决 定是否返回结果,如果返回结果,则结果将被放置到函数被调用的位置,函数使用完毕,程序继续运行。

关于return语句:

  • 在Python中,定义函数时也不需要声明函数的返回值类型,而是使用return语句结束函数执行的同时返回任意类型的值,函数返回值类型与return语句返回表达式的类型一致。
  • return语句用来结束函数,不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行。
def multiply(x,y = 10):
    return x*y

s = multiply(99,2)
print(s)

函数也可以没有return:

  • 例:生日歌
def happy():
    print("Happy birthday to you!")

happy( )    

函数的调用

通过函数名调用函数功能,对函数的各个参数赋予实际值,称为函数的调用。

实际值可以是实际数据,也可以是在调用函数前已经定义过的变量。

  • 程序调用一个函数需要执行以下四个步骤。
1.调用程序,在调用处暂停执行。
2.在调用时将实参复制给函数的形参。
3.执行函数体语句。
4.函数调用结束后给出返回值,程序回到调用前的暂停处,继续执行。
  • 例1:生日歌;例2:汇率计算器
  • 问题解决:编写生成斐波那契数列的函数并调用。
  • Java2-4.png
  • 在定义函数时,开头部分的注释并不是必需的,但如果为函数的定义加上注释的话,可以为用户提供友好的提示。


例2:汇率计算器

def DolConvert(Num):
    Num =eval(Num);
    Dollar =Num /6;
    return Dollar
    
            
Num = input("请输入人民币值: ")
result = DolConvert(Num)
print("能兑换的美元为:",result)

练习:设计一个由美元兑换人民币的函数

函数设计的原则

  • 设计函数时,应注意提高模块的内聚性,同时降低模块之间的隐式耦合。

练习

编写并调用函数,计算1*2*3*...*n的阶乘

编写并调用函数 ,计算 n*(n+1)*...*m的值,其中n<m

思考:在求和的函数中,如何使求和的步长值也变为可自定义的?

编写函数,求[n,m]之间的最大值,其中n<m