Python基础(七)

目录

  • 1 模块函数

    • 1.1 模块函数
    • 1.2 导入
      • 1.2.1 import moudle
      • 1.2.2 import module as alias
      • 1.2.3 from module import function
      • 1.2.4 from module import function as alias
  • 2 自定义函数
    • 2.1 定义函数
    • 2.2 设置docstring
    • 2.3 函数调用
    • 2.4 返回值
    • 2.5 形参
      • 2.5.1 形参分类
      • 2.5.2 * 与 **
      • 2.5.3 命名关键字参数
    • 2.6 实参
      • 2.6.1 位置参数
      • 2.6.2 关键字参数
    • 2.7 变量可见性
      • 2.7.1 局部变量
      • 2.7.2 全局变量
      • 2.7.3 非局部变量
    • 2.8 参数传递规则
      • 2.8.1 值传递
      • 2.8.2 地址传递
    • 2.9 lambda函数
      • 2.9.1 定义
      • 2.9.2 调用

1 模块函数

1.1 模块函数

模块函数指的是模块中的函数,模块函数有三种:

  • 内置模块:又叫标准库.
  • 第三方开源模块:可以通过包管理工具进行安装.
  • 自定义模块.

1.2 导入

导入方法主要有三种:

1.2.1 import moudle

import math
math.e

1.2.2 import module as alias

alias表示别名.

1.2.3 from module import function

从模块导入函数.

1.2.4 from module import function as alias

与上一种类似,加上了别名.

2 自定义函数

2.1 定义函数

使用关键字def定义:

def func():
    print(1)

2.2 设置docstring

docstring就是注释,描述了函数的功能,使用三个单引号或三个双引号,可以用help()获取函数的docstring.

def func():
    '''
    func docstring
    '''
    print(1)
help(func)

2.3 函数调用

直接使用函数名即可,需要的话要加上参数.

func()
func(22)

2.4 返回值

返回值在return里指定,可以返回多个值:

def f():
    return 1,2,3,4

相当于返回一个元组.若函数没有return,则返回None.

2.5 形参

2.5.1 形参分类

形参就是函数定义时的参数列表里面的参数,可以分为:

  • 可选形参:给出默认值的形参.
  • 必选形参:没有给出默认的形参.
def f(x1,x2,x3=3)

其中x1,x2必选形参,x3可选形参.

2.5.2 * 与 **

带一个 * 的形参表示该形参类型为元组,带两个 * 的形参表示该参数类型为字典.

2.5.3 命名关键字参数

出现在*后的参数.

def f(x1,*x2,x3,x4)

x3与x4就是命名关键字参数,在调用时必须显式使用参数名.

2.6 实参

python实参可以分为位置实参与关键字实参.

2.6.1 位置参数

位置参数就是没有指定形参名字的实参,每个实参基于顺序关联到一个形参.

2.6.2 关键字参数

关键字参数就是指定了形参名字的实参,用键值对的形式指定,可以不按顺序调用.

def f(x1,x2,x3):
    print(x1,x2,x3)
f(1,2,3)
f(x3=999,x1=888,x2=999999)

2.7 变量可见性

python变量的可见性有三种:全局变量,局部变量,非局部变量.

2.7.1 局部变量

在函数内的变量为局部变量,因此,以下代码会输出9:

x1 = 8
def f():
    x1 = 9
    print(x1)
f()

如果在x1之前输出呢?

直接提示没有定义x1,就是全局变量x1在函数内不可见,但笔者不死心,一定要运行一下.

它说局部变量x1没有被赋值,注意,是局部变量,因此,这也证明了全局变量在函数内不可见.

2.7.2 全局变量

若要使全局变量在函数内可见,使用global:

x1 = 8
def f():
    global x1
    print(x1)
    x1 = 9
    print(x1)
f()


global x1表示x1是一个全局变量,注意global x1需要单独占一行.

2.7.3 非局部变量

用于嵌套函数中,使用nonlocal声明,表示内层函数的这个变量是外层函数的.

x1 = 8
def f():
    x1 = 9
    print(x1)
    def f1():
        nonlocal x1
        print(x1)
        x1 = 10
        print(x1)
    return f1
f()
f()()


第一个与第二个9都是f()中的print()输出的,第三个9是f1()中的print()输出的.

2.8 参数传递规则

当实参传递给形参时,有两种传递规则,一是值传递,而是地址传递.

2.8.1 值传递

当实参为不可变对象时,采用值传递规则,常见的不可变对象类型包括int,float,str,bool,tuple.

def f(x):
    x = 1
    print(x)
x = 3
print('-------int------')
f(x)
print(x)
print()

x = 'string'
print('-------str------')
f(x)
print(x)
print()

