【纯文本教程】大学专科的Python基础开发课?p=9

“Python基础开发”课程_课堂笔记(HTML版_009)

Class notes of "Python basic development",this webPage is ninth Page.

本页面的“代码demo索引”:


第三章 Python函数

我个人感觉,C语言习惯先写主函数,再写自定义函数;而Python语言习惯先写自定义函数,再写主程序进行调用。(嗯,对了,顺便说一句,我学C语言,是2017年10月10日~2017年12月27日的事情,大一第一学期,年份没有错!)

3.1 Python函数

【编程常识】一个完整的函数只用来解决一个单一的问题。

3.1.1 教学目标

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数是程序中一个重要的部分,在系统中已经定义了一些函数,例如计算平方根的函数(sqrt),程序中自己也可以定义函数,我们的任务就是来学习函数的定义方法(例如定义函数找出两个数的最小公倍数与最大公约数)。

3.1.2 Python函数格式

Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数1,参数2…):#参数列表中的参数是“形式参数”用英文逗号分隔
 函数体#需要保持缩进

  1. 函数名称是用户自己定义的名称,命名规则与变量相同(以英文字母开头,支持数字和下划线);
  2. 函数可以有很多参数,每一个参数都有一个名称,它们是函数的变量;
  3. 函数体是函数的程序代码,它们保持缩进。

3.1.3 函数参数

在调用函数时,形式参数规定了函数需要的数据个数,实际参数必须在数目上与形式参数一样,一般规则是:

  1. 第一,形式参数是函数的内部变量,有名称——形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用;
  2. 第二,实际参数的个数必须与形式参数一致,实际参数可以是变量、常数、表达式,甚至是一个函数;
  3. 第三,当实际参数是变量时,它不一定要与形式参数同名称,实际参数变量与形式参数变量是不同的内存变量,它们其中一个值的变化不会影响到另外一个变量;
  4. 第四,函数调用中发生的数据传送是单向的——即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参,因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化;
  5. 第五,函数可以没有参数,但此时圆括号不可缺少——这个英文小括号是格式要求的!

3.1.4 函数返回值

函数的返回值是指函数被调用之后,在执行完函数体中的代码块后,返回给主调函数的值。通常情况下,调用函数后,都有返回值的,通过函数内部的“return”表达式来实现返回值。

一般格式如下:#这种没有标注程序用途的实例,是配合教程相关知识点而写的,全部都不会添加到索引中。

返回值:return表达式
def max(a,b):
 c=a
 if b>a:
  c=b
return c

举个例子,求平方的函数:

def fun():
 print(x)
 if x<0:
  return#执行完“return”语句,就返回“主调函数”
 print(x*x)

x=-2#小于零,直接退出函数
fun()

x=1024#会先打印原数值
fun()#然后显示平方

【例题】质数判断函数:#这个demo是专门用来讲解自定义函数的示例,不添加到索引中

def ISPrime(m):
 print("Link Start!")
 for i in range(2,m):
  #print(i)#本来,在老师的板书上有这行代码的,但是在运行过程中,如果输入了一个“比较大的数字”的话……emmmmmm.....别去试!.
  if m%i == 0:
   return False#存在1和自身之外的正整数,就返回“否定的结果”(不是质数)
 print("OK")
 return True#质数就返回肯定的结果

n = int(input("number:\n"))
print("Return:",ISPrime(n))

没有返回值的函数

函数也可以没有返回值,这时Python默认值是None。#无返回值函数,返回值为空

def SayHello()
 print( "Hello,everyone!" )

不使用返回值的情况,往往是要用模块,便于调用,也可以使用“return”语句,但是后面就不跟任何表达式。没有返回值,也可以使用return语句,返回值为传入的参数本身。

3.1.5 函数调用

函数调用是比较简单的,调用自己编写的函数就像调用Python语言的“内置函数”一样。有返回值的函数可以放在合适的任何一个表达式中去计算,当然也可以单独作为一条语句执行。而没有返回值的函数不能用在任何一个表达式中去参加计算,只能作为单独的一条语句执行。

但Python语言中规定,函数必须先定义才可以调用,即——在调用函数时编译器必须已经事先知道该函数的参数构造,不然编译会出错误。(理论上来说,自定义函数作为一个有完整功能的代码块,定义在程序中的任何位置都可以,只是说Python语言习惯将自定义函数写在主程序之前)

【例题】两个数的最大值函数_原理
def max(a, b) :
 c=a#先赋值
 if b>a:#再判断
  c=b
 return c
#调用这个自定义函数
m=max(2, 4)#也可以在运行过程中手动输入,但是这里只是说原理
print(m)

【例题】三个数的最大值函数_原理

解题思路:设这3个整数是a、b、c,要找它们中的最大值,只要先找到a与b的最大值,设为d,再把这个最大值d与c比较,找到d与c的最大值,设为e,既找到了a、 b、c中的最大值。

完整代码如下:

def max2(a,b):#实际参数
 c=a#赋值
 if b>a:
  c=b
 return c
'''
max3(x,y):#形式参数(局部变量)
 (这个函数的函数体内没有任何内容,不知道老师在这里放一个空白函数是什么目的?)
'''
a = float(input("a:"))
b = float(input("b:"))
c = float(input("c:"))
d = max2(a,b)
e = max2(d,c)#两次调用上一个函数
print("max is:",e)#打印(三个数当中的)最大值

以上程序可以直接粘贴到开发环境中,保存、运行。但是HTML没有“水平制表符”,因此使用空格缩进

在运行时,是将变量a传给x,把变量b传给y,“形式参数”与“实际参数”的个数是相同的,因为它们在内存中,都有自己的存储空间,当调用指定函数时,实际参数就会把值“传”(复制)给形式参数。


第9堂课,内容为初识Python函数。

本页面(?p=9)的实际上课时间为2020年4月28日第1小节课。

猜你喜欢

转载自www.cnblogs.com/Robot-DX3906/p/12964530.html