2016-08-09  15:06:18

位置参数

  调用函数时,参数按照位置依次传递给函数

 def show(a1,a2,a3,a4):
print(a1,a2,a3,a4) show('s','h','o','w')

  执行结果如下:

s h o w

默认参数

  将函数最后几个参数设置默认值,如果这几个参数没有传参,函数就会使用默认值给参数赋值。

  默认参数必须是函数的形参的最后一个或几个,如果不是,python会提示语法错误。

  

 def show(a1,a2,a3='c',a4='a'):
print(a1,a2,a3,a4) show('s','h')

  执行结果如下:

s h c a

指定参数

  调用函数的时候,可以指定给哪个参数进行赋值。使用指定参数的时候,可以不按照参数顺序进行书写。可以跳过中间的某一个或几个默认参数。

 def show(a1,a2,a3='c',a4='a'):
print(a1,a2,a3,a4) show('s',a4='g',a2='d')

  执行结果如下:

s d c g

可变参数

  函数定义时,可以在形参前加上一个*号。如果加上*号,此时,就可以像函数传递多个参数,函数内部会将他们作为一个元组进行处理。

  调用此函数时,可以传递任意个参数,包括0个参数。

 def show(*arg):
print(arg,type(arg)) show(11,22,'ee')

  执行结果如下:

(11, 22, 'ee') <class 'tuple'>

  传递0个参数的情况

 def show(*arg):
print(arg,type(arg)) show()

  执行结果如下:

() <class 'tuple'>

关键字参数

  函数定义时,可以在形参前加上两个*号。如果加上**号,此时,就可以像函数传递多个参数,函数内部会将他们作为一个字典进行处理。

  与上面相同,调用此函数时,可以传递任意个参数,包括0个参数。

  函数的调用格式是这样的 函数名(关键字=值)

 def show(**arg):
print(arg,type(arg)) show(n1='n1',n2=89)

  执行结果如下:

{'n1': 'n1', 'n2': 89} <class 'dict'>

  传入0个参数的情况:

 def show(**arg):
print(arg,type(arg)) show()

  执行结果如下:

{} <class 'dict'>

可变参数和关键字参数配合

  可变参数和关键字参数可以配合使用。他们配合使用之后,可以说是神挡杀神佛挡杀佛。

 def show(*args,**kwargs):
print(args,type(args))
print(kwargs,type(kwargs)) show(11,22,'ee',n1='rr',s1=33)

  执行结果如下:

(11, 22, 'ee') <class 'tuple'>
{'n1': 'rr', 's1': 33} <class 'dict'>

  然而,它们的组合使用也有小脾气,组合使用必须满足一下两个条件:

  1.函数定义时,可变参数一定要在关键字参数之前

  2.调用函数时,可变参数的数据一定要在关键字参数的数据前面,不可以混乱或者颠倒位置,否则程序会报错

python3.x 函数的参数的更多相关文章

  1. Python3基础 函数 关键字参数 的示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  2. Python3基础 函数 收集参数+普通参数 的示例

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  3. Python3基础 函数 收集参数(tuple)+普通参数 的示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  4. Python3基础 函数 可变参数,将传进来的参数转成列表

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Python3基础 函数 有参数有返回值 对传入的参数加1

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. Python3基础 函数 无参数无返回值 调用会输出hello world的函数

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数

    ##廖雪峰py3笔记 ## '//'这是获得相除后的整数部分 ##a = 10//3 ##print (a) ## '/'获得相除后的结果,为浮点数,结果能整除也也是浮点数 ##b = 10/3 ## ...

  8. [Python3] 019 函数:确认过参数,返回对的值

    目录 0. 函数简介 1. 初识函数 2. 函数的参数与返回值 少废话,上例子 3. 查找函数的帮助文档 4. 函数的参数 (1) 参数分类 (2) 结构介绍 1) 普通参数 2) 默认参数 3) 关 ...

  9. python3中匿名函数做参数,匿名函数做实参,eval关键字

    一:说到匿名函数,大家都感到陌生又熟悉,今天我带大家了解一下py3中的匿名函数,以及匿名函数作为函数的参数的情况 主要通过以下实例来说明: 实例一: newarr =[33,44444,6222,88 ...

随机推荐

  1. APDU指令返回码及其代表含义

    9000 正常 成功执行6200 警告 信息未提供6281 警告 回送数据可能出错6282 警告 文件长度小于Le6283 警告 选中的文件无效6284 警告 FCI格式与P2指定的不符6300 警告 ...

  2. 动态背景的CSS3登录表单

    在线演示 本地下载

  3. 解决 SMTP Error: Could not connect to SMTP host. 问题

    我在使用PHPmailer发邮件时候,遇到了这个问题“SMTP Error: Could not connect to SMTP host.”,分享一下解决方法. 这个错误是PHP版本7产生的.如果我 ...

  4. nginx 第一天

    来公司第一天先装了一下nginx 第一步:  先装brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/ ...

  5. Spring Boot JDBC 连接数据库

    文本将对在Spring Boot构建的Web应用中,基于MYSQL数据库的几种数据库连接方式进行介绍. 包括JDBC.JPA.MyBatis.多数据源和事务. JDBC 连接数据库 1.属性配置文件( ...

  6. Logback Pattern 日志格式配置

    Logback日志配置示例 <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppe ...

  7. HttpServletResponse 的 sendError( )方法以及常用的HttpServletResponse常量级错误代码

    HttpServletResponse 的 sendError( )方法以及常用的HttpServletResponse常量级错误代码   转载:http://hi.baidu.com/yanfei_ ...

  8. ThinkPHP关于模板的一些嵌套、IF判断使用

    > ##### 前言,现在有一组数据(涉及到3个数据表,order订单表,order_process办理流程表,process_status流程描述表),根据当前订单,展示相应信息 1.办理流程 ...

  9. Git如何进行分支管理?

    Git如何进行分支管理?     1.创建分支     创建分支很简单:git branch <分支名>     2.切换分支     git checkout <分支名>   ...

  10. ASC和字符转化,整形和String转化

    public class ASCTest { public static void main(String[] args) { /* 区别这两种 String s = "123"; ...