欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习笔记(五)

程序员文章站 2022-05-22 16:46:57
Python学习笔记(五)—— 函数和代码复用 一、函数 1、函数的定义:函数是一段代码的表示 2、函数的调用 3、函数的参数传递 3.1 参数个数 3.2 参数传递的两种方式:按照位置或名称方式传递 4、函数的返回值 5、局部变量和全局变量 例子: 5.1 局部变量和全局变量是不同变量 例子: 5 ......

python学习笔记(五)——  函数和代码复用

一、函数

  1、函数的定义:函数是一段代码的表示

    Python学习笔记(五)

 

      Python学习笔记(五)

 

 

   2、函数的调用

 

    Python学习笔记(五)

 

 

   3、函数的参数传递

    3.1 参数个数

 

    Python学习笔记(五)

 

    Python学习笔记(五)

 

             Python学习笔记(五)

 

    Python学习笔记(五)

 

 

    Python学习笔记(五)

       3.2 参数传递的两种方式:按照位置或名称方式传递

      Python学习笔记(五)

 

    4、函数的返回值

     Python学习笔记(五)

 

    5、局部变量和全局变量

    Python学习笔记(五)

 

    例子:

    Python学习笔记(五)

 

      5.1 局部变量和全局变量是不同变量

        Python学习笔记(五)

 

        例子:

        Python学习笔记(五)

                            Python学习笔记(五)

 

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

        Python学习笔记(五)

 

            Python学习笔记(五)

 

        

     6、lambda 函数

      6.1 lambda 函数概述  

        Python学习笔记(五)

 

      6.2 格式

        Python学习笔记(五)    

 

      6.3 例子

        Python学习笔记(五)

 

      6.4 注意事项

        Python学习笔记(五)

 

 

 

二、函数递归

  1、定义:函数定义中调用自身的方式

  2、函数递归的调用过程

    2.1 递归的实现:函数 + 分支语句

      Python学习笔记(五)

 

    2.2 递归的调用过程图示

      Python学习笔记(五)

 

      Python学习笔记(五)

 

   3、函数递归实例解析

    3.1 字符串反转

      Python学习笔记(五)

 

    3.2 斐波拉契数列

      Python学习笔记(五)

 

               Python学习笔记(五)

 

    3.3 汉诺塔

      Python学习笔记(五)

 

      Python学习笔记(五)

 

 三、函数应用场景

  1、七段数码管绘制时间

    1.1 绘制样式

      Python学习笔记(五)

 

 

    1.2  基本思路

      Python学习笔记(五)

 

       1.3  绘制单个数码管

      Python学习笔记(五)

 

      代码:       

print()

     1.4 获取一段数字,绘制多个数码管

      Python学习笔记(五)

 

      代码:  

      Python学习笔记(五)

 

       1.5 获取当前系统时间,绘制对应的数码管

        1.5.1 增加七段数码管之间的线条间隔

          Python学习笔记(五)

 

        代码:     

#绘制数码管间隔
def drawgap():
    turtle.penup()
    turtle.fd(5)

        1.5.2 获取当前时间

        Python学习笔记(五)

 

      代码:   

  1. def drawdate(date):
  2.     turtle.pencolor("red")
  3.     for in date:
  4.         if ='-':
  5.             turtle.write('年',font=("arial"18"normal"))
  6.             turtle.pencolor("green")
  7.             turtle.fd(40)
  8.         elif ='=':
  9.             turtle.write('月',font=("arial"18"normal"))
  10.             turtle.pencolor("blue")
  11.             turtle.fd(40)
  12.         elif ='+':
  13.             turtle.write('日',font=("arial"18"normal"))
  14.         else:
  15.             drawdigit(eval(i))

      Python学习笔记(五)

 

      Python学习笔记(五)

 

     1.6 七段数码管完整代码:     

  1. #sevendigitsdrawv2.py
  2. import turtle, time
  3. def drawgap(): #绘制数码管间隔
  4.     turtle.penup()
  5.     turtle.fd(5)
  6. def drawline(draw):   #绘制单段数码管
  7.     drawgap()
  8.     turtle.pendown() if draw else turtle.penup()
  9.     turtle.fd(40)
  10.     drawgap()
  11.     turtle.right(90)
  12. def drawdigit(d): #根据数字绘制七段数码管
  13.     drawline(trueif in [2,3,4,5,6,8,9else drawline(false)
  14.     drawline(trueif in [0,1,3,4,5,6,7,8,9else drawline(false)
  15.     drawline(trueif in [0,2,3,5,6,8,9else drawline(false)
  16.     drawline(trueif in [0,2,6,8else drawline(false)
  17.     turtle.left(90)
  18.     drawline(trueif in [0,4,5,6,8,9else drawline(false)
  19.     drawline(trueif in [0,2,3,5,6,7,8,9else drawline(false)
  20.     drawline(trueif in [0,1,2,3,4,7,8,9else drawline(false)
  21.     turtle.left(180)
  22.     turtle.penup()
  23.     turtle.fd(20)
  24. def drawdate(date):
  25.     turtle.pencolor("red")
  26.     for in date:
  27.         if ='-':
  28.             turtle.write('年',font=("arial"18"normal"))
  29.             turtle.pencolor("green")
  30.             turtle.fd(40)
  31.         elif ='=':
  32.             turtle.write('月',font=("arial"18"normal"))
  33.             turtle.pencolor("blue")
  34.             turtle.fd(40)
  35.         elif ='+':
  36.             turtle.write('日',font=("arial"18"normal"))
  37.         else:
  38.             drawdigit(eval(i))
  39. def main():
  40.     turtle.setup(800350200200)
  41.     turtle.penup()
  42.     turtle.fd(-350)
  43.     turtle.pensize(5)
  44. #    drawdate('2018-10=10+')
  45.     drawdate(time.strftime('%y-%m=%d+',time.gmtime()))
  46.     turtle.hideturtle()
  47.     turtle.done()
  48. main()

  2、科赫雪花小包裹

    2.1 问题描述

       Python学习笔记(五)

    2.2 绘制n阶科赫曲线

       代码:   

  1. #kochdrawv1.py
  2. import turtle
  3. def koch(size, n):
  4.     if =0:
  5.         turtle.fd(size)
  6.     else:
  7.         for angle in [060-12060]:
  8.            turtle.left(angle)
  9.            koch(size/3, n-1)
  10. def main():
  11.     turtle.setup(800,400)
  12.     turtle.penup()
  13.     turtle.goto(-300-50)
  14.     turtle.pendown()
  15.     turtle.pensize(2)
  16.     koch(600,3)     # 0阶科赫曲线长度,阶数
  17.     turtle.hideturtle()
  18. main()

        Python学习笔记(五)

 

     2.3 科赫曲线到科赫雪花的绘制

      代码:  

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

 

    Python学习笔记(五)

 

      运行结果:

      Python学习笔记(五)