python Day10

  • 函数的参数升级版

    • 形参角度
      • 万能参数*arg

        #在函数定义时,*代表聚合。他将所有的位置参数聚合成一个元组,赋值给了args
        def test(*args):
        print("我喜欢吃:%s,%s,%s"%(args))
        test("熊掌","鸡爪","牛鞭")
      • 写一个函数,计算你传输函数的所有数字的和

        #写一个函数,计算你传输函数的所有数字的和
        def countnumber(*args):
        count=0
        for i in args:
        if type(i)==int:
        count+=1
        return count
        print(countnumber(2,"Dsf","sfdf"))
      • 万能参数**kwargs,接受关键字参数。

        #函数定义时**将所有的关键字参数聚合到一个字典中,将这个字典赋值到**kwargs
        def countnumber(**kwargs):
        print(kwargs)
        countnumber(name="zhuxiayu",age="23")
        ##结果:{'name': 'zhuxiayu', 'age': '23'}
      • 实参角度的参数位置(位置参数、*args、默认参数、仅限关键词参数、**kwargs)

        #如果要是args获得实参其必须在位置参数之后,关键参数之前,kwargs在最后
        def countnumber(a,b,*args,sex="男",**kwargs):
        print(a,b)
        print(sex)
        print(args)
        print(kwargs)
        countnumber(1,2,3,4,5,name="范德萨发送")
        • 将[1,2]和[1,2,3]传入函数中,结果得到(1,2,1,2,3)

          def list_dis(*args):
          list1 = []
          for list in args:
          for i in list:
          list1.append(i)
          print(tuple(list1))
          list_dis([1,2],[1,2,4])
          ###升级版本 其中的*代表打散,**也是代表打散
          def list_dis(*args):
          print(args)
          list_dis(*[1,2],*[1,2,4])
          #####################
          def list_dis(**kargs):
          print(kargs)
          list_dis(**{"name":"zhxuiayu"},**{"age":18})
          ##结果:{'name': 'zhxuiayu', 'age': 18}
    • python的空间
      • 内置名称空间:python源码给你提供的一些内置的函数,print input(builtins.py)文件

      • 全局名称空间(当前py文件)

      • 局部名称空间(函数,当函数执行时候才开辟)

      • 空间的加载顺序:内置名称空间>全局名称空间>局部名称空间(函数执行的时候)

      • 取值顺序:就近原则

        name="zhuxiayu"
        def test():
        name="xhuaiyu2"
        print(name)
        test()
        ###结果 xhuaiyu2
      • (从局部找时)局部名称空间------>全局名称空间----->内置名称空间

      • 作用域:(局部作用域可以引用到全局的变量)

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

        • 局部作用域:局部名称空间(局部作用域不能改变全局作用域的变量,当python解释器读取到局部作用域时,发现了你对一个变量进行修改的操作了,解释会认为你在局部

          已经定义过这样的变量了。便会从局部找所有会报错,但是局部作用域可以使用全局作用域的值

    • 高阶函数
      def func2():
      print(2)
      def func3():
      print(6)
      print(4)
      func3()
      print(8)
      print(3)
      func2()
      print(5)
      ###结果:3 2 4 6 8 5
    • 内置函数
      • globals()、locals()

        def func():
        name="alex"
        age=73
        print(globals())#返回的是字典,字典里面的键值对:全局作用域里面的所有内容
        print(locals())#返回的是字典,字典里面的键值对:当前作用域里面的所有内容
        func()
        {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001C16C14F808>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/zhuxiayu/PycharmProjects/untitled/remake.py', '__cached__': None, 'func': <function func at 0x000001C16C2041F8>}
        {'name': 'alex', 'age': 73}
  • 作业

    • 如果执行{"发生的","发生"},[1,2]则fun中args和kwargs分别是什么

      def fun(*args,**kwargs):
      print(args)
      print(kwargs)
      fun({"发生的","发生"},[1,2])
      ###结果 ({'发生的', '发生'}, [1, 2])
      ## {}
    • 如果执行{"发生的","发生"},[1,2],**{"札":"发"}则fun中args和kwargs分别是什么

      def fun(*args,**kwargs):
      print(args)
      print(kwargs)
      fun({"发生的","发生"},[1,2],**{"札":"发"})
      ##结果 ({'发生的', '发生'}, [1, 2])
      ## {'札': '发'}
    • 看代码写结果

      def func():
      v1="服务器1"
      def inner():
      print(v1)
      v1="服务器2"
      inner()
      func()
      v1="服务器3"
      func()
      ##结果 服务器2
      ## 服务器2
      ##解析:就近原则,在本地局部寻找变量在到父级局部寻找在全局在找内置

python基础 Day10的更多相关文章

  1. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  2. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  3. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  4. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  5. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  6. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  7. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  8. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

  9. python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

随机推荐

  1. jmeter接口测试 -- Base64加密(函数助手添加自定义函数)

    图片转码 base64 致谢参考博客: https://www.cnblogs.com/qiaoyeye/p/7218770.html https://www.cnblogs.com/lasdaybg ...

  2. springMVC(二)springMVC、Mybatis、spring整合

    数据库设置: 一.配置文件设置 (1).springMVC配置文件(前端控制器web.xml,核心配置文件springmvc.xml) <?xml version="1.0" ...

  3. 趣学Python编程PDF高清完整版免费下载|百度网盘

    百度网盘:趣学Python编程PDF高清完整版免费下载 提取码:ts47 内容简介 python是一款解释型.面向对象.动态数据类型的高级程序设计语言.python语法简捷而清晰,具有丰富和强大的类库 ...

  4. Antd DatePicker 语言项-显示中文月份

    官网:https://ant.design/components/date-picker-cn/ 如果要显示中文,官网是这么指导的: 但是,设置后并没有生效!原因是默认的中文local文件并没有月份的 ...

  5. 在html页面中引入另一个html页面

    我们在使用html编写一个网站的时候,通常情况下头部和尾部是相同的,如果一个网站的每个页面都把这些代码写一遍,不仅浪费时间,还显得重复代码很多,所以此时把重复的页面单独摘出来,在用到的时候从外部直接引 ...

  6. Python常用标准库之datetime、random、hashlib、itertools

    库:具有相关功能模块的集合 import sys.builtin_module_names #返回内建模块的名字modules 查看所有可用模块的名字 1.1.1获取当前日期和时间 from date ...

  7. 笨办法学python 第四版 中文pdf高清版|网盘下载内附提取码

    笨办法学 Python是Zed Shaw 编写的一本Python入门书籍.适合对计算机了解不多,没有学过编程,但对编程感兴趣的朋友学习使用.这本书以习题的方式引导读者一步一步学习编 程,从简单的打印一 ...

  8. 学习JDBC这一篇就够了

    配套资料,免费下载 链接: https://pan.baidu.com/s/1CKiwCbQV4FGg_4YMQoebkg 提取码: 7cn3 复制这段内容后打开百度网盘手机App,操作更方便哦 第一 ...

  9. K近邻算法(一)

    K 近邻算法思想: 寻找该点周围最近的K个点.根据这K 个点的类别来判断该点的类别: 核心: 数据归一化.(在必要的时候必须进行数据归一化处理,防止某一特征在计算数据时占比较重) 计算欧拉距离 . 使 ...

  10. 我的强迫症系列之@Builder和建造者模式

    前言 备受争议的Lombok,有的人喜欢它让代码更整洁,有的人不喜欢它,巴拉巴拉一堆原因.在我看来Lombok唯一的缺点可能就是需要安装插件了,但是对于业务开发的项目来说,它的优点远远超过缺点. 我们 ...