5. Python函数
来源:互联网 发布:v360监控软件下载 编辑:程序博客网 时间:2024/04/28 05:58
1. 函数定义:
使用def语句
格式: def <name>(<parameter>):
<body>
函数名<name>:任何有效的Python标识符
参数列表<parameter>:调用函数时传递给他的值
(1)参数个数大于等于零;
(2)多个参数用逗号分隔。
形式参数:定义函数时,函数名后面圆括号中的变量,简称“形参”。形参只有在函数内部有效;
实际参数:调用函数时,函数名后面圆括号中的变量,简称“实参”。
例:def add1(x):
x=x+1
return x
renturn语句:结束函数调用,并将结果返回给调用者。
2. 改变参数值的函数
def addin(balance,rate): for i in range(len(balance)): balance[i]=balance[i]*(1+rate)def test(): amount=[1000,123,5411,456] rate=0.08 addin(amount,rate) print(amount)test()
输出结果:[1080.0, 132.84, 5843.88, 492.48]
balance返回给amount = [1080.0, 132.84, 5843.88, 492.48];但是变量amount的值仍为[1000,123,5411,456]。只是返回到调用程序,该对象会呈现被修改的状态。
3. 函数与程序递归
递归:函数定义中使用函数自身的方法
3.1 经典例子:阶乘 n!=n(n-1)!
0!=1是递归的基例,递归程序执行到到基例标志结束。
阶乘的递归程序如下:
def fact(n): if n==0: return 1 else: return n*fact(n-1)3.2 字符串的反转
采用递归反转字符串:
def reverse(s): return reverse(s[1:])+s[0]
>>> reverse("nihao")Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> reverse("nihao") File "C:/Users/yanjun/Desktop/2222.py", line 2, in reverse return reverse(s[1:])+s[0] File "C:/Users/yanjun/Desktop/2222.py", line 2, in reverse return reverse(s[1:])+s[0] File "C:/Users/yanjun/Desktop/2222.py", line 2, in reverse return reverse(s[1:])+s[0] [Previous line repeated 990 more times]RecursionError: maximum recursion depth exceeded>>>程序报错,超出最大递归调用深度,在python中,递归次数是有限的,一般为九百余次,前面函数没有递归基例,是一个无线递归,导致python奔溃。
正确代码:
def reverse(s): if s=="": return s else: return reverse(s[1:])+s[0]
4. 函数实例分析
4.1 使用turtle库绘制五角星
from turtle import Turtlep=Turtle()p.speed(1)#绘制速度p.pensize(5)#绘制宽度p.color("black",'yellow')#绘制线颜色和填充颜色p.begin_fill()for i in range(5): p.forward(200) p.right(144)p.end_fill()结果如下:
采用递归实现程序如下
from turtle import Turtledef tree(plist,l,a,f): #plist—存放一组turtle对象的列表 #l—树枝的长度 #a—画笔调整角度 #f—为上次枝杈长度与下层枝杈长度的比例 if l>5: lst=[] for p in plist: p.forward(l) q=p.clone() p.left(a) q.right(a) lst.append(p) lst.append(q) tree(lst,l*f,a,f) def maketree(x,y): p=Turtle() p.color("green") p.pensize(2) p.hideturtle() p.getscreen().tracer(30,0) p.left(90)#调整画笔,居中向上开始画 p.penup() p.goto(x,y) p.pendown() t=tree([p],220,65,0.6375)def main(): maketree(0,-200)main()
结果如下
- 5. Python函数
- python函数
- python 函数
- python 函数
- Python 函数
- python 函数
- PYTHON函数
- python 函数
- Python函数
- python 函数
- Python 函数
- Python 函数
- Python 函数
- python函数
- python函数
- python 函数
- Python 函数
- Python函数
- VC--获取本机 局域网IP 和外网IP
- atl接口
- 软件行业有希望,近百人学习《GJB5000A深入理解与实现》
- php 4大数组函数的使用
- iOS crash 分析
- 5. Python函数
- Java中TreeMap具体实现Demo
- python常用统计量的计算
- 微信小程序中rpx与rem单位使用
- Http请求中Content-Type讲解以及在Spring MVC中的应用
- H5基础知识第十一课时(JS查看节点)
- 浅谈HTTP中Get与Post的区别
- linux 搭建opencv开发环境
- Linux——权限详解(目录详解)