Python脚本语言开发

函数的调用

  1. 课前提神
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 画笔
import turtle as t

# t.pencolor("pink") # 改变颜色
# t.fd(100)
# t.left(90)
# t.fd(100)
# t.left(90)
# t.fd(100)
# t.left(90)
# t.fd(100)
# t.goto(-100, 100)
# t.pu() # 提笔
# t.goto(100, -220)
# t.pd() #放下笔
# t.left(90)
# t.circle(80) # 圆


t.pencolor("pink")
t.fillcolor("yellow") # 填充颜色
t.begin_fill()

for i in range(4):
t.fd(100)
t.left(90)
t.end_fill()

  1. 不定长参数/可边长度参数

    1. 不定长参数主要有两种形式:在参数名前面1个或2个*

    2. def 函数名([formal_arge,]*arge,**kwargs):

      函数体 # *args一定在前面

    3. 当传入的参数个数比形参个数多时:

      1. 如果传入的参数没有指定名称,则由*args以元组的形式存放多出的参数;如果传入的参数指定了名称,则由**kwargs以字典的形式存放多出的参数。
  2. 传递参数的序列解包

    1. 传递参数时,可以通过在实参序列前面加上一个星号将其解包,然后传递多个变量形参。
      1. 如果函数实参是字典,可以在前面加两个星号进行解包,等价于关键参数。

函数的返回值

  1. 返回值:函数调用后求值的结果;用return语句来指定
  2. 不带表达式的return,或没有return语句,相当于返回None
  3. 函数执行到return语句时就将结束,且return可以返回多个值
  4. 四种类型
    1. 函数无参数,无返回值 #如打印一个菜单
    2. 函数无参数,有返回值 #如回去温度.湿度
    3. 函数有参数,无返回值
    4. 函数有参数,有返回值

变量作用域

  1. 变量的作用域:变量起作用的代码范围
    1. 局部变量:在函数内定义的变量
    2. 全局变量:在所有函数外定义的变量
  2. LEGB(四种作用域):
    1. L(Local):函数内的区域,局部变量;
    2. E(Enclosing):外层嵌套函数的区域;
    3. E(Enclosing):外层嵌套函数的区域;
    4. B(Built-in):内置作用域,系统内置模块中的变量。Python搜索变量的优先级:L→E>G>B
  3. 全局作用域中不能使用局部变量。
    1. 函数返回(结束)时,其局部变量就会自动丢弃。局部作用域内可以访问全局变量。
  4. 局部作用域不能使用其他局部作用域内的变量。
  5. 不同作用域中可以使用相同的变量名,但应尽量避免这种情况。
    1. 如果局部变量与全局变量具有相同的名字,那么该局部变量会在自己的作用域内隐藏同名的全局变量。
  6. 减少全局变量的使用可缩小变量赋值错误导致的缺陷作用范围,并方便追踪赋值错误发生的位置。