字典時間日期

學習完本篇,你將會深入掌握

  • 字典操作。

    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

日期格式符號

  • python中日期格式化符號如下所示:
表示式 解釋
%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.根據流程圖完成銀行取錢業務程式!