1.LEGB规则对变量名进行作用域解析

我们已经知道了多个命名空间可以独立存在,而且可以在不同的层次上包含相同的变量名。“作用域”定义了Python在哪一个层次上查找某个“变量名”对应的对象。接下来的问题就是:“Python在查找‘名称-对象’映射时,是按照什么顺序对命名空间的不同层次进行查找的?”

答案就是:使用的是LEGB规则,表示的是Local -> Enclosed -> Global -> Built-in,其中的箭头方向表示的是搜索顺序。

Local 可能是在一个函数或者类方法内部。

Enclosed 可能是嵌套函数内,比如说 一个函数包裹在另一个函数内部。

Global 代表的是执行脚本自身的最高层次。

Built-in 是Python为自身保留的特殊名称。

因此,如果某个name:object映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(enclosed)进行搜索,如果闭包作用域也没有找到,Python就会到全局(global)命名空间中进行查找,最后会在内建(built-in)命名空间搜索(注:如果一个名称在所有命名空间中都没有找到,就会产生一个NameError)。

2.global与nonlocal

global:函数内部访问全局变量时(改变值)需要在函数体内加global

nonlocal count:在内置函数中访问外部函数变量(改变),需要在内置函数中添加nonlocal

第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。

第二,两者使用的范围不同。global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误

3.时间函数

用time模块的strftime函数时间日期的格式化时间

import time

print(time.strftime('%Y/%m/%d %H:%M:%S %A'))

格式符号

说明

格式符号

说明

格式

说明

%Y

年(2019)

%B

月(June)

%A

星期(Thursday)

%y

年(19)

%b

月(Jun)

%a

星期(Thu)

%I

时(02)

%m

月(06)

%w

星期(4)(0~6)(0是周日)

%H

时(14)

%M

分(20)

%S

秒(34)

%j

今年天数(171)

%U

今年星期数(24)

%d

日(20)

%x

( 06/20/19)

%X

(14:20:34)

%c

(Thu Jun 20 14:20:34 2019)

时间戳:从1970/01/01 00:00:00开始的秒偏移量

函数,【】可省略

说明

time.clock()

当前CPU时间(浮点型)

time.time()

当前的时间戳(浮点型)

time.mktime(时间元组)

返回当时的时间戳

time.localtime(【时间戳】)

返回当时的时间元组(默认现在)

time.gmtime(时间戳)

返回当时的时间元组(0°经线时间)

time.strptime(字符串,格式)

将字符串格式化为时间元组

time.strftime(格式)

将时间元组格式化为字符串

time.asctime(【时间元组】)

相当于time.strftime(’%c’【,时间元组】)

time.ctime(【时间戳】)

相当于time.asctime(localtime(时间戳))

time.tzname

本地时区名称

time.altzone

夏令时,离0°经线时间的秒偏移量

time.tiemzone

非夏令时,离0°经线时间的秒偏移量

time.sleep(秒数)

推迟调用线程的运行

时间元组struct_time

字段

说明

tm_year

tm_mon

月(1~12)

tm_mday

日(1~31)

tm_hour

时(0~23)

tm_min

分(0~59)

tm_sec

秒(0~61)(闰秒)

tm_wday

星期(0~6)(周一是0)

tm_yday

天(1~366)(闰年)

tm_isdst

夏令时(-1,0,1)import time

time.sleep(10)#休眠,秒为单位

time.time() #当前时间 秒

d = time.strptime("2020-1-13 11:16:25","%Y-%m-%d %H:%M:%S") str-->tuple

d = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) str

time.clock() #cpu时间

m0_46243410

发布了9 篇原创文章 · 获赞 0 · 访问量 132

私信

关注

标签:函数,Python,LEGB,global,元组,tm,时间,time

