Python3 函数笔记

默认值在函数定义作用域被解析,如下所示:

>>> i =5

>>> def f(arg=i):

...     print(arg)

... 

>>> i=6

>>> f()

5

默认值只被赋值一次。这使得当默认值是可变对象时会有所不同,比如列表、字典或者大多数类的实例。例如,下面的函数在后续调用过程中会累积(前面)传给它的参数:

def f(a, L=[]):

    L.append(a)

    return L

print(f(1))

print(f(2))

print(f(3))

这将输出:

[1]

[1, 2]

[1, 2, 3]

如果你不想让默认值在后续调用中累积,你可以像下面一样定义函数:

def f(a, L=None):

    if L is None:

        L = []

    L.append(a)

    return L

#默认参数与关键字参数差异

def f(a, L='123',c='name'):

    pass

#默认参数按顺序传值

f(1,'123','456')

#关键字参数可以不按顺序

f(1,c='names')

‘‘‘    **name接受一个字典,包含了形参列表中未出现的所有关键字参数 *name接收一个元组,包含形参列表未出现的参数值,*name必须用在**name前‘‘‘

def cheeseshop(kind, *arguments, **keywords):

pass

#当你要传递的参数是是一个列表,但要调用的是一个个的值时,用    *   可以拆分列表

>>> list(range(3, 6))

[3, 4, 5]

>>> args = [3, 6]

>>> list(range(*args))

[3, 4, 5]

#同样的  **  可以拆分字典为一个个键对值

>>> def parrot(voltage, state='a stiff', action='voom'):

...     print("-- This parrot wouldn't", action, end=' ')

...     print("if you put", voltage, "volts through it.", end=' ')

...     print("E's", state, "!")

...

>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}

>>> parrot(**d)

#匿名函数lambda做嵌套函数定义

# -*- coding: utf-8 -*-

def make(n):

    return lambda x:x+n

f=make(42)

print(f)

print(f(1))

#输出

<function make.<locals>.<lambda> at 0x10d954e18>

43

#匿名函数lambda做参数

>>> pairs = [(1, 'one'),(2, 'two'),(3, 'three'),(4, 'four')]

>>> pairs.sort(key=lambda pair: pair[1])

>>> pairs

[(4, 'four'),(1, 'one'),(3, 'three'),(2, 'two')]

#list.sort()做列表排序

list.sort(cmp=None, key=None, reverse=False)

‘‘‘

cmp -- 可选参数,如果指定了该参数会使用该参数的(函数)方法进行排序。

key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。

‘‘‘

转载于:https://www.cnblogs.com/IMWU/p/9496613.html

Python3 函数笔记相关推荐

  1. python基础第三章选择结构答案-python3 学习笔记(二)选择结构、循环结构

    python3 学习笔记 python 优雅 明确 简单 1.选择结构 (1)简单判断 if else 使用格式: if  条件: 表达式1 else: 表达式2 (2)多条件判断 elif 使用格式 ...

  2. Java Lambda 表达式(又名闭包 (Closure)/ 匿名函数 ) 笔记

    Java Lambda 表达式(又名闭包 (Closure)/ 匿名函数 ) 笔记 根据 JSR 335, Java 终于在 Java 8 中引入了 Lambda 表达式.也称之为闭包或者匿名函数. ...

  3. Python3学习笔记之-学习基础(第三篇)

    Python3学习笔记之-学习基础(第三篇) 文章目录 目录 Python3学习笔记之-学习基础(第三篇) 文章目录 一.循环 1.for循环 2.while循环 3.break,continue 二 ...

  4. A Byte of Python3 学习笔记

    A Byte of Python3 学习笔记 第七章 控制流 1.if语句(带输入函数) 2.while语句 3.for循环 4.break.continue.return的区别 第八章 函数 8.1 ...

  5. Python3 学习笔记

    Python3 学习笔记 1.基础语法 1.1 字符串操作 title() 将单词首字母改为大写 upper() 所有字母改为大写 lower() 所有字母改为小写 str1+str2 字符串通过'+ ...

  6. Python3 函数function

    Python3   函数 函数 函数是一段可重复使用的.实现特定功能的代码块. 函数的特点是能提高应用的模块性,和代码的复用性. 语法 Python 定义函数使用 def 关键字,一般格式如下: de ...

  7. Python3入门笔记(1) —— windows安装与运行

    Python3入门笔记(1) -- windows安装与运行 Python的设计哲学是"优雅"."明确"."简单".这也是我喜欢Python ...

  8. python菜鸟编程-Python3 函数

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

  9. Python3快速入门(五)——Python3函数

    Python3快速入门(五)--Python3函数 一.函数定义 1.函数定义 Python 定义函数使用 def 关键字,一般格式如下: def function_name(parameter_li ...

最新文章

  1. 【Python】解决print不能立即打印的问题
  2. oracle查询表中的某一行,oracle查看所有表及各表行数?
  3. 刚刚入手一台G11,发短信是老是出现“发送自HTC手机”字样
  4. RHCE-postfix
  5. extern相关问题
  6. ServletContext_概述
  7. *【ZOJ - 3781】Paint the Grid Reloaded(dfs求连通块缩点,bfs求最短路,建图技巧)
  8. linux input输入子系统分析《四》:input子系统整体流程全面分析
  9. Spring框架----Spring的bean注解
  10. 微软宣布 .NET 5 计划,支持跨平台、移动开发
  11. TypeScript笔记(3)—— 使用WebPack工具
  12. MOSFET(一):基础
  13. 十、Linux开发板控制LED灯设备
  14. 《算法导论3rd第一章》算法在计算中的作用
  15. 网络-4 【http状态码、accept、Content-Type】
  16. 信息安全快讯丨夏末秋初,正是阅读好时光
  17. linux+4t分区+扩容lvm,Linux中利用LVM实现分区动态扩容
  18. 观览世界格局——蒙古风币wsec新动作
  19. Whale 帷幄:用户旅程的「情绪算法」
  20. MPU6050开发 -- 数据分析

热门文章

  1. 计算机系统化科学化和什么,自动化概论复习资料
  2. sv编程语言_SV及UVM高级话题篇之一:SystemVerilog开源公共库(上)
  3. Linu解决oracle连接不稳定
  4. oracle基本结构
  5. 【php7扩展开发二】全局变量
  6. 《leetcode》valid-parentheses
  7. 《剑指offer》旋转数组的最小数字
  8. Couldn't find leader offsets for Set([smt,0], [smt,1], [smt,2])
  9. HTTP协议基础知识总结
  10. 推荐系统算法总结(三)——FM与DNN DeepFM