Python 基础语法六 ——函数

一个程序可以按不同的功能实现拆分成不同的模块,而函数就是能实现某一部分功能的代码块。

1、函数的概述

定义:在Python中,定义个函数要使用 def 语句,一次写出函数名、括号、括号中的参数和冒号(:),然后在缩进块中编写函数体,函数的返回值用return 语句返回。

def area_of_square(x):
    s = x*x
    return s 

1

def area_of_square(x):

2

    s = x*x

3

    return s 

2、全局变量

定义:在函数外面定义的变量称为全局变量。

作用域:整个代码段(文件、模块),在整个程序代码中都能被访问到。在函数内部可以去访问全局变量。

但不要在函数内部去修改全局变量,否则会得不到想要的结果;因为在函数内部试图去修改一个全局变量是,系统会自动创建一个新的同名局部变量去代替全局变量,采用屏蔽(Shadowing)的方式,当函数调用结束后函数的栈空间会被释放,数据也会随之释放。

如果要在函数内部去修改全局变量的值,并使之在整个程序生效,采用关键字global 即可。

3、局部变量

定义:在函数内部定义的参数和变量称为局部变量

作用域:仅在函数内部。

4、函数的参数

定义:函数的参数就是使得函数个性化的一个实例。

作用:函数有了参数后,输出结果变得可变了;多个参数用逗号  “,” 隔开即可。

4.1 参数传递方式:

在Python中,将函数参数分为三类:位置参数、可变参数、关键字参数。

位置参数:直接传入参数数据即可,如果有多个参数,位置先后顺序不能改变。

定义: 传入参数值按照位置顺序依次赋给参数,这样的参数称为位置参数

可变参数:法一:直接传入参数值

法二:先封装成列表(list)或元组(tuple),再封装后的列表或元组前面添加一个星号 “ * ” 传入。

定义:在定义函数参数的时候,不知道究竟需要多少个参数的时候,只有在参数前面加上星号 “ * ” 即可,这样的参数称为可变参数(又称为收集参数)。

关键字参数:法一:直接传入参数值

                             法二:先封装成字典(dict),再封装后的字典前面添加两个星号 “ ** ” 传入。

定义:直接给参数赋值,就不会因为顺序不同,导致结果的改变。

在函数调用的时候,通过参数指定需要赋值的参。通常我们在调用一个函数时,参数会有多个,常常会混淆参数的顺序,打不到我们希望的效果。

python引入关键字参数就可以解决这个潜在的问题。

4.2  默认值参数

定义:在定义函数时给参数赋了一个初值,这样的参数称为默认值参数。

5、函数的返回值

函数中如果没有用关键之 return 指定返回值,则返回一个“ None ” 对象。

Python是动态的确定变量类型,Python没有变量,只有名字。Python可以返回多个类型的值。

6、函数的调用

要调用一个函数,需要知道函数的名称和参数; *

函数分为自定义函数和内置函数;自定义函数需要定义再调用,有的内置函数时在特定的模块下,这是需要用 import 命令导入模块后再调用。

可以通过交互式命令help(函数名)查看函数的帮助信息。

6.1  函数嵌套调用

内部函数:函数内部创建另一个函数。内嵌函数的作用域在其内部。

6.2 使用闭包

闭包:函数式编程的一个重要的语法结构。在一个内部函数对一个外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数一分为值闭包(closure)。

注意:不能在全局域内访问闭包,否则会出错。在闭包中,外部函数的局部变量对闭包中的局部变量(相当与全局变量和局部变量的关系),在闭包中能访问外部函数的局部变量,但不能进行修改。

6.3   递归调用

递归的两个条件:调用函数自身;

设置了正确的返回条件。

Python 默认递归深度 100 层( Python 限制)。设置递归的深度系统函数是:sys.setrecursionlimit( stepcount )。参数:stepcount 设置递归的深度。

递归有危险性:消耗时间和空间,因为递归是基于弹栈和出栈操作。

递归忘掉返回使用程序崩溃,消耗掉所有的内存。

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/long90/p/12293033.html

时间: 2024-10-31 10:49:15

Python 基础语法六 ——函数的相关文章

Python基础语法(转)

作者:Peter 出处:http://www.cnblogs.com/Peter-Zhang/ Python 基础语法(一) Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语言 使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节. 5. 可移植性 Python已被移植到很多平台,这些平台包括Linux.Windows.Free

python基础语法(一)

Python的特点 1. 简单 Python是一种代表简单思想的语言. 2. 易学 Python有极其简单的语法. 3. 免费.开源 Python是FLOSS(自由/开放源码软件)之一. 4. 高层语言 使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节. 5. 可移植性 Python已被移植到很多平台,这些平台包括Linux.Windows.FreeBSD.Macintosh.Solaris.OS/2.Amiga.AROS.AS/400. BeOS.OS/390.z/OS.

【转】Python基础语法

[转]Python基础语法 学习一门编程语言,通常是学习该语言的以下几个部分的内容: 基础语法:如,变量的声明与调用.基本输出语句.代码块语法.注释等: 数据类型:通常都为 数字.字符串.布尔值.数组.链表.Map.Set等: 运算符:算术运算符.赋值运算符.比较运算符.逻辑运算符.位运算符等: 流程控制语句:分支语句.循环语句: 类的定义与使用:这个是面向对象编程语言才有的内容: 常用API的使用:常用方法.工具类或模块的使用. 掌握上面的内容,就算是对一门编程语言入门了,剩下的就是不断的在使

python之最强王者(2)——python基础语法

背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于python学习,直接使用pycharm IDE开发. 一.第一个python程序 按照套路,入我编程界的门,必须得遵守门规,先来个hello,world,先干为敬! 客官请看图: 运行结果如下图: 看到这里不知道你想说什么,但是我只能说 想一下,java写出一个hello,world得有main方法吧,这得

Python 基础语法

Python 基础语法 Python语言与Perl,C和Java等语言有许多相似之处.但是,也存在一些差异. 第一个Python程序 E:\Python>python Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "

Python 基础语法day02

Python标识符 在python里,标识符有字母.数字.下划线组成. 在python中,所有标识符可以包括英文.数字以及下划线(_),但不能以数字开头. python中的标识符是区分大小写的. 以下划线开头的标识符是有特殊意义的.以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入: 以双下划线开头的(__foo)代表类的私有成员:以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标

Python 基础语法(四)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy

Python 基础语法(三)

Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)-------------------------------------------- 七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对象也可以使用属于类的函数,这样的函数称为类的方法:域和方法可

Python 基础语法(二)

Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) -------------------------------------------- 2. 元组 tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义:支持索引和切片操作:可以使用 in 查看一个元素是否在tuple中.空元组():只含有一个元素的元组("a",) #需要加