Python3 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
特性:代码重用,保持一致性,可扩展性。
函数的命名规范和变量命名一样。
Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表):
函数体
调用函数时格式如下:
函数名(参数列表)
简单函数
def func():#定义func函数
print("this is my function.") #func函数功能 func() #调用func函数 #执行结果:this is my function.
带参数的函数
形参(创建函数时的参数):形式参数,不是实际存在,是虚拟变量。在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)
实参(调用函数时的参数):实际参数,调用函数时传给函数的参数,可以是常量,变量,表达式,函数,传给形参
形参和实参的区别:形参是虚拟的,不占用内存空间,.形参变量只有在被调用时才分配内存单元,实参是一个变量,占用内存空间,数据传送单向,实参传给形参,不能形参传给实参
必需参数
必需参数须以正确的顺序传入函数。调用时的数量以及顺序必须和声明时的一样。
def func(name,age,sex): #定义func函数并添加3个参数
print("name:%s\nage:%d\nsex:%s"%(name,age,sex)) #func函数功能 func("liu",18,"男") #因为声明函数时有参数 所以调用时得加参数 且顺序和数量必须和声明时对应 #执行结果:
# name:liu
# age:18
# sex:男
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
def func(name,age,sex): #定义func函数并添加3个参数
print("name:%s\nage:%d\nsex:%s"%(name,age,sex)) #func函数功能 func(age=18,sex="男",name="liu") #关键参数的数量必须和声明时数量一样 参数的使用不需要使用声明函数时指定顺序 #执行结果:
# name:liu
# age:18
# sex:男
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
def func(name,age,sex="男"): #定义func函数并将sex设为默认参数
print("name:%s\nage:%d\nsex:%s"%(name,age,sex)) #func函数功能 func(age=18,name="liu") #参数的数量必须和声明时数量一样 如果没有传递sex则会默认声明时sex="男" #执行结果:
# name:liu
# age:18
# sex:男 func(age=18,name="liu",sex="女") #如果有传递sex 则声明时默认的sex将会改变 #执行结果:
# name:liu
# age:18
# sex:女
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述几种参数不同,声明时不会命名。
def func(*args): #加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组
print(args) # 执行结果:('liu', 18, '男') 所有传递上来的参数存在一个元组里
for i in args:
print(i) func("liu",18,"男") #所有参数都将存储到args元组里 #执行结果:
# ('liu', 18, '男')
# liu
#
# 男
def func(**kwargs): #加了两个星号(**)的变量名会存放所有已经命名的变量参数。如果在函数调用时没有指定参数,它就是一个空字典
print(kwargs)# 执行结果:{'age': 8, 'sex': '男', 'name': 'liu'} 所有传递上来的参数存在一个字典里
for i in kwargs:
print(i+":"+str(kwargs[i])) func(name="liu",age=8,sex="男") #所有参数都将存储到kwargs字典里,等号(=)前的值会变成关键字(key) 等号(=)后的数值会变成值(value) #执行结果:
# {'age': 8, 'sex': '男', 'name': 'liu'}
# age:8
# sex:男
# name:liu
Python3 函数的更多相关文章
- python3函数
一.python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.可以自己创建函数,这被叫做用户自定义函数. 1.定义函数规则 函 ...
- python015 Python3 函数
Python3 函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...
- Python3函数中特殊形参的使用:*、*args、**kwargs
Python3函数中特殊形参的使用:*.*args.**kwargs ==用法1:不定长参数== 当函数需要的参数数量不确定的时候,可以使用*args 和 **kwargs , 所有的位置参数保存在* ...
- 07 . Python3函数
Python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().我们可以直接调用 ...
- 汉诺塔python3函数编写和过程分析
!/usr/bin/env python3 -- coding: utf-8 -- 利用递归函数计算阶乘 N! = 1 * 2 * 3 * ... * N def fact(n): if n == 1 ...
- Python3 函数注解
Python3提供一种语法,用于为函数声明中的参数和返回值附加元数据.下面的例子是注解后的版本,特点在第一行: 1 def clip(text : str, max_len : 'int > 0 ...
- 5 Python3 函数进阶&迭代器与生成器
1.函数进阶 1.1.名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的 ...
- Python3 函数作用域
一 LEGB 什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 顺序是什么? 跟名字一样 ...
- python系列十:python3函数
#!/usr/bin/python #-*-coding:gbk-*- '''函数的简单规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必 ...
- Python3 函数 一
什么是函数? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal ...
随机推荐
- iOS 获取用户授权的用户隐私保护-地图定位
获取用户授权的用户隐私保护地图定位示例://导入定位框架#import<CoreLocation/CoreLocation.h>@interfaceViewController()< ...
- IOS开发基础知识--碎片33
1:AFNetworking状态栏网络请求效果 直接在AppDelegate里面didFinishLaunchingWithOptions进行设置 [[AFNetworkActivityIndicat ...
- python之面向对象与构造函数
一.面向对象介绍 不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路, 大多数语言只支持一种编程范式, 当然也有些语言可以同时支持多种编程范式. 两种最重要的编程范式分别是面向过程编程 ...
- [css]我要用css画幅画(三)
接着之前的[css]我要用css画幅画(二), 今天,我画了一个小人,他的名字暂时叫作小明. 以下只列出本次修改增加的内容 html如下: <div class="human left ...
- Nagios学习实践系列——配置研究[监控当前服务器]
其实上篇Nagios学习实践系列——基本安装篇只是安装了Nagios基本组件,虽然能够打开主页,但是如果不配置相关配置文件文件,那么左边菜单很多页面都打不开,相当于只是一个空壳子.接下来,我们来学习研 ...
- DPA 9.1.85 升级到DPA 10.0.352流程
SolarWinds DPA的升级其实是一件非常简单的事情,这里介绍一下从DPA 9.1.95升级到 DPA 10.0.352版本的流程.为什么要升级呢? DPA给用户发的邮件已经写的非常清楚了(如下 ...
- SQL SERVER 2008:内部查询处理器错误: 查询处理器在执行过程中遇到意外错误
今天一个同事突然告诉我,以前跑得很正常的一个SQL语句,执行时突然报如下错误: 消息1222,级别16,状态18,第1 行 已超过了锁请求超时时段. ...
- Linux命令学习总结:hexdump
命令简介: hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII.八进制.十进制.十六进制格式进行查看. 指令所在路径:/usr/bin/hexdump 命令语法: ...
- C++11 - 类型推导auto关键字
在C++11中,auto关键字被作为类型自动类型推导关键字 (1)基本用法 C++98:类型 变量名 = 初值; int i = 10; C++11:auto 变量名 = 初值; auto i ...
- star ccm+ 11.02安装
STAR CCM+是CD-Adapco公司的主打软件,其安装方式较为简单,这里以图文方式详细描述STAR CCM+11.02安装过程. 1 安装准备工作2 正式安装3 软件破解4 软件测试 1 安装准 ...