字典時間日期
學習完本篇,你將會深入掌握
- 字典操作。
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.根據流程圖完成銀行取錢業務程式!
