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. 2020 年百度之星&#183;程序设计大赛 - 初赛三

    2020 年百度之星·程序设计大赛 - 初赛三解题思路及代码(Discount.Game.Permutation) 1.Discount Problem Description学皇来到了一个餐馆吃饭. ...

  2. Laragon修改配置快速创建其他框架的项目

    配置方式 依葫芦画瓢,如添加thinkPHP: # Thinkphp Thinkphp 3.2=composer create-project topthink/thinkphp %s Thinkph ...

  3. redis 之 持久化

    Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复. 1.RDB持久化 RDB持久化是指在指定的时间间隔内将 ...

  4. LQB201803乘积尾零

    果然是练思维呀!!要是我的话估计就能挨个算一算呜呜呜 分解成 2和5相乘的式子 #include <iostream> using namespace std; //快速幂运算 int m ...

  5. 动态规划入门(dp)

    dp的基本思想,是把大问题转化成一个个小问题,然后递归解决. 所以本质思想的话还是递归. dp最重要的是要找到状态转移方程,也就是把大问题化解的过程. 举个例子 一个数字金字塔 在上面的数字三角形中寻 ...

  6. Python简单的语句组

    Python简单的语句组: ''' if 条件1: 条件1满足时,需要运行的内容 ''' num = 10 if num % 6 == 4: print("num 对 6 的取模结果是 4& ...

  7. Python实现数据结构 图

    邻接矩阵 class Vertex: def __init__(self, node): self.id = node # Mark all nodes unvisited self.visited ...

  8. Django学习路3

    1.打开 Data Source alt insert 打开 Data Source 找到 db.sqlite3 确定 Download 下载后 TestConnection 测试是否成功 2.项目下 ...

  9. python 连接 mysql 的三种驱动

    连接 mysql 驱动 mysq1-client python2,3都能直接使用 对myaq1安装有要求,必须指定位置存在 配置文件 python-mysql python3 不支持 pymysql ...

  10. rabbitMQ结合spring-boot使用(1)

    从这一节开始我们进入rabbitMQ的实战环节,项目环境是spring-boot 加maven.首先让我们创建一个spring-boot项目,然后引入web依赖和 rabbitMQ的依赖 <de ...