可变长参数

形参

*形参

接收多余的位置实参,以元组形式保存

**形参

接收多余的关键字实参,以字典形式保存

实参

*实参

将元组类型打散,传给*形参

**实参

将字典类型打散,传给**形参

函数对象

  • 可以作为引用

    x = 'hello nick'
    y = x f = func
    print(f)
  • 作为容器元素

    l = [x]
    
    function_list = [func]
    function_list[0]()
  • 作为函数参数

    len(x)
    
    def foo(m):
    m() foo(func)
  • 作为函数函数返回值

    def foo(x):
    return x res = foo(func)
    print(res)
    res()

函数嵌套

打印九九乘法表

for i in range(1,10):
for j in range(1,i+1):
print(f"{i}*{j}={i*j}",end="")
print()

名称空间与作用域

名称空间

内置名称空间

放置内置方法

生命周期:在解释器启动时生效,在解释器关闭时失效

局部名称空间

函数中定义的变量和函数

生命周期:在函数调用期间生效,执行结束失效

全局名称空间

除了内置和局部都放在全局名称空间

生命周期:在文件执行时生效,文件结束后失效

执行顺序

内置--》全局--》局部

搜索顺序

从当前位置 局部--》全局--》内置

作用域

全局作用域

全局有效,全局存活

局部作用域

临时存储,只包含局部名称空间

global

修改全局作用域中的变量。

x = 1

def f1():
x = 2 def f2():
global x # 修改全局
x = 3
f2() f1()
print(x)

nonlocal

x = 1

def f1():
x = 2 def f2():
nonlocal x
x = 3 f2()
print(x) f1()

注意点:

在局部想要修改全局的可变类型,不需要任何声明,可以直接修改。

在局部如果想要修改全局的不可变类型,需要借助global声明,声明为全局的变量,即可直接修改。

lis = []

def f1():
lis.append(1) print(f"调用函数前: {lis}")
f1()
print(f"调用函数后: {lis}")

Python-函数基础(2)的更多相关文章

  1. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  2. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  3. python函数基础学习

    函数的定义与调用: def 函数名(参数1,参数2): ‘’’函数注释’’’ print(‘函数体’) return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def ...

  4. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  5. Python函数基础和函数参数

    函数的定义和函数的调用 return的作用 三种参数的定义 常用的内置函数 len() 函数基础 函数的定义 def 函数名(参数): pass return 表达式 pass在这里表示什么都没有,不 ...

  6. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  7. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

  8. Python函数基础学习(定义、函数参数、递归函数)

    1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: ut ...

  9. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  10. 4.python函数基础

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

随机推荐

  1. 剑指offer——07用两个栈实现队列

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.   题解: 有两个栈,stack1和stack2 push只在stack1上操作,pop只在stack2 ...

  2. SparkListener监听使用方式及自定义的事件处理动作

    本文针对spark 2.0+版本 概述 spark 提供了一系列整个任务生命周期中各个阶段变化的事件监听机制,通过这一机制可以在任务的各个阶段做一些自定义的各种动作.SparkListener便是这些 ...

  3. 牛客B-Xor Path /// 求所有Path( i->j )( j >= i )路径的异或和

    题目大意: https://ac.nowcoder.com/acm/contest/272/B?&headNav=acm 给定一棵n个点的树,每个点有权值.定义表示  到  的最短路径上,所有 ...

  4. JS对象 提取指定数目的字符substr() substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串。

    提取指定数目的字符substr() substr() 方法从字符串中提取从 startPos位置开始的指定数目的字符串. 语法: stringObject.substr(startPos,length ...

  5. VBA当中的时间日期函数

    目前还没发现VBA中有直接的函数能够将完整的年月日时分秒的文本格式日期转换成日期型日期的,那只能使用间接实现的办法.用dateserial + timeserial的方法.因为dateserial和t ...

  6. Python学习笔记(二)——列表

    Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...

  7. iloc,loc,ix,df[]

    总结一. iloc可以把i当做第几个,所以是按行序号;其他的就清楚了. import pandas df = pandas.DataFrame({'a': [1, 2, 3, 4],'b': [5, ...

  8. hdu6089 Rikka with Terrorist

    题意:n*m的平面内有K个不安全点,Q个询问位置在(x,y)的人能走到多少个点?走到:(x,y)和(x',y')之间的矩形中不包含不安全点. 标程: #include<bits/stdc++.h ...

  9. [转]SSM(Spring+SpringMVC+Mybatis)框架搭建详细教程【附源代码Demo】

    一.新建项目 运行IDEA,进入初始化界面,然后我们选择新建项目(进入主界面新建项目也是一样的) 在Maven选项卡里面找到对应的java web选项,然后我们点下一步 这一步填入组织等信息,这里比较 ...

  10. Navicat Premium下载、安装、破解

    Navicat Premium 是一套数据库管理工具,让你以单一程序同時连接到 MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL 数据库. 此外, ...