(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数

参数的几种类型:

  位置参数:

    函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为: “位置参数”

  默认值参数:

    我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。

  命名参数:

    我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”。

  可变参数:

    可变参数指的是“可变数量的参数”。分两种情况:

      1. *param(一个星号),将多个参数收集到一个“元组”对象中。

      2. **param(两个星号),将多个参数收集到一个“字典”对象中。

  强制命名参数:

    在带星号的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”。

#测试参数的类型:位置参数、默认值参数、命名参数、可变参数、强制命名参数
def test01(a,b,c,d):    #位置参数、命名参数
    print(‘{0}--{1}--{2}--{3}‘.format(a,b,c,d))

def test02(a,b,c=30,d=40):          #默认值参数,必须位于其他参数后面
    print(‘{0}--{1}--{2}--{3}‘.format(a, b, c, d))

def f1(a,b,*c):    #可变参数处理(元组)
    print(a,b,c)
def f2(a,b,**c):     #可变参数处理(字典)
    print(a, b, c)
def f3(a,b,*c,**d):     #可变参数处理(元组+字典)
    print(a,b,c,d)

def f(*a,b,c):      #强制命名参数
    print(a,b,c)

test01(10,20,30,40)     #位置参数,参数个数不匹配时会报错
test01(d=11,c=22,a=33,b=44)    #命名参数,通过形参名称来匹配
test02(66,99)
test02(66,99,555)

f1(1,2,3,4,5)       #可变参数,3,4,5会放到元组中
f2(1,2,name=‘jack‘,age=18,sal=3000)     #可变参数,后面数据会放到字典中
f3(1,2,3,4,5,name=‘jack‘,age=18)        #可变参数,后面数据会根据规则放到元组、字典中

f(1,2,3,b=5,c=6)        #强制命名参数:“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”

运行结果:

  10--20--30--40
  33--44--22--11
  66--99--30--40
  66--99--555--40
  1 2 (3, 4, 5)
  1 2 {‘name‘: ‘jack‘, ‘age‘: 18, ‘sal‘: 3000}
  1 2 (3, 4, 5) {‘name‘: ‘jack‘, ‘age‘: 18}
  (1, 2, 3) 5 6

原文地址:https://www.cnblogs.com/jack-zh/p/10840557.html

时间: 2024-10-01 04:57:06

(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数的相关文章

python-在定义函数时,不定长参数中,默认值参数不能放在必选参数前面

如果一个函数的参数中含有默认参数,则这个默认参数后的所有参数都必须是默认参数,否则会报错:SyntaxError: non-default argument follows default argument 例如: #-*- coding:utf-8 -*-def test(a=11,b,c): #默认值参数不能放在必选参数前面    print(a)    print(b)    print(c)    test(11,22,33) 改正: #-*- coding:utf-8 -*- def

python入门基础教程06 python变量与函数

变量基础 变量是编程语言里重要的基本概念,在各类高级语言里都用变量来代表一块内存区域,某一时刻这块区域里存储了'a',又一时刻可能又被存储成了'c',正是由于该块内存里的值可以随时发生变化,我们称之这个代表内存区域的符号为变量. 变量本质 Python程序也是通过变量来访问某块内存里的数据,但Python里的变量的概念却和C语言里的变量有些不同,首先从变量的定义上来区分一下不同之处,在C语言里定义一个变量时,需要指定变量的数据类型,变量初始化时,还需依据等号左边变量的数据类型进行相应赋值,否则会

(一)Python入门-5函数:01函数的基本概念-内存分析-函数的分类-定义和调用

一:函数介绍 函数是可重用的程序代码块.函数的作用,不仅可以实现代码的复用,更能实现代码的 一致性.一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现. 在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封 装,并增加了函数调用.传递参数.返回计算结果等内容. 函数基本概念: 1. 一个程序由一个个任务组成:函数就是代表一个任务或者一个功能. 2. 函数是代码复用的通用机制. 二:Python函数的分类 Python中函数分为如下几类: 1. 内置函数

python入门15 函数

函数 1 python内置函数 2 匿名函数lambda 3 自定义函数 def functionname(arg):... #coding:utf-8 #/usr/bin/python """ 2018-11-11 dinghanhua 函数 """ '''内置函数''' print(round(2.345,2)) #四舍五入,保留2位小数;绝对值 print(abs(-23.333)) #绝对值 '''匿名函数 lambda''' lambd

Python之在函数中使用列表作为默认参数

??本文将介绍笔者在工作中遇到的Python的一个坑,那就是使用列表作为默认参数. ??我们知道,在Python中,列表(list)是可变对象,所以列表的内容可能会在函数内改变.另一个需要注意的是,使用列表作为函数的默认参数时,列表的内容变化情况. ??首先,我们看以下的代码例子: def add(x, lst=[]): if x not in lst: lst.append(x) return lst def main(): list1 = add(1) print(list1) list2

(一)Python入门-5函数:07lambda表达式和匿名函数-eval()函数

一:lambda表达式和匿名函数 lambda表达式可以用来声明匿名函数.lambda 函数是一种简单的.在同一行中定义函数 的方法.lambda函数实际生成了一个函数对象. lambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数 的返回值. lambda表达式的基本语法如下: lambda arg1,arg2,arg3... : <表达式> arg1/arg2/arg3为函数的参数.<表达式>相当于函数体.运算结果是:表达式的运算结果. #lambd

(一)Python入门-5函数:03函数也是对象-内存分析

函数也是对象,内存底层分析: Python中,“一切都是对象”.实际上,执行def 定义函数后,系统就创建了相应的函数 对象.我们执行如下程序,然后进行解释: 1 #函数也是对象 2 def print_star(n): 3 print('*'*n) 4 5 print_star(3) 6 c = print_star 7 c(3) 8 9 print(id(print_star)) 10 print(id(c)) 11 print(type(c)) 上面代码执行 def 时,系统中会创建函数对

(一)Python入门-5函数:05参数的传递-可变对象-不可变对象-浅拷贝和深拷贝-不可变对象含可变子对象

一:参数的传递 函数的参数传递本质上就是:从实参到形参的赋值操作. Python中“一切皆对象”, 所有的赋值操作都是“引用的赋值”.所以,Python中参数的传递都是“引用传递”,不 是“值传递”.具体操作时分为两类: 1. 对“可变对象”进行“写操作”,直接作用于原对象本身. 2. 对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填 充这块空间.(起到其他语言的“值传递”效果,但不是“值传递”) 可变对象有: 字典.列表.集合.自定义的对象等 不可变对象有: 数字.字符

python入门基础-函数装饰器的理解

1.装饰器 # 知乎某大神是这么比喻装饰器的:内裤可以用来遮羞,但是到了冬天他就没有办法为我们御寒,聪明的人于是发明了长裤,有了长裤后宝宝再也不冷了, # 装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效. # # 大神是将程序中原本的函数比喻成内裤,而装饰器比喻成了长裤,这样在寒冬里它们结合一起使用就给所有人带来了温暖. # # 装饰器本质上是一个python函数,它可以让其它函数在不改动代码的情况下增加额外的功能,并且装饰器的返回值也是一个函数对象. # 在