x = (3,4,5)
print('-------tuple------')
f(x)
print(x)
print()

x = 5.799
print('-------float------')
f(x)
print(x)
print()

2.8.2 地址传递

参数为可变对象时,采用地址传递规则,修改形参的值会同时改变实参的值.常见的可变对象类型包括list,set,dict.

def f(x):
    if type(x) == list:
        x = x.reverse()
    elif isinstance(x,set):
        x.add(8)
    else:
        x['0'] = 3
x = [1,2,3]
print('-------list------')
print(x)
f(x)
print(x)
print()

x = {4,5,6}
print('-------set------')
print(x)
f(x)
print(x)
print()

x = {'a':1,'b':2}
print('-------dict------')
print(x)
f(x)
print(x)
print()

2.9 lambda函数

lambda是一种特殊的自定义函数,使用关键字lambda进行定义,是一种匿名函数,函数体一般很短.

2.9.1 定义

以关键字lambda开头,后面是参数列表,参数列表结束后加一个冒号,后面是返回值.

y = lambda x:x*3
z = lambda x,y:x*y

2.9.2 调用

调用可以通过"函数名"调用,或者配合其他函数使用.

原文地址:https://www.cnblogs.com/Blueeeeeeee/p/12121183.html

时间: 2024-10-19 10:00:50

Python基础(七)的相关文章

python基础(七)函数

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 函数的定义 首先,我们要定义一个函数, 以说明这个函数的功能. def square_sum(a,b): c = a**2 + b**2 return c 这个函数的功能是求两个数的平方和. 首先,def,这个关键字通知py

python 基础(七)

异常处理 一.需求 当遇到错误的时候 不让程序停止执行 而是越过错误继续执行 二.主体结构 (抓取所有异常) try:   可能出现异常的代码段 except:   出现异常以后的处理 三.处理特定异常(只捕获特定的异常) try:   # a   1 + '1'   # int('asd') except NameError as e:   print('NameError 错误信息为',e) 四.多重捕获 try:   # a   1 + '1'   # int('asd') except

Python基础七(函数)

函数概述 函数:组织好的.可重复使用的.杉树能提高应用的模块性和代码的重复利用性.Python提供了很多的内置函数,比如len()等等,可以自行定义函数. 函数的定义 def 函数名(参数列表):   #函数定义 函数体 函数名() #函数执行 def namePrint(): #函数定义,这是无参数函数 print("我的名字是:发发") name() #执行函数 def func2(a): #定义了一个有形参的函数 print(a) func2("123") #

Python基础(七):异常处理

异常处理是确保程序在控制范围内运行的一个保障机制,在程序发生异常时执行应对措施,确保程序不会直接挂掉,并且让异常信息有迹可循,所以合理的异常处理机制也是保障程序健壮性的关键因素之一. 在Python中,异常处理的流程结构大致如下, try: 代码块1 except Exception as e: 代码块2 raise e else: 代码块3 finally: 代码块4 下面详细说明各个关键字的用法, 1.try 如果程序中有一些操作可能会出现异常,那么就把这些代码放在try语句后面,比如一些用

python基础七--异常处理

异常处理try,except,else,finally的使用和实例. 1.异常处理说明 try: 5/0 except Exception as e: #这个exception 能捕捉到所有的异常 print('异常信息:',e) #这个是出了异常的话,怎么处理,e代表异常信息 else: print('没有出异常的话,走这里') #若是没有出现异常,运行else finally: print('这里是finally') #无论是否出现异常,都会执行finally 2.判断小数(判断s是否可以转

Python基础篇(七)

加上两个下划线变量或者方法变为私有. >>> class Bird: ...    __song = "spark" ...    def sing(self): ...       return self.__song ... >>> b = Bird() >>> b.sing() 'spark' >>> b.__sing() Traceback (most recent call last): File &qu

Python基础学习笔记(七)常用元组内置函数

参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 Python常用元组内置函数: 序号 方法及描述 1 cmp(tuple1, tuple2)比较两个元组元素. 2 len(tuple)计算元组元素个数. 3 max(tuple)

Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1)   静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法.普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访

Python基础教程系列:七、字典

字典是Python语言中唯一的映射类型.映射类型不要求用数字值做索引就可以从一个容器中获取对应的数据项.你可以用键(key)直接映射到值,这就是为什么叫映射的原因,映射,我的理解就是索引,顺藤摸瓜就可以找到背后的幕后者.字典是Python中最强大的数据类型之一. 刚开始接触字典还是在Hadoop中的mapreduce,其实说白了就是键值对(key/value),所谓的索引通常是指key,而幕后者通常指的是value.每个key对应一个value,主要的好处是方面归类,而且按照key进行查找val