python 的基础 学习 12天,函数

1,   *args   动态 参数,万能参数

*args就是接受实参对应的剩余的位置参数,并将其放在元组中。在定义函数时,*args代表的是聚合。

def func(*args):
    print(args)
func(1,34,‘jdai‘,5,56,66)#(1, 34, ‘jdai‘, 5, 56, 66)
def func(a,b,c,d,*args,e=‘男‘):
    print(a)
    print(b)
    print(c)
    print(d)
    print(args)
    print(e)
func(1,2,3,4,5,10,5,6,7,8,e=‘女‘)#1234(5, 10, 5, 6, 7, 8)女

2,**kwargs,动态传参,只接受关键字参数,将所有的关键字参数(无意义的)放到一个字典中。

最终顺序(形参角度)

def func(a,b,c,**kwargs):
    print(kwargs)
func(1,3,4,r=6,t=7,y=0)

位置传参,*args,  默认参数   **kwargs

def func(a,b,c,d,*args,e=‘男‘,**kwargs):
    print(a)
    print(b)
    print(c)
    print(d)
    print(args)#(5, 10, 5, 6, 7, 8)
    print(e)
    print(kwargs)#{‘f‘: ‘女‘, ‘h‘: 48, ‘g‘: 5}
func(1,2,3,4,5,10,5,6,7,8,f=‘女‘,g=5,h=48)

3,  *号的魔法运用,在函数调用执行时,*代表打散。*加可迭代对象(list,tuple,set,str,dict的键),代表打散,将元素一一添加到args。

def func(*args):
    print(args)
li = [1,2,3,4,6]
l2 = [3,6,6,7,77,66]
tu = (‘eqwj‘,‘ee‘,‘ui‘)
func(*li,*l2,*tu)

(1, 2, 3, 4, 6, 3, 6, 6, 7, 77, 66, ‘eqwj‘, ‘ee‘, ‘ui‘)将元素一一添加到args中。

def func(**kwargs):
    print(kwargs)
dic = {‘name‘:‘alex‘,‘age‘:44}
dic1 = {‘home‘:‘taiwan‘,‘hobby‘:‘football‘}
func(**dic,**dic1)

**字典,代表打散,将所有键值对放到一个kwargs字典里。

def func(*args,**kwargs):
    print(args)
    print(kwargs)
dic1 = {‘honnn‘:‘shui‘,‘nugu‘:‘dao‘}
dic2 = {‘name1‘:‘两年半‘,‘age‘:33}
func(*[1,3,4,5],*‘ahdhsdkj‘,**dic1,**dic2)

(1, 3, 4, 5, ‘a‘, ‘h‘, ‘d‘, ‘h‘, ‘s‘, ‘d‘, ‘k‘, ‘j‘)
{‘nugu‘: ‘dao‘, ‘name1‘: ‘两年半‘, ‘honnn‘: ‘shui‘, ‘age‘: 33}

4,名称空间,也叫命名空间。放置变量与对应的值得关系(内存地址的关系)。当执行函数的时候,它会在内存中开辟一个临时名称空间,存放函数体内的所有变量与值得关系,随着函数的执行完毕,

临时空间自动关闭。

全局名称空间,名称空间,命名空间,全面命名空间。

局部命名空间,临时名称空间,临时命名空间,局部名称空间。

内置名称空间,所有的内置函数等存储的空间。

加载顺序:

内置名称空间>>>全局名称空间>>>(函数执行时)局部名称空间

取值顺序:

(函数执行时)局部名称空间>>>全局名称空间>>>内置名称空间

name = ‘老男孩‘
def func1():
    name =‘taibai‘
    print(name)
func1()#taibai
name = ‘老男孩‘
def func1():
    # name =‘taibai‘
    print(name)
func1()#老男孩

全局作用域:全局名称空间,内置名称空间。

局部作用域:局部名称空间。

5,函数的嵌套

print(111)#1
def func1():
    print(333)#2
    func2()
    print(777)#4
def func2():
    print(444)#3
def func3():
    print(555)
    func2()
func1()
print(222)#5
print(111)#1
def func1():
    print(333)#2
    func2()
    print(444)#6
def func2():
    print(222)#3
    func3()
    print(555)#5
def func3():
    print(666)#4
func1()
print(777)#7

6,globals和locals

