函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道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 函数的更多相关文章

  1. python3函数

    一.python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.可以自己创建函数,这被叫做用户自定义函数. 1.定义函数规则 函 ...

  2. python015 Python3 函数

    Python3 函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  3. Python3函数中特殊形参的使用:*、*args、**kwargs

    Python3函数中特殊形参的使用:*.*args.**kwargs ==用法1:不定长参数== 当函数需要的参数数量不确定的时候,可以使用*args 和 **kwargs , 所有的位置参数保存在* ...

  4. 07 . Python3函数

    Python3函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().我们可以直接调用 ...

  5. 汉诺塔python3函数编写和过程分析

    !/usr/bin/env python3 -- coding: utf-8 -- 利用递归函数计算阶乘 N! = 1 * 2 * 3 * ... * N def fact(n): if n == 1 ...

  6. Python3 函数注解

    Python3提供一种语法,用于为函数声明中的参数和返回值附加元数据.下面的例子是注解后的版本,特点在第一行: 1 def clip(text : str, max_len : 'int > 0 ...

  7. 5 Python3 函数进阶&迭代器与生成器

    1.函数进阶 1.1.名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的 ...

  8. Python3 函数作用域

    一 LEGB 什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 顺序是什么? 跟名字一样 ...

  9. python系列十:python3函数

    #!/usr/bin/python #-*-coding:gbk-*- '''函数的简单规则:    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ().    任何传入参数和自变量必 ...

  10. Python3 函数 一

    什么是函数? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal ...

随机推荐

  1. iOS---A valid provisioning profile for this executable was not found

    把Target中的Code Signing Identity也设置成iPhone Develop就ok了,这样一切都说的通了,唯一不合理的就是在Project切换Code Signing Identi ...

  2. 【iOS】屏幕适配之NSLayoutConstraint

    前言 如何实现一张图片在iPhone和iPad上显示不同的尺寸,我了解到一般有三种办法:直接手写代码动态添加约束:把NSLayoutConstraint关联到ViewController里再viewD ...

  3. OC load与initialize

    OC load与initialize load 当类被引用进程序的时候会执行这个函数 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前. Category的loa ...

  4. iOS NSString中的搜索方法rangeOfString

    NSString *str = @"your://aaa?backscheme=my"; //在str中查找“backscheme=”,并返回一个NSRange类型的值,我们可以通 ...

  5. 微信小程序 - 开发指南

    一.下载并安装开发工具 下载地址 二.创建项目 打开开发工具 添加项目 进入预览和调试界面 代码编辑器 编译并预览 三.启动流程 四.适用场景 五.技术框架 六.科普 [图片较大 - 点击查看]

  6. tar解压问题gzip: stdin: not in gzip format

    如下所示,使用tar -zxvf解压文件时遇到"gzip: stdin: not in gzip format"等错误: [root@DB-Server tmp]# [root@D ...

  7. SQL Server 中VARCHAR(MAX)变量赋值引起的性能问题。

    案例环境: 操作系统版本 : Windows Server 2008 R2 Standard  SP1 数据库版本   :  Microsoft SQL Server 2012 (SP1) - 11. ...

  8. JQuery.Ajax之错误调试帮助信息

    下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址. type String (默认: "GET") 请求 ...

  9. C#:委托和自定义事件

    1. 委托概述 “委托”相当于C++中的“函数指针”,委托必须与所要“指向”的函数在“参数”和“返回类型”上保持一致; // 定义Person类 public class Person { publi ...

  10. sshfs 实现普通用户可读写

    先实现普通用户免密码host1可登入host2host1# yum install fuse sshfs; 如果装不上,需要安装epep源 --enablerepo=epelhost1# su - e ...