分享

python笔记

 流形sbz 2023-11-04 发布于甘肃


目录

函数的定义和使用

函数的理解和定义

函数是一段代码的表示

作用

定义

函数的使用及调用过程

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

函数的参数传递

参数个数

可变参数传递

参数按照位置或名称传递 

函数的返回值

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

局部变量和全局变量

局部变量和全局变量不是相同的

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

使用规则

lambda函数

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

结构

实例7:七段数码管绘制

基本思路

代码

理解方法思维

扩展

代码复用与函数递归

代码复用和模块化设计

代码复用

模块化设计

函数递归的理解

递归

函数递归的调用过程

递归的实现

函数递归实例解析

模块4:PyInstaller库的使用

将py源代码转化为无需源代码的可执行文件

PyInstaller是第三方库

使用

常用参数

实例8:科赫雪花小包裹

科赫曲线

代码

雪花 


  • 函数的定义和使用

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

    • 结构

    • 是匿名函数,即没有名字的函数

    • 函数名是返回结果

    • 用于定义简单的,能够在一行内表示的函数

    • 局部变量和全局变量不是相同的

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

    • 使用规则

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

    • 可以通过global保留字在函数内部声明全局变量

    • 组和数据类型,如果局部变量未真实创建,则是全局变量

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

    • 参数个数

    • 可变参数传递

    • 参数按照位置或名称传递 

    • 都行

    • 可选参数放在必选参数后面

    • 可变参数*b

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

    • 给出实际参数

    • 实际参数替换定义中的参数

    • 函数调用后会得到返回值

    • 函数是一段代码的表示

    • 作用

    • 定义

    • 降低编程难度

    • 代码复用

    • 函数定义时所指定的参数是一种占位符

    • 函数定义如果不调用,不会被执行

    • 函数的理解和定义

    • 函数的使用及调用过程

    • 函数的参数传递

    • 函数的返回值

    • 局部变量和全局变量

    • lambda函数

  • 实例7:七段数码管绘制

    • 绘制带小数点的七段数码管

    • 带刷新的数字倒计时效果

    • 绘制高级数码管


    • 模块化思维

    • 规则化思维

    • 化繁为简


    • 步骤1:绘制单个数字对应的数码管

    • 步骤2:获得一串数字,绘制对应的数码管

    • 步骤3:获得当前系统时间,绘制对应的数码管

    • '

    • 基本思路

    • 代码

    • 理解方法思维

    • 扩展

    1. import turtle
    2. def drawGap():#每根管前空5格
    3. turtle.penup()
    4. turtle.fd(5)
    5. def drawLine(draw):#画管
    6. drawGap()
    7. if draw :
    8. turtle.pendown()
    9. else:
    10. turtle.penup()
    11. turtle.fd(40)
    12. drawGap()
    13. turtle.right(90)
    14. def number(x):
    15. for i in range(x,-1,-1):
    16. drawDight(i)
    17. turtle.clear()
    18. turtle.goto(0,0)
    19. def drawDight(dight):#显示数字
    20. if dight in [2,3,4,5,6,8,9]:
    21. drawLine(True)
    22. else:
    23. drawLine(False)
    24. if dight in [0,1,3,4,5,6,7,8,9]:
    25. drawLine(True)
    26. else:
    27. drawLine(False)
    28. if dight in [0,2,3,5,6,8,9]:
    29. drawLine(True)
    30. else:
    31. drawLine(False)
    32. if dight in [0,2,6,8]:
    33. drawLine(True)
    34. else:
    35. drawLine(False)
    36. turtle.left(90)
    37. if dight in [0,4,5,6,8,9]:
    38. drawLine(True)
    39. else:
    40. drawLine(False)
    41. if dight in [0,2,3,5,6,7,8,9]:
    42. drawLine(True)
    43. else:
    44. drawLine(False)
    45. if dight in [0,1,2,3,4,7,8,9]:
    46. drawLine(True)
    47. else:
    48. drawLine(False)
    49. turtle.left(180)
    50. turtle.penup()
    51. turtle.fd(20)
    52. def main():
    53. turtle.setup(800,350)
    54. turtle.penup()
    55. turtle.fd(0)
    56. turtle.pensize(5)
    57. number(5)
    58. turtle.hideturtle()
    59. turtle.done()
    60. main()
    1. import turtle,time
    2. def drawGap():
    3. turtle.penup()
    4. turtle.fd(5)
    5. def drawLine(draw):
    6. drawGap()
    7. if draw :
    8. turtle.pendown()
    9. else:
    10. turtle.penup()
    11. turtle.fd(40)
    12. drawGap()
    13. turtle.right(90)
    14. def drawDight(dight):
    15. if dight in [2,3,4,5,6,8,9]:
    16. drawLine(True)
    17. else:
    18. drawLine(False)
    19. if dight in [0,1,3,4,5,6,7,8,9]:
    20. drawLine(True)
    21. else:
    22. drawLine(False)
    23. if dight in [0,2,3,5,6,8,9]:
    24. drawLine(True)
    25. else:
    26. drawLine(False)
    27. if dight in [0,2,6,8]:
    28. drawLine(True)
    29. else:
    30. drawLine(False)
    31. turtle.left(90)
    32. if dight in [0,4,5,6,8,9]:
    33. drawLine(True)
    34. else:
    35. drawLine(False)
    36. if dight in [0,2,3,5,6,7,8,9]:
    37. drawLine(True)
    38. else:
    39. drawLine(False)
    40. if dight in [0,1,2,3,4,7,8,9]:
    41. drawLine(True)
    42. else:
    43. drawLine(False)
    44. turtle.left(180)
    45. turtle.penup()
    46. turtle.fd(20)
    47. def drawDate(date):
    48. turtle.pencolor('red')
    49. for i in date:
    50. if i == '-':
    51. turtle.write('年',font=('Arial',18,'normal'))
    52. turtle.pencolor('green')
    53. turtle.fd(40)
    54. elif i == '=':
    55. turtle.write('月',font=('Arial',18,'normal'))
    56. turtle.pencolor('blue')
    57. turtle.fd(40)
    58. elif i == '+':
    59. turtle.write('日',font=('Arial',18,'normal'))
    60. else:
    61. drawDight(eval(i))
    62. def main():
    63. turtle.setup(800,350,200,200)
    64. turtle.penup()
    65. turtle.fd(-300)
    66. turtle.pensize(5)
    67. drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
    68. turtle.hideturtle()
    69. turtle.done()
    70. main()
  • 代码复用与函数递归

    • 斐波那契数列

    • 汉诺塔

    • 递归的实现

    • 函数+分支

    • 递归

    • 存在一个或多个不需要递归的实例

    • 计算过程存在递归链条

    • 函数调用函数自身

    • 链条

    • 基例

    • 代码复用

    • 模块化设计

    • 函数

    • 对象

    • 将代码命名

    • 在代码层面进行初步抽象

    • 属性和方法

    • 在函数上再次组织进行抽象

    • 代码资源化

    • 代码抽象化

    • 代码复用

    • 把代码当作资源进行抽象

    • 函数和对象是代码复用的形式

    • 最好是松耦合

    • 通过函数或对象进行封装划分为模块与模块之间的表达

    • 分而治之

    • 紧耦合 松耦合

    • 代码复用和模块化设计

    • 函数递归的理解

    • 函数递归的调用过程

    • 函数递归实例解析

  • 模块4:PyInstaller库的使用

    • (cmd命令行)pip install pyinstaller

    • 将py源代码转化为无需源代码的可执行文件

    • PyInstaller是第三方库

    • 使用

    • 常用参数

  • 实例8:科赫雪花小包裹

    • 代码



    • 科赫曲线

    • 代码

    • 雪花 

    1. import turtle
    2. def koch(size,n):
    3. if n==0:
    4. turtle.fd(size)
    5. else:
    6. for angle in [0,60,-120,60]:
    7. turtle.left(angle)
    8. koch(size/3,n-1)
    9. def main():
    10. turtle.setup(600,600)
    11. turtle.penup()
    12. turtle.goto(-200,100)
    13. turtle.pendown()
    14. turtle.pensize(2)
    15. level=4
    16. koch(400,level)
    17. turtle.right(120)
    18. koch(400,level)
    19. turtle.right(120)
    20. koch(400,level)
    21. turtle.hideturtle()
    22. main()
    1. import turtle
    2. def koch(size,n):
    3. if n==0:
    4. turtle.fd(size)
    5. else:
    6. for angle in [0,60,-120,60]:
    7. turtle.left(angle)
    8. koch(size/3,n-1)
    9. def main():
    10. turtle.setup(800,400)
    11. turtle.penup()
    12. turtle.goto(-300,-50)
    13. turtle.pendown()
    14. turtle.pensize(2)
    15. koch(600,3)
    16. turtle.hideturtle()
    17. main()
文章知识点与官方知识档案匹配

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多