python 空列表 重用_Python函数与代码重用,和,复用

本文深入探讨了Python中函数的定义与使用方法,包括基本语法、参数传递、返回值等,并介绍了递归的概念及其应用实例,如字符串反转、斐波那契数列等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 函数的定义和使用

1. 函数的理解与定义

(1). 定义

函数是一段代码的表示

函数是一段具有特定功能的、可重用的语句组

函数是一种功能的抽象,一般函数表达特定功能

(2). 作用

降低编码难度

代码复用

(3). 基本语法

def 函数名(参数<0个或多个>):

函数体

return 返回值

2. 函数的使用及调用过程

(1). 函数的调用

调用是运行函数代码的方式

(2). 函数调用过程

3. 函数的参数传递

(1). 参数个数

函数可以有参数,也可以没有,但必须保留括号

基本语法:

def 函数名():

函数体

return 返回值

(2). 可选参数传递

函数定义时可以为某些参数指定默认值,构成可选参数

基本语法:

def 函数名(,):

函数体

return 返回值

注:必选参数必须要写在可选参数的前面

(3). 可变参数传递

函数定义时可以设计可变数量参数,即不确定参数总数

基本语法:

def 函数名(, *b):

函数体

return 返回值

(4). 参数传递的两种方式

函数调用时,参数可以按照位置或名称方式传递

方式一:位置传递

方式二:名称传递

4. 函数的返回值

函数可以返回0个或多个结果

5. 局部变量和全局变量

(1). 定义

(2). 使用规则

注:基本数据类型,无论是否重名,局部变量与全局变量不同

规则一:局部变量和全局变量是不同的变量

规则二:局部变量为组合数据类型且未创建,等同于全局变量

6. lambda函数

lambda函数返回函数名作为结果

7. 七段数码管的绘制

import turtle

def drawLine(draw):

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

turtle.right(90)

def drawDigit(digit):

drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,6,8] else drawLine(False)

turtle.left(90)

drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)

drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawDate(date):

for i in date:

drawDigit(eval(i))

def main():

turtle.setup(800, 350, 200, 200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawDate('20201026')

turtle.hideturtle()

turtle.done()

main()

import turtle, time

def drawLine(draw):

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

turtle.right(90)

def drawDigit(digit):

drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,6,8] else drawLine(False)

turtle.left(90)

drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)

drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)

drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawDate(date):

turtle.pencolor("red")

for i in date:

if i == '-':

turtle.write('年', font=("Arial", 18, "normal"))

turtle.pencolor("green")

turtle.fd(40)

elif i == "=":

turtle.write('月', font=("Arial", 18, "normal"))

turtle.pencolor("blue")

turtle.fd(40)

elif i == '+':

turtle.write('日', font=("Arial", 18, "normal"))

else:

drawDigit(eval(i))

def main():

turtle.setup(800, 350, 200, 200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))

turtle.hideturtle()

turtle.done()

main()

二. 代码复用与函数递归

1. 代码复用与模块化设计

(1). 把代码当成资源进行抽象

(2). 函数和对象是代码复用的两种主要形式

(3). 模块化设计

2. 函数递归的理解

(1). 递归定义:函数定义中调用函数自身的方式

(2). 两个关键特性

(3). 数学归纳法

3. 函数递归的调用过程

(1). 举例

(2). 递归的实现

(3). 递归的调用过程

4. 函数递归实例解析

(1). 字符串反转

(2). 斐波那契数列

(3). 汉罗塔

(4). 科赫雪花

分形几何

用Python绘制科赫曲线

科赫曲线绘制函数

科赫雪花代码

import turtle

def koch(size, n):

if n == 0:

turtle.fd(size)

else:

for angle in [0, 60, -120, 60]:

turtle.left(angle)

koch(size/3, n-1)

def main():

turtle.setup(600,600)

turtle.penup()

turtle.goto(-200, 100)

turtle.pendown()

turtle.pensize(2)

# koch(600, 3) #3阶科赫曲线,阶数

level = 3# 代表雪花的阶数

koch(400, level)

turtle.right(120)

koch(400, level)

turtle.right(120)

koch(400, level)

turtle.hideturtle()

turtle.done()

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值