python时间函数报错_Python Day11-LEGB-global-时间函数相关推荐

  1. python read函数报错_python 使用read_csv读取 CSV 文件时报错

    读取csv文件时报错 df = pd.read_csv('c:/Users/NUC/Desktop/成绩.csv' ) Traceback (most recent call last): File ...

  2. python全局变量赋值报错_python全局变量、回调函数

    1.python全局变量相关概念及使用 来自菜鸟教程上的例子: http://www.runoob.com/python3/python3-function.html 一.python入参需要注意地方 ...

  3. python class函数报错_Python 的函数是第一类 First-Class 对象

    Python的函数是第一类对象(first-class object).你可以把一个函数复制给变量,或者把函数存储在一个结构中.可以像参数一样把函数传递进另一个函数,还可以从一个函数中返回另一个函数. ...

  4. python class函数报错_Python multiprocess pool模块报错pickling error问题解决方法分析

    本文实例讲述了Python multiprocess pool模块报错pickling error问题解决方法.分享给大家供大家参考,具体如下: 问题 之前在调用class内的函数用multiproc ...

  5. python小括号报错_Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  6. python打包exe报错_python 程序打包为 windows 可执行程序 exe

    1,使用到的程序 1,python 2,pyinstaller 2,安装 pyinstaller pip install pyinstaller 3,安装可能出现的问题与报错 1:AttributeE ...

  7. python中冒号报错_python新手常见错误和异常

    在python编程中,新手最常见的错入和异常如下 1.缺少冒号引起的错误 在if,elif,for,while,class,def声明末尾需要添加冒号(:),如果忘记添加,将会提示:"Syn ...

  8. python requests 10041报错_Python:requests高级_模拟登陆

    # 超级鹰的示范代码 #!/usr/bin/env python # coding:utf-8 import requests from hashlib import md5 class Chaoji ...

  9. python后面空格报错_python空格报错

    广告关闭 提供包括云服务器,云数据库在内的50+款云计算产品.打造一站式的云产品试用服务,助力开发者和企业零门槛上云. 异常taberror缩进时引发的标签和空格不一致. 这是一个子类indentat ...

最新文章

  1. Ubuntu 常用操作
  2. Python os库的使用
  3. 宏基因组学习交流5群成立
  4. Shell中read的常用方式
  5. Java Web应用程序:Oozie及其使用方式
  6. j2ee可以用于前端开发吗_用于J2EE开发的Cloud IDE
  7. php怎样查看视频播放的进度条,H5中视频与音频标签和进度条如何使用
  8. [每天一个知识点]26-软件工程-有多少管理是为了满足管理者的掌控感
  9. python编写一个函数判断一个数是否为素数是则返回yes_编写函数isPrime,判断一个数字是否为素数,是则返回字符串 YES ,否则返回字符串 NO 。_学小易找答案...
  10. AD 组策略应用与排错(2排错)
  11. 视觉SLAM算法框架解析(1) PTAM
  12. saltstack minion端状态监控程序
  13. NOIP2001题目汇总
  14. 各级期刊分类以及含金量//2021-2-4
  15. 在ubuntu用wine安装微信 并解决无法输入文字的问题 ubuntu完美安装微信
  16. Python札记 -- 切片赋值
  17. 研究人员有助的网站 呸子
  18. 蜻蜓FM回应恶意代码事件 音频行业仍将现721格局
  19. 主流嵌入式操作系统介绍(一)
  20. Mina框架并实现Server与Client端的简单消息传递!

热门文章

  1. 向net core 3.0进击——April.WebApi从2.2爬到3.0
  2. Asp.Net Core WebAPI+PostgreSQL部署在Docker中
  3. 推荐10个技术圈优质的公众号大号
  4. .NET Core 3中的性能提升(译文)
  5. 新数据革命:开源图形化数据引擎Hawk5发布
  6. asp.net core WebAPI实现CRUD
  7. Django04-1: ORM增删改查
  8. Django04: ORM配置与使用MySQL数据库
  9. 【ArcGIS风暴】根据海拔范围分级统计GIMMS 3g NDVI平均值案例教程——以甘肃省为例
  10. linux c之fdopen(int fd, const char *type)使用总结