我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3快速入门(五)——Pyth

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3快速入门(五)——Pyth

一、函数定义

1、函数定义

Python 定义函数使用 def 关键字,一般格式如下:

def function_name(parameter_list):
    pass

默认情况下,参数值和参数名称按函数声明中定义的顺序进行匹配。
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串描述函数说明。
函数内容以冒号起始,并且进行缩进。
函数的定义示例如下:

def add(x, y):
    result = x + y
    return result

2、函数的返回值

函数使用return [表达式] 结束函数,返回一个或多个值给调用方。不带表达式的return相当于返回 None。

def get_fruits():
    apple = "Apple"
    banana = "Banana"
    orange = "Orange"
    return apple, banana, orange

a,b,c = get_fruits()
print(a, b, c)

二、函数调用

1、函数调用

函数定义只给了函数一个名称,指定了函数里包含的参数和代码块结构。
函数调用直接使用定义的函数名称以及传递相应的参数进行调用。

2、函数调用的递归限制

Python默认设置了函数的最大递归调用次数,开发者可以直接进行设置。设置方法如下:

#!/usr/bin/python3

import sys

sys.setrecursionlimit(100) # 设置最大递归次数为100

三、函数参数

1、必须参数

必须参数是函数调用时必须传递的参数。

#!/usr/bin/python3

def add(x, y):
    result = x + y
    return result

add(3, 2)

2、关键字参数

关键字参数用于函数调用时,使用形式参数关键字将实际参数赋值给函数的相应形式参数,函数调用过程中传递实际参数顺序可以与形式参数顺序不匹配,但所有的必须参数必须被赋值。

#!/usr/bin/python3

def add(x, y):
    result = x + y
    return result

add(y=2, x=3)

上述代码中,add函数的调用传递的实际参数通过指定关键字参数实际指定相应的形式参数,不必按照形式参数顺序匹配,但必须参数都必须被传递。

3、默认参数

函数在定义过程中可以为指定参数默认的值,并且必须参数必须放在默认参数的左侧。

#!/usr/bin/python3

def print_student(name, gender="男", age=28):
    print(name)
    print(gender)
    print(age)

print_student("Bauer", "男", 30)
print_student("Lee")
print_student("Lisa","女")

print_student(age=30, name="Bob")

函数调用时,可以使用关键字参数对形式参数进行赋值,默认参数可以缺省,但必须参数必须被赋值,必须参数可以使用关键字参数赋值。如果必须参数不使用关键字参数,则必须参数必须严格按照函数定义的顺序传递,其默认参数可以使用关键字参数选择性赋值,没有使用关键字参数传递的默认参数将使用默认值。

4、可变参数

可变参数通过使用*修饰形式参数定义可变参数。
函数定义时,可以定义可变参数,在函数调用时传递可变的多个实际参数。

#!/usr/bin/python3

def add(*args):
    result = 0;
    for x in args:
        result += x
    return result

c = add(1, 2, 3, 4)
print(c)
c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(c)
tup1 = 1, 2, 3, 4
c = add(*tup1) # 传入序列
print(c)
list1 = [1, 2, 3]
c = add(*list1)
print(c)

对应定义了可变参数的的函数,如果需要传入序列作为实际参数,需要在序列前加*
如果函数定义时有可变参数和默认参数,函数调用时可以使用关键字参数用于指定默认参数。

#!/usr/bin/python3

def add(x, *args, y=100):
    result = x + y;
    for i in args:
        result += i
    return result

c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) # 155
print(c)
c = add(1, 2, 3, 4, 5, 6, 7, 8, 9, y=10) # 55
print(c)

Python中,如果函数定义时可变参数放在默认参数的左侧,则默认参数需要使用关键字参数显式指定。

5、关键字可变参数

关键字可变参数通过使用**修饰形式参数定义,关键字可变参数为字典类型,关键字可变参数属于可选参数。

#!/usr/bin/python3

def average_score(**args):
    result = 0;
    for key, value in args.items():
        result += value
        print(key + ": ", value)
    result = result / len(args)
    print("Average score is ", result)
    return result

book = {"Bauer": 90, "Bob": 100, "Lisa": 70, "Lee": 100}
average_score(**book)
average_score(Bauer=100, Lisa=70, Lee=100)

函数调用时,关键字可变参数可以传递多个键值对,页可以直接传递dictionary类型变量,此时需要使用**修饰字典变量。

四、匿名函数

python 使用 lambda表达式来创建匿名函数,函数定义如下:
lambda [arg1 [,arg2,.....argn]]:expression
Lambda表达式定义的匿名函数的函数体不是一个代码块,因此,仅能在lambda表达式中封装有限的逻辑。
Lambda表达式拥有自己的命名空间,且不能访问自有参数列表外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

#!/usr/bin/python3
# -*- coding:utf-8 -*-

sum = lambda arg1, arg2: arg1 + arg2;

# 调用sum函数
print(sum(10, 20))
print(sum(20, 20))

五、变量作用域

程序的所有的变量并不是在任何位置都可以访问的,访问权限决定于变量是在哪里赋值的。变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。
定义在函数内部的变量拥有局部作用域,定义在函数外的拥有全局作用域,代码块内部局部变量会覆盖全局变量,在局部作用域内修改全局变量的值时,需要使用global关键字对相应全局变量进行声明,表明本作用域内使用的是全局变量。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。

