python 学习第五天

函数的定义与使用

  -函数的理解与定义

  -函数的使用及调用过程

  -函数的参数传递

  -函数的返回值

  -局部变量和全局变量

  -lambda函数

1.函数的定义与使用

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

  def <函数名>(<0个或多个非可选参数>,<带默认值的可选参数>):  #如def fact(n,m=1):

    <函数体>

    return <返回值>

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

  <函数名>(<实际参数>)

3.函数的参数传递

  参数可变的函数

  def <函数名>(<非可选参数>,*b):

  使用函数时,可以通过<参数名>=<值>的方式调用函数,如果只给参数的值,默认与 函数参数列表顺序对应

4.函数的返回值

  函数可以不给return 或者return 不加任何信息,也可以返回多个值,用逗号分隔,返回值类型是元组,元组由小括号加逗号分隔

5.局部遍历和全局变量

  函数内定义的变量叫做局部变量

  函数外定义的变量叫做全局变量

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

  函数内局部变量在函数执行完会被释掉

  函数内若想使用外部的全局变量,则在函数内需要用global关键字声明该变量名

  例 n,s=10,100

    def fact(n):

      global s

      for i in range(1,n+1):

        s*=i

      return s

    print(fact(n),s)    # 36288000 36288000

  函数内调用的局部变量为组合数据类型且未在函数内重新创建,则等同于全局变量中该名字的全局变量

6.lambda函数

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

  lambda函数是一种匿名函数,用lambda保留字来定义

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

    <函数名> = lambda <参数> :<表达式>

    例如  f=lambda x,y : x+y

        f(10,15)    #25

    又如  f=lambda: "lambda函数"

        print(f())    #“lambda函数”

  建议别用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(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.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()

    

 代码复用与函数递归

  -代码复用与模块化设计

  -函数递归的理解

  -函数递归的调用过程

  -函数递归实例解析

  略

PyInstaller库的使用

  PyInstaller 库是第三方库,需要预先安装

  cmd命令行执行如下命令

    pip install pyinstaller

  通过cmd命令行 pyinstaller -F <文件名.py>

  -h  查看帮助

  --clean  清楚打包过程中的临时文件

  -D,--onedir  默认值,生成dist文件夹

  -F,--onefile  在dist文件中只生产独立的打包文件

  -i <图标文件名.ico>  指定打包程序使用的图标(icon)文件

科赫雪花小包裹

#KochDrawV1.py
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
  koch(400,level)
  turtle.right(120)
  koch(400,level)
  turtle.right(120)
  koch(400,level)
  turtle.right(120)
  turtle.hideturtle()
main()

猜你喜欢

转载自www.cnblogs.com/foodie-nils/p/12968442.html