课上笔记(3)(Python)
程序员文章站
2024-01-29 19:40:40
...
课上笔记(3)(Python)
- 学习使我快乐
函数
- 首先。定义一个函数
公式:
def 函数名(形式参数(用来输入参数)):
函数内容主体
renturn 返回的值
输入:
def fib(n):
"""n是一个数字,函数是用返回小于n的所有斐波那契数列的总数,返回值是小于n的斐波那契数列的总数"""
a,b=1,1
c = []
while a<n:
print(a,end=' ')
a,b=b,a+b
c.append(a)
c = len(c)
return c
返回:
c
- 在这之后我们将进入主函数:
在那之前我们首先需要进入主函数的一个“开门”的过程
即:
if __name__=='__main__':
然后就是:
输入:
def fib(n):
"""n是一个数字,函数是用返回小于n的所有斐波那契数列的总数,返回值是小于n的斐波那契数列的总数"""
a,b=1,1
c = []
while a<n:
a,b=b,a+b
c.append(a)
c = len(c)
return c
if __name__=='__main__':
print(fib(15))
输出:
7
实际上这个程序的真正的开始是从主函数也就是
if __name__=='__main__':
开始的,而当运行到达了调用函数之时,转而进入对应的 【“def 函数“ 】之中
在运行函数主体完毕后,回到主函数继续运行。
####有关函数中的变量
函数中有的变量可以和程序主体是一样的,但是代表的意义是不同的。
- 函数和程序主体是在两个栈进行的。
即:
可以理解成,函数和主体都是在不同的房间里闭门造车,程序主体把任务交给函数以后,函数在自己的房间里完成任务,上交一个结果给程序主体。但是函数也就交给程序主体了一个结果,而除了这个结果以外,什么都无法影响到程序主体。
即:
输入:
def hanshu(n):
"""n是一个数字,函数是用来将实际参数+1,返回的是n+1的值"""
c = n+1
print('函数里的c是%d'%c)
return c
if __name__=='__main__':
c = 0
d = hanshu(8)
print('函数上交给程序主体的结果d是%d'%d)
print('程序主体里的c是%d'%c)
输出:
函数里的c是9
函数上交给程序主体的结果d是9
程序主体里的c是0
默认值参数
在定义参数时允许存在没有实际参数的情况,这时就需要默认参数了
首先,默认函数的公式是
:
def 函数名(d=默认的值)
如果有默认参数以及非默认参数:默认参数一定要在整个小括号最右面
:
def 函数名(n,w,d=默认的值,p =默认的值,z=默认的值)
输入:
def hanshu(n,z=2):
"""n是一个数字,z是一个数字,函数是用来求z和n的和,返回的是n+z的值"""
c = n+z
print('函数里的z是%d'%z)
print('函数里的c是%d'%c)
return c
if __name__=='__main__':
c = 0
d = hanshu(8)
print('函数上交给程序主体的结果d是%d'%d)
print('程序主体里的c是%d'%c)
输出:
函数里的z是2
函数里的c是10
函数上交给程序主体的结果d是10
程序主体里的c是0
输入:
def hanshu(n,z=2):
"""n是一个数字,z是一个数字,函数是用来求z和n的和,返回的是n+z的值"""
c = n+z
print('函数里的z是%d'%z)
print('函数里的c是%d'%c)
return c
if __name__=='__main__':
c = 0
d = hanshu(8,3)
print('函数上交给程序主体的结果d是%d'%d)
print('程序主体里的c是%d'%c)
输出:
函数里的z是3
函数里的c是11
函数上交给程序主体的结果d是11
程序主体里的c是0
关键参数
指定实际参数的值,个人觉得如果能记住顺序或者实际参数少的话这东西是没什么用的,但是假如你记不住顺序,这东西就很好用的。
- 直接按照变量名一一对应就好了
即
输入:
def hanshu(n,z):
"""n是一个数字,z是一个数字,函数是用来求z和n的和,返回的是n+z的值"""
c = n+z
print('函数里的z是%d'%z)
print('函数里的c是%d'%c)
return c
if __name__=='__main__':
c = 0
d = hanshu(n=8,z=3)
print('函数上交给程序主体的结果d是%d'%d)
print('程序主体里的c是%d'%c)
输出:
函数里的z是3
函数里的c是11
函数上交给程序主体的结果d是11
程序主体里的c是0
输入:
def hanshu(n,z):
"""n是一个数字,z是一个数字,函数是用来求z和n的和,返回的是n+z的值"""
c = n+z
print('函数里的z是%d'%z)
print('函数里的c是%d'%c)
return c
if __name__=='__main__':
c = 0
d = hanshu(z=8,n=3)
print('函数上交给程序主体的结果d是%d'%d)
print('程序主体里的c是%d'%c)
输出:
函数里的z是8
函数里的c是11
函数上交给程序主体的结果d是11
程序主体里的c是0