首页 > 编程语言 >Python的函数传参

Python的函数传参

时间:2023-12-05 21:45:58浏览次数:31  
标签:传参 index 函数 Python age 参数 print def name

一、参数的两大分类

1、形式参数
在'函数定义阶段'括号内依次写入的变量名就叫形式参数,简称"形参"

def index(a,b,c,d,e):
pass

 

# a,b就称之为是函数的形参

补充:type在形参中的用法

def my_function(param: int):
    print(param * 2)
    # 参数类型限制为整数类型
    # 进行相应的处理
my_function(12)

: int指定了参数param的类型应为整数。当传入其他类型的参数时,Python解释器可能会给出警告或错误。

2、实际参数
在'函数调用阶段'括号内依次传入的变量值就叫实际参数,简称"实参"

index(1, 2, 3)

# 1,2,3就称之为是函数的实参

二、位置参数和关键字参数(核心)、默认参数

1、位置参数

在函数'定义阶段'括号内从'左往右依次'写入的'变量名'就是位置形参

def index(a,b,c,d):
pass

# a,b,c,d就是位置形参

2、关键字参数(k=v)

在函数的'调用阶段'括号内从'左往右依次'写入的'数据值'就是位置实参
register(‘age’=18, ‘name’='kevin', ‘gender’='female')

3、默认参数

# 前提是默认的形参

  • 在函数定义阶段就可以给参数赋值了
  • 如果你在函数调用阶段,没有给形参传值,那就是要默认的
  • 如果你在函数调用阶段,给形参传值了,就是要你传的值

练习1: 

def register(name, age, gender='male'):
    print('%s:%s:%s' % (name, age, gender))
register('kevin', 18,)

 

练习2:如果默认值是列表的话,比特特殊:以后所有调用该函数的时候,hobby用的都是一个

def register(name, age, hobby=[]):
   hobby.append(age)
   print('%s:%s:%s' % (name, age, hobby))

 

三、可变长参数(重点)

1、不管我在调用函数的时候,传入多少个位置参数,都能正常运行

def index(name, password, x, y, *a):
    print(name, password, x, y,a)
index('jignzhi', 123, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

*号在形参中的使用:会接收多余的位置参数

返回值为元组类型

2、不管我们在调用函数的时候,传入多少个关键字参数,都能正常运行

def index(username, age, gender, **a):
    print(username, age, gender, a)
 
index('jingziz', 18, 'male', tell=123, hobby='climb')

 

**号在形参中的使用:接收多余的关键字参数

返回值为字典类型

3.、不管我传入多少个位置参数和关键字参数,函数都能正常运行

def index(*a, **b):
print(a, b)

 

*号和**号后面的变量可以任意起名,遵循变量的命名即可
在python中,推荐使用

*args: arguments 位置参数
**kwargs: keyword arguments 关键字参数

以后在定义函数的时候,如果我们不知道要传递多少个参数,我们就可以如下定义

def index(*args, **kwargs):
pass

 

4、*在实参中的使用,就是把列表、元组中的一个一个元素打散,然后以位置参数的形式传递

def index(*args):
    print(args)
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, ]
index(*l)
 
# 元组也一样

 

5、**号在实参中的使用:把字典打散成关键字的形式进行传递

def func(**kwargs):
    print(kwargs)
d = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
func(**d)

 

6、其他参数

def register(name, age, *, sex, height):
    print(name, age, sex, height)
register('lili', 18, sex='male', height='1.8m')

 

四、名称空间

1、绑定变量名与变量值关系的地方

2、分类

  • 内置名称空间
  • 局部名称空间
  • 全局名称空间

名字的查找:
先看你自己再哪个位置
全局 >>> 内置
先看你自己再哪个位置
局部 >>> 全局 >>> 内置

标签:传参,index,函数,Python,age,参数,print,def,name
From: https://www.cnblogs.com/Jessica-Jmm/p/17878335.html

相关文章

  • Python GIL 和 多处理器
    当谈到Python的多线程时,人们经常会提到全局解释器锁(GlobalInterpreterLock,GIL)。GIL是CPython解释器中的一个机制,它确保同一时间只有一个线程在解释Python字节码。这导致了Python的多线程执行在某种程度上是单线程化的,无法充分利用多个处理器。现在让我们深入探讨一下为什么Pytho......
  • Python装饰器
    一、核心思想在不改变被装饰对象内部代码和原有调用方式的基础之上在添加额外的功能二、装饰器的实现过程根据实际需要,一步一步满足需求,完成对装饰器的理解1、简易版本给index函数添加统计执行时间的功能importtimedefindex():time.sleep(3)print('fromind......
  • //编写一个函数,它可以求出给定数的所有因子,如下形式显示其结果:72=2*2*2*3*3;
    #include<stdio.h>intmain(){  intn,i;  printf("请输入n:");  scanf_s("%d",&n);  if(n==1)  {    printf("1=1*1,请重新输入一个数。");  }  for(i=2;n!=1;i++)  {    while(n%i==0) ......
  • 无涯教程-Erlang - write函数
    此方法用于将内容写入文件。write-语法write(FileHandler,text)FileHandler-这是文件的句柄。该句柄是使用file:open操作时将返回的句柄。text        - 需要添加到文件中的文本。write-示例-module(helloLearnfk).-export([start/0]).sta......
  • 聪明办法学Python Talk02 debug
    Talk02如何为Python程序debug摆正心态:机器肯定是对的,程序有bug是自己的原因调试理论:“软件”的两层含义:​ 1.人类需求在信息世界的投影​ 理解错需求->bug​ 2.计算过程的精确(数学)描述​ 实现错误->bug调试:bug的触发:需求->设计->代码->Fault(bug)->Error->Failure......
  • day15 函数复习和模块基础
    蒙特卡洛仿真2023-12-0519:28:40函数复习deffunc(*args,**kwargs): pass#func可以接受所有的参数*形参:接受多余的位置实参以元组的形式存储**形参:接受多余的关键字参数以字典的形式存储函数对象的作用:①引用f1=func②作为函数的返回值returnfunc③作为函数的参数f2(......
  • Power BI 利用函数动态生成日期表
    日期表是万能的维度表,本文介绍一种在PowerQuery中快速生成日期表的方法,只需要创建一个函数,函数接受三个参数:开始日期,结束日期,财年的开始月份,然后就可以生成一个完整的日期表。PowerQuery中创建一个空查询,切入高级模式:放入以下代码:letfnDateTable=(StartDateasdate,EndDate......
  • 无涯教程-Erlang - file_read函数
    有一种方法可以允许一次读取文件的所有内容,这是通过file_read方法完成的。语法file_read(filename)参数filename-这是需要读取的文件名。返回值文件的全部内容。-module(helloLearnfk).-export([start/0]).start()->Txt=file:read_file("Newfile.txt"),i......
  • 1、zabbix通过函数实现多个主机宕机告警
    在用云厂商+idc机房的时候,网络环境比较复杂,会出现一些未知的网络上的波动造成一些影响。我们通过监控可以去监控主机是不是可用的,网络如果出现问题可能会出现批量的告警。这个时候我们需要电话告警来升级,可以实现的方式有很多。下面我们通过zabbix的函数来实现zabbix6.0.1的实现......
  • template包 字符串函数
    字符串函数https://blog.gmem.cc/gotpl函数说明abbrev缩写参数,超出的字符以...代替。例如 abbrev 5 "helloworld"输出 he...abbrevbothabbrevbothNSTR:从双侧缩写trunctruncNSTR:截断到指定长度trim去除空白trimAlltrimAllTSTR:去除所有指定......