学习python的第四天

  1. 函数关键字
  2. 函数的定义
  3. 函数参数与作用域
  4. 函数返回值

1.函数关键字

是python内置的,具有特殊意义的标识符。
关键字后面不需要使用括号。

# 一些查看内置关键字的命令
>>> import keyword
>>> print(keyword.kwlist)
>>> print(len(keyword.kwlist))

2.函数的定义

def 函数名():
函数封装的代码
1.def是英文define的缩写
2.函数名称应该能够表达函数封装代码的功能,方便后续的调用
3.函数名称的命名应该符合标识符的命名规则:可由字母,下划线和数字组成,不能以数字开头,不能与关键字重名
4.定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回

创建
如下是定义一个可以用来取绝对值的函数的过程。

def my_abs(x):
if not isinstance(x, (int, float)):
    raise TypeError('bad operand type')
if x >= 0:
    return x
else:
    return -x

我们可以观察到函数一些基本特征:

创建函数要用 der 函数名 (): 这个方式
定义完函数后一定要打 : 来让下面的代码段执行。
执行的部分一定要缩进,确保代码在以上的条件下执行。
最后用 return 来结束函数。

3.函数参数与作用域

函数有四种参数:

第一种参数类型:必需参数

啥叫必需函数?就是你必须按照正确的顺序和规则来传入参数。用我们之前说过的 list.pop() 举例子

>>> a = [1,2,3,4,5,6]
>>> a.pop(1,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop() takes at most 1 argument (2 given)

list.pop() 语句可以在 () 内输入索引删除指定的元素,但是要求就是一次只能输入一个。当我们输入了两个索引时,报错很清楚的告诉我们:

pop() takes at most 1 argument (2 given)

由此得知:像这样当你不按照正确的顺序或者既定规则传入会报错的参数,即为必需参数。

2.关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。

3.默认参数
传入的多个值中有默认项,默认项可更改。例如:

 ##def enroll(name, gender, age=6, city='Beijing'):
            print('name:', name)
            print('gender:', gender)
            print('age:', age)
            print('city:', city)
        >>>enroll('Bob', 'M', '7') ###按默认顺序
        >>>enroll('Bob', 'M', city='TianJin') ###不按默认顺序
            ##默认参数必须自指向不变对象
                ###def add_end(L=None):
                    if L is None:
                        L = []
                    L.append('END')
                    return L

4.不定长参数
有时你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。基本语法如下:

def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]

4.函数的作用域和返回值

函数变量的作用域:

Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内置作用域(内置函数所在模块的范围)

以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内置中找。

函数的返还值:

函数的最后都有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数的根据返回的值不同做不同的事。

返回值可指定,如果不指定默认返回None。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值