#!/usr/bin/python3
# -*- coding:utf-8 -*-

base = 100

def sum(*args):
    global base
    base = 0
    result = 0;
    for i in args:
        result += i
    return result + base;

c = sum(1,2,3,4,5,6,7,8,9,10)
print(c) # 55
print(base) # 0

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3快速入门(五)——Pyth

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3快速入门(五)——Pyth

一、函数定义1、函数定义Python 定义函数使用 def 关键字,一般格式如下:def function_name(parameter_list): pass默认情况下,参数值和参数名称按函数声明中定义的顺序进行匹配。函数代码块以 
2023-01-31

Python3快速入门(九)——Pyth

一、Python线程模块1、线程简介一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程本身不拥有系统资源,与进程内的其它线程共享进程的所有资源。一个进程中至少
2023-01-31

Python3快速入门(十)——Pyth

一、socket模块简介Python 提供了两个级别访问的网络服务,低级别的网络服务支持基本的 Socket,提供了标准的BSD Sockets API,可以访问底层操作系统Socket接口的全部方法;高级别的网络服务模块 SocketSe
2023-01-31

Python3快速入门(四)——Pyth

一、Python包简介1、包Python中使用包管理模块,包通常对应一个目录,必须在目录下创建一个init.py模块,init.py模块的模块名称即为包名,Python才会将目录解析为包。init.py文件内可以定义初始化包的内容,导入包的
2023-01-31

Python3快速入门(一)——Pyth

一、Python简介1、Python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,由荷兰Guido van Rossum于1989年底发明,第一个公开发行版于1991年发布,Python源代码遵循 GPL(GNU
2023-01-31

Python3快速入门(七)——Pyth

1、re模块简介re 模块提供 Perl 风格的正则表达式模式,使 Python 语言拥有全部的正则表达式功能。2、正则表达式模式模式字符串使用特殊的语法来表示一个正则表达式:正则表达式模式中的字母和数字匹配同样的字符串;多数字母和数字前加
2023-01-31

Python3快速入门(六)——Pyth

一、面向对象技术简介1、面向对象简介面向对象编程(Object Oriented Programing,OOP)是一种编程思想,OOP把对象当成程序的一个基本单元,一个对象包含数据和操作数据的方法。面向对象编程的三大特性如下:A、封装,可以
2023-01-31

Python3快速入门(三)——Pyth

一、Python3标准数据类型Python3 中有六种标准数据类型:A、Number(数字)B、String(字符串)C、List(列表)D、Tuple(元组)E、Set(集合)F、Dictionary(字典)Python3 的六种标准数据
2023-01-31

Python3快速入门(二)——Pyth

一、Python3语法基础1、Python3编码默认情况下,Python 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串,可以为Python源码文件指定不同的编码,如下:# -*- coding: utf-8 -*-2
2023-01-31

Python3快速入门(八)——Pyth

1、JSON简介JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,是基于ECMAScript的一个子集。2、json模块简介Python3 中可以使用 json 模块来对 JSON 数据进行编解
2023-01-31

Python3快速入门(十五)——Pan

一、函数应用1、函数应用简介如果要将自定义函数或其它库函数应用于Pandas对象,有三种使用方式。pipe()将函数用于表格,apply()将函数用于行或列,applymap()将函数用于元素。2、表格函数应用可以通过将函数对象和参数作为p
2023-01-31

Python3快速入门

Python3快速入门Python3快速入门(一)——Python简介https://blog.51cto.com/9291927/2385592Python3快速入门(二)——Python3基础https://blog.51cto.com
2023-01-31

python3.x 快速入门

Edit the > 2018/6/15 11:26:53 1认识Python人生苦短,我用python - 优雅,明确,简单 是python设计哲学 - python的设计目标之一, 是让代码具备高度的可阅读性 - python 被广泛用
2023-01-31

Python3快速入门——(3)dict

#先回忆下列表的操作animals=["cat","dog","rabbit"] #找到list中的某个值(第一种方法)for animal in animals: if(animal=="cat"):
2023-01-31

Python3快速入门(十八)——PyI

一、PyInstaller简介1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打
2023-01-31

Python3快速入门(十三)——Pan

一、Pandas数据结构简介Pandas有三种主要数据结构,Series、DataFrame、Panel。Series是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引(index)。D
2023-01-31

Python3快速入门(十四)——Pan

一、DataFrame IO1、CSV文件pandas.read_csv(filepath_or_buffer, na_values='NAN', parse_dates=['Last Update'])从CSV文件中读取数据并创建一个Da
2023-01-31

Python3快速入门(十六)——Mat

一、Matplotlib简介1、Matplotlib简介Matplotlib是 Python 2D-绘图领域使用最广泛的套件,可以简易地将数据图形化,并且提供多样化的输出格式。matplotlib有两个接口,一个是状态机层的接口,通过pyp
2023-01-31

Python3快速入门(十二)——Num

一、NumPy简介1、NumPy简介NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时对数组运算提供了大量的数学函数库。Numpy 是一个运行速度非常快的数学库,内部解
2023-01-31

Python3快速入门(十一)——Pyt

一、mysql-connector 驱动1、mysql-connector 简介mysql-connector 是 MySQL 官方提供的驱动器。使用pipenv进行包管理,安装命令如下:pipenv install mysql-conne
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录