a = 2
b = 3
def func1():
    c = 4
    d = 5
    print(globals())#将全局变量放在字典中
    return locals()#将局部变量放在字典中{‘c‘: 4, ‘d‘: 5}
print(func1())

{‘a‘: 2, ‘__cached__‘: None, ‘__file__‘: ‘D:/python3/day11/xuxi329.py‘, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘b‘: 3, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x000001EE02A95780>, ‘func1‘: <function func1 at 0x000001EE026CA048>, ‘__spec__‘: None, ‘__package__‘: None}

a = 4
def func1():
    b = 6
    def func2():
        nonlocal b#nonlocal不能修改全局变量
        b = 666
        print(b)
    func2()
    print(b)
func1()

global:

1,在局部空间内,声明一个全局变量。

2,在局部空间内,改变一个全局变量。

globals,全局名称空间:所有变量。

locals,局部名称空间:所有变量。

nonlocal:

  1,不能修改全局变量。

  2,在局部作用域中,对父级作用域(或者更外层作用域非全局作用域)的变量进行引用和修改,并且引用的哪层,从那层及以下此变量全部发生改变。

原文地址:https://www.cnblogs.com/yzxing/p/8671805.html

时间: 2024-10-29 02:54:32

python 的基础 学习 12天,函数的相关文章

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

Python入门基础学习 三

Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形,true就相当于1,false相当于0,可以用来计算 类型转换 转换:整数:int();字符串:str();浮点数:float() 转换例子:(图9) 如果用内置函数当变量名,比如str=123,一旦被赋值,再使用这个函数会被报错. type()函数可以明确告诉我们变量类型. isinstance

python 零基础学习大纲 - 【整理】

[整理]url:https://zhuanlan.zhihu.com/p/101953135 Python基本概念最全图1.Python 解释器: 2.Python数据结构: 3.变量与运算符: 4.Python 流程控制: 5.Python 文件处理: 6.Python 输入输出: 7.Python 异常: 8.Python 函数和模块: 9.Python 面相对象: 10.Python 多线程: 11.Python 标准库: 12.Python 第三方库: 一开始学习知识的时候,我们对基本概

python 基础 学习 内置函数

内置函数       例:如果返回数字的绝对值 ,写函数是非常不方便的 [[email protected] tools]# python fa.py  10 [[email protected] tools]# cat fa.py  #!/usr/bin/python def a(x):     if x < 0 :         return -x      return x  n = a(-10) print n  #帮助查看# >>> help(len) 用法: help

python基础学习-内置函数

#!/usr/bin/env python # -*- coding:utf-8 -*- 系统内置函数 n =abs(-1) #绝对值 print(n) #bytes()函数 s="离开" re= bytes(s,encoding="utf-8")  # bytes() 把字符串 转换成字节 print(re) res = str(re,encoding="utf-8") #转换回字符串 print(res) re= bytes(s,encodi

【python系统学习12】函数

函数 函数是一堆组织好的.可重复利用的.用来实现某一功能的代码. python中的input().print().type().bool().len()等都是函数.且是python的内置函数. 我们也可以封装自己的函数. 目录 目录 作用 函数定义 伪代码 示例代码 注意事项 函数调用 伪代码 示例代码 函数参数 参数传递 参数接收 无参函数 参数类型 函数返回值 定义返回值 没有返回值 返回多个值 多个return 作用域 局部变量与全局变量 将局部变量全局化 函数嵌套 练习题 仿写len()

Python之路【第三篇】:Python基础(12)——函数

# 面向过程编码:# 意思是从上到下写,按照逻辑一点一点的写,当遇到相同功能的时候,复制粘贴相同的代码实现,这就叫面向过程编程.# 代码可读性差# 执行效率低 # 函数式编程:# 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可# 面向对象:对函数进行分类和封装,让开发“更快更好更强...”# 函数式编程最重要的是增强代码的重用性和可读性 ## 函数:# # # ######### 定义函数 ########## ## # # name 叫做函数func的形式参数,简称:形参

Python基础学习代码之函数和函数式编程

def func1():     print 'hello world' res = func1() print type(res) def func2():     return ['xyz',10000,-98] atuple = func2() x,y,z = func2() print x,y,z def func3():     return 'xyz',1000,-98 x,y,z = func3() print x,y,z def func4():     return ['xyz

Python零基础学习系列之二--Python介绍及环境搭建

1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第