字典时间日期
学习完本篇,你将会深入掌握
- 字典操作。
1.如何新建一个字典
2.如何正序以及反序访问字典
3.如何更新字典元素
4.如何删除字典
- 日期时间操作
1.如何打印一个2021-9-20 17:06:20 (参考当前时间)
字典操作
- 字典是另一种可变容器模型,且可存储任意类型对象。
- 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
- 键必须是唯一的,但值则不必。
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
- 字典中值的访问也很简单,把相应的键放入的方括弧中即可访问。
#!/usr/bin/python
dict 1 = {‘voltage’: ’35.5v’,’ current’:’2A’,’ resistance’:’12 Ω’}
print "dict1[‘voltage ']: ", dict1[' voltage ']
print "dict1[‘current ']: ", dict1[' current ']
print "dict1[‘resistance ']: ", dict1[' resistance ']
#!/usr/bin/python
dict 1 = {‘voltage’: ’35.5v’,’ current’:’2A’,’ resistance’:’12 Ω’}
print “dict 1 :”, dict 1
dict1[‘voltage’] = ’36.4’
print “dict 1 :”, dict 1
#!/usr/bin/python
dict1 = {‘voltage’: ’35.5v’,’ current’:’2A’,’ resistance’:’12 Ω’}
print “dict1 :”, dict1
del dict1 [voltage]
print “dict1 :”, dict1
dict1.clear()
- 除了上述几种方法外,列表还可以进行拼接,迭代,重复,以及其他相关操作
Python表达式 |
结果 |
描述 |
len({‘key1’,’1’,’key2’,2}) |
2 |
获取列表的长度,及键的总数 |
str({‘key1’,’1’,’key2’,2}) |
{‘key1’,’1’,’key2’,2} |
将值转化为转化为可适人读的字符串,从可打印的字符串表示 |
函数 |
描述 |
Dirt.get(key) |
返回字典中key所对应的值,不存在就返回None |
dict.items() |
从字典遍历可遍历的(键,值)的元组数组 |
dict.keys() |
返回列表,列表由字典中所有的键值组成 |
dict.has_key(key) |
判断字典中存不存在键,存在返回True,不存在返回False |
时间和日期操作
- Python提供一个time和calender模块,时间间隔是以秒为单位的浮点小数。每个时间戳都以1970年1月1日午夜进过的时间来表示。
# -*- coding:UTF-8 -*-
import time ;#引入时间模块
ticks = time.time()
print “time:%f” %ticks
时间元组
- Python很多元组组装起来的9组数字处理时间 ,其中struct_time元组就按照这个处理
序号 |
属性 |
字段 |
值 |
0 |
tm_year |
4个数年 |
2008 |
1 |
tm_mon |
月 |
1到12 |
2 |
tm_mday |
日 |
1到31 |
3 |
tm_hour |
小时 |
0到23 |
4 |
tm_min |
分钟 |
0到59 |
5 |
tm_sec |
秒 |
0到61(60到61是闰秒) |
6 |
tm_wday |
一周的第几天 |
0到6(0是周一) |
7 |
tm_yday |
一年的第几天 |
1到366(儒略历) |
8 |
tm_isdst |
夏令时 |
-1,0,1,-1是决定是否为夏令时的旗帜 |
获取当前时间
- 从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.localtime(time.time())
print "本地时间为 :", localtime
获取格式化时间
- 根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
localtime = time.asctime( time.localtime(time.time()) )
print "本地时间为 :", localtime
打印信息:
本地时间为 : Thu Apr 7 10:05:21 2016
格式化日期
* 使用 time 模块的 strftime 方法来格式化日期 time.strftime(format[, t])
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())
# 将格式字符串转换为时间戳
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
打印结果
2016-04-07 10:25:09
Thu Apr 07 10:25:09 2016
1459175064.0
日期格式符号
表达式 |
解释 |
%y |
两位数的年份表示(00-99) |
%Y |
四位数的年份表示(000-9999) |
%m |
月份(01-12) |
%d |
月内中的一天(0-31) |
%H |
24小时制小时数(0-23) |
%I |
12小时制小时数 |
%M |
分钟数(00-59) |
%S |
秒(00-59) |
获取某月日历
Calender模块有很广泛的方法用来处理年历以及月历
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import calendar
Cal = calendar.month(2021,9) 打印结果为:
print “以下输出2017年4月份的日历:“
print Cal
时间模块相关函数
- Time模块包含了以下内置函数,既有时间处理,也有转换时间格式
函数 |
解释 |
Time.asctime([tupletime]) |
接受时间元组并返回一个可读的形式“Thu Apr 06 14:45:34 2017”24个字符 |
time.clock() |
用以浮点数计算的秒数返回当前的CPU时间,用来衡量不同的程序的耗时 |
time.ctime() |
未给参数相当于time.asctime(),返回字符串 |
time.localtime([secs]) |
返回的是当地时间元组 |
time.sleep(sec) |
推迟调用线程的运行,sec指秒 |
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) |
根据fmt的格式把一个时间字符串解析为时间元组。 |
time.time() |
返回当前时间的时间戳(1970纪元后经过的浮点秒数) |
日历模块相关函数
- calendar模块都是日历相关,模块内包含以下内置函数
函数 |
解释 |
Calendar.calendar(year,w=2,l=1,c=6) |
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。 |
Calendar.isleap(year) |
是润年返回True,否则返回False |
Calendar.leapdays(y1,y2) |
返回y1,y2之间的润年总数 |
Calendar.month(year,month) |
year年返回month月的日历 |
calendar.monthcalendar(year,month) |
返回一个多存嵌套列表,每个子列表装载一个星期的整数。 |
练习题
- 1.修改税后工资计算器程序 每次算完工资后 询问是否继续计算工资 输入 y 或者 n 使之能重复计算工资!
- 2.编写一个某年第一天是星期几的查询器:程序输出:XXXX年一月一日是 星期X
提示:1900年一月一日是星期一
- 3.李白无事街上走遇店加一倍见花喝一斗5遇花和店喝光壶中酒问原来壶中有多少酒?!
- 4.猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?
- 5.打印0-50以内所有能被7或8整除的数!
- 6.打印一个4行5列的矩形!
- 7.根据流程图完成银行取钱业务程序!