复习

1.字符串的比较:

-- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较

2. 函数的参数 :

1)实参与形参:
       -- 形参:在函数定义时()中出现的参数
       -- 实参:在函数调用时()中出现的参数

2)实参的分类
       -- 位置实参:给位置形参,必须按位置
       -- 关键字实参:给位置与关键字形参,不需要按顺序

3)形参的分类
      -- 无值位置
      -- 有值位置
      -- 可变长位置
      -- 有无值关键字
      -- 可变长关键字

def fn(a, b=10, *args, x, y=20, z, **kwargs): pass

4)打散机制
       def func(*args, **kwargs):pass
       func('a', 'b', 'c', a=1, b=2)
       func(*'abc', **{'a': 1, 'b': 2}) # args=('a', 'b', 'c') kwargs={'a': 1, 'b': 2}

3. 函数的嵌套调用
     -- 在被调用的函数中调用其他函数:在被调用的函数中要去使用其他函数的功能

今日内容

1.函数默认值的细节:

如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值

a = 100
  def fn(num=a):
  print(num) # 100
  a = 200
  fn()

2.数据类型的补充:语法简单,经常去使用就ok ***
   -- 2.1 三元表达式  |  2.2 .列表推导式 |  2.3字典推导式

2.1 三元表达式就是if...else...的语法糖,用于简化 if...else...的语法结构  res = a if a > b else b

-- 1) 只能解决if...else...结构,其他if分支结构都不管
      -- 2)一个分支提供一个结果: 如果一个分支提供了多个结果, 将多个结果通过元组返回

2.2 列表推导式、2.3字典推导式

快速生成列表或字典的语法糖,且能在生成过程中添加简单的逻辑

列表推导式:能被列表推导式推导的数据源必须在循环取值时可以得到一个值

ls = [v for v in range(1, 6)]  ====>   print(ls) # [1, 2, 3, 4, 5]

ls = ['奇数' if v % 2 != 0 else '偶数' for v in range(1, 6)]  ====>   print(ls) # ['奇数', '偶数', '奇数', '偶数', '奇数']

字典推导式 :能被字典推导式推导的数据源必须在循环取值时可以被解压赋值为两个值

ls = [['A', 1], ('B', 2)]
    res = {k.lower(): v for k, v in ls}

3.函数对象:函数名的各种应用场景 *****

在python中,所有变量存放的值只要是地址,我们就称之为对象
     -- 所有的变量都是用来存放地址的,所以都是对象
     -- 存放整型的地址就是整型对象 | 存放函数的地址就是函数对象 | 存放文件的地址就是文件对象

函数对象:存放函数地址的变量就是函数对象

函数对象的应用场景
 3.1.函数对象()就是调用函数
 3.2.函数对象可以直接作为变量赋值给其他变量
 3.3.函数对象可以作为函数的参数
 3.4.函数对象可以作为函数的返回值
 3.5.函数对象可以作为容器类型的成员

3.1.函数对象()就是调用函数
def fn1():
pass
fn1()
3.2.函数对象可以直接作为变量赋值给其他变量
def fn2():
pass
my_fn = fn2
print('>>>', my_fn, fn2)
my_fn()
3. 3.函数对象可以作为函数的参数
def fn3(func): # func = my_fn = fn2
func()
fn3(my_fn)
3.4.函数对象可以作为函数的返回值
def fn4():
return my_fn
my_fn2 = fn4()
3.5.函数对象可以作为容器类型的成员
ls = [my_fn, my_fn2]

4.名称空间与作用域:解释变量名重复与冲突问题 *****
 5.函数的嵌套定义:在函数内部定义函数 *****

名称空间

python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域的更多相关文章

  1. python函数:函数参数、对象、嵌套、闭包与名称空间、作用域

    今天的内容整理共有5部分 一.命名关键字参数 二.函数对象 三.函数的嵌套 四.名称空间与作用域 五.闭包函数 一.命名关键字参数 # 命名关键字参数: 在定义函数时,*与**之间参数称之为命名关键字 ...

  2. python学习 day12 (3月18日)----(装饰器内置函数)

    读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...

  3. 老男孩python学习自修第十天【三元表达式与lambda表达式】

    例如: 1.使用三元表达式给变量赋值 result = '空' if x == None else x 2.使用lambda定义函数 add = lambda x, y: x+y

  4. python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套

     复习   1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用:     # 字符串的比较#  -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. python函数参数默认值及重要警告

    最有用的形式是对一个或多个参数指定一个默认值.这样创建的函数,可以用比定义时允许的更少的参数调用,比如: def ask_ok(prompt, retries=4, reminder='Please ...

  7. Python函数参数默认值的陷阱和原理深究(转)

    add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...

  8. ES6学习 --函数参数默认值与解构赋值默认值

    1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数 ...

  9. python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义

    复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...

随机推荐

  1. WMware 中CentOS系统Hadoop 分布式环境搭建(一)——Hadoop安装环境准备

    1.创建3台虚拟机并装好系统,这里使用64位CentOS. 2.Ping测试[确保两两能ping通]: [ping xxx.xxx.xxx.xxx] 3.安装SSH:[yum install ssh ...

  2. Busybox镜像

    使用docker多少还是要知道一些Busybox的知识,下面转载自https://blog.csdn.net/chengqiuming/article/details/79313539 一 简介 Bu ...

  3. thinkphp url build 生成localhost.localhost的解决方案

    找到框架核心Url.php的下面一段代码 // 原代码// URL组装$url = $domain . rtrim($this->root ?: $this->app['request'] ...

  4. MVC JsonResult 结果返回

    使用MVC之后, 默认的ActionResult 有很多子类譬如 JsonResult之类, 可以很方便. 基本用法如下:         public ActionResult GetVacatio ...

  5. 《深度探索C++对象模型》读书笔记(一)

    前言 今年中下旬就要找工作了,我计划从现在就开始准备一些面试中会问到的基础知识,包括C++.操作系统.计算机网络.算法和数据结构等.C++就先从这本<深度探索C++对象模型>开始.不同于& ...

  6. Spring Boot 集成 logback日志

    application.properties 配置logback.xml 路径注:如果logback.xml在默认的 src/main/resources 目录下则不需要配置application.p ...

  7. 入坑Intel OpenVINO:记录一个示例出错的原因和解决方法

    今天试用OpenVINO的例子,在过程中发现了一些其他人没有经历的坑特别记录一下. 出错时候:执行Intel OpenVINO示例的是时候,出错的提示代码: 用于 .NET Framework 的 M ...

  8. tornado+jsonrpc

    rpc:远程过程调用(A服务调用B服务的一个方法或函数) tornado中jsonrpc的使用 import json import tornado.httpserver import tornado ...

  9. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

  10. python-web自动化-键盘操作

    selenium提供了较为完整的键盘操作引入 from selenium.webdriver.common.keys import Keys使用键盘操作时,需要借助send_keys()来模拟操作.K ...