Life is short,Use Python!-----Python五杀!-----Python函数和代码复用

版权声明: https://blog.csdn.net/JRK_CSDN/article/details/82926582

转,转,转圈圈。。。 :-)



- 函数定义

def <函数名>(参数:<非可选参数>,<可选参数>,<*不定量参数>)     #位置传递,名称传递
	 <函数体>
 	 return <返回值>   #可有可无,多个返回为 元组 类型

- 局部变量&全局变量

基本数据类型,无论重名与否,局部和全局不同
可通过 global在函数内部声明全局变量
组合数据类型,如果局部变量未真实创建,则为全局变量

- lambda函数(匿名函数)

lambda 用于定义简单的,在一行内表示的函数
<函数名> = lambda <参数> : <表达式>

>>>f = lambda x , y : x + y
>>>f(10,15)
25

>>>f = lambda : "lambda函数"
>>>print(f())
lambda函数

七段数码管的绘制

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()

数码日历


- 函数递归和代码复用

代码复用
代码资源化
程序代码是一种用来表达计算的“资源”
代码抽象化
使用函数等方法对代码赋予更高级别的定义
代码复用
同一份代码可以在需要时重复利用
抽象方式
函数
在代码层面建立初步抽象
对象
属性和方法,在函数基础上再次抽象
模块化设计和分而治之
模块内部紧耦合
模块外部松耦合

函数递归:基例链条 (通过函数+分支实现)

def rvs(s): 
	if s == "" :
		return s
	else :
		return rvs(s[1:])+s[0]

# 等效于s[ : :-1],将字符串倒置

- PyInstaller库

-h
查看帮助
-clean
清理打包过程中的临时文件
-D,-onedir
默认值,生成dist文件夹
-F,-onefile
在dist文件夹中只生成独立的打包文件
-i<图标文件名.ico>
指定打包程序使用的图标文件(icon)

科赫雪花曲线

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()

3阶科赫雪花曲线

猜你喜欢

转载自blog.csdn.net/JRK_CSDN/article/details/82926582
今日推荐