# Python语言程序设计整理

1.函数的定义与使用

1.函数的理解与定义

def (parameters)

return

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

3.函数的参数传递

def (,*b):

return

4.函数的返回值

5.局部变量与全局变量

ls = ["F","f"]#通过使用[]真是创建了一个全局变量列表ls

def func(a):

ls.append(a)#此处ls是列表类型，未真实创建，等同于全局变量

return

func("C")

print(ls)

6.lambda函数

lambda函数返回函数名作为结果，它是一种匿名函数。使用方式：

=lambda

:

f = lambda x,y:x+y

2.实例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)) #通过eval()函数将数字变为整数

def main():

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

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawDate('20180411')

turtle.hideturtle()

turtle.done()

main()

import turtle, time

def drawGap(): #绘制数码管间隔

turtle.penup()

turtle.fd(5)

def drawLine(draw): #绘制单段数码管

drawGap()

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

turtle.fd(40)

drawGap()

turtle.right(90)

def drawDigit(d): #根据数字绘制七段数码管

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

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

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

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

turtle.left(90)

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

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

drawLine(True) if d 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(-350)

turtle.pensize(5)

# drawDate('2018-10=10+')

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

turtle.hideturtle()

turtle.done()

main()

3.代码复用与函数递归

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

2.函数递归的理解

3.函数递归的调用过程

4.函数递归实例解析

def rvs(s):

if s =="":

return s

else:

return rvs(s[1:])+s[0]

s = "I LOVE YOU"

rm = rvs(s)

print(rm)

UOY EVOL I

def fib(n):

if n==1 or n==2:

return 1

else:

return fib(n-1) +fib(n-2)

h=fib(7)

print("{}".format(h))

13

（06:23）

4.模块4：PyInstaller库的使用

pyinstaller -F

5.科赫雪花小包裹

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)

level = 3 # 3阶科赫雪花，阶数

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.hideturtle()

main()

• 发表于:
• 原文链接https://kuaibao.qq.com/s/20180601G0KXFK00?refer=cp_1026
• 腾讯「云+社区」是腾讯内容开放平台帐号（企鹅号）传播渠道之一，根据《腾讯内容开放平台服务协议》转载发布内容。
• 如有侵权，请联系 yunjia_community@tencent.com 删除。

2022-05-20

2022-05-20

2018-09-18

2018-07-05

2022-05-20

2022-05-20

2022-05-20

2022-05-20