python_數(shù)據(jù)類型

Paste_Image.png

目錄


1. 類型匯總

2.數(shù)據(jù)類型轉(zhuǎn)換

3.列表

4.元組

5.日期和時(shí)間

6.字典


  • 一、 類型匯總

  • 1.字符串

  • str1 = '字符串 '

  • str2 = "字符串"
    這2種用法完全相同

  • str3 = '''多行的字符串 '''
    經(jīng)常用于方法、類的說明中

  • 2.布爾類型

     bool=False
     print bool
     bool=True
     print bool
    
  • 3.整數(shù)

    int=20
    print int;
    
  • 4.浮點(diǎn)數(shù)

    float=2.3
    print float;
    
  • 二、 數(shù)據(jù)類型轉(zhuǎn)換

  • 1.數(shù)字

    包括整數(shù)、浮點(diǎn)數(shù)

    • 1.1 刪除數(shù)字對(duì)象引用,例如:
      a=1
      b=2
      c=3
      del a
      del b, c
      #print a; #刪除a變量后,再調(diào)用a變量會(huì)報(bào)錯(cuò)
  • 1.2 數(shù)據(jù)類型轉(zhuǎn)換

函數(shù) 描述
int(x [,base]) 將x轉(zhuǎn)換為一個(gè)整數(shù)
long(x [,base] ) 將x轉(zhuǎn)換為一個(gè)長整數(shù)
float(x) 將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real [,imag]) 創(chuàng)建一個(gè)復(fù)數(shù)
str(x) 將對(duì)象 x 轉(zhuǎn)換為字符串
repr(x) 將對(duì)象 x 轉(zhuǎn)換為表達(dá)式字符串
eval(str) 用來計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s) 將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s) 將序列 s 轉(zhuǎn)換為一個(gè)列表
set(s) 轉(zhuǎn)換為可變集合
dict(d) 創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。
frozenset(s) 轉(zhuǎn)換為不可變集合
chr(x) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x) 將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x) 將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x) 將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
  • 1.3 數(shù)學(xué)函數(shù)
函數(shù) 返回值 ( 描述 )
abs(x) 返回?cái)?shù)字的絕對(duì)值,如abs(-10) 返回 10
ceil(x) 返回?cái)?shù)字的上入整數(shù),如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回?cái)?shù)字的絕對(duì)值,如math.fabs(-10) 返回10.0
floor(x) 返回?cái)?shù)字的下舍整數(shù),如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數(shù)的x的對(duì)數(shù),如math.log10(100)返回 2.0
max(x1, x2,...) 返回給定參數(shù)的最大值,參數(shù)可以為序列。
min(x1, x2,...) 返回給定參數(shù)的最小值,參數(shù)可以為序列。
modf(x) 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號(hào)與x相同,整數(shù)部分以浮點(diǎn)型表示。
pow(x, y) x**y 運(yùn)算后的值。
round(x [,n]) 返回浮點(diǎn)數(shù)x的四舍五入值,如給出n值,則代表舍入到小數(shù)點(diǎn)后的位數(shù)。
sqrt(x) 返回?cái)?shù)字x的平方根,數(shù)字可以為負(fù)數(shù),返回類型為實(shí)數(shù),如math.sqrt(4)返回 2+0j
  • 1.4 隨機(jī)函數(shù)
函數(shù) 描述
choice(seq) 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。
randrange ([start,] stop [,step]) 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1
random() 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。
seed([x]) 改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed。
shuffle(lst) 將序列的所有元素隨機(jī)排序
uniform(x, y) 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi)。
  • 三、列表

  • 1.列表切片
    list[2:5]
  • 2.更新列表
    nums[0]="ljq"
  • 3.刪除列表元素
    del nums[0]
  • 4.列表腳本操作符列表對(duì)+和??的操作符與字符串相似。+號(hào)用于組合列表,***號(hào)用于重復(fù)列表,例如
    print len([1, 2, 3])
    #3
    print [1, 2, 3] + [4, 5, 6]
    #[1, 2, 3, 4, 5, 6]
    print ['Hi!'] * 4
    #['Hi!', 'Hi!', 'Hi!', 'Hi!']
    print 3 in [1, 2, 3]
    #True
    for x in [1, 2, 3]
    print x, #1 2 3
  • 5.列表截取
    L=['spam', 'Spam', 'SPAM!']
    print L[2]
    #'SPAM!'
    print L[-2]
    #'Spam'print
    L[1:]
    #['Spam', 'SPAM!']
  • 6.列表函數(shù)&方法
函數(shù)名 說明
list.append(obj) 在列表末尾添加新的對(duì)象
list.count(obj) 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
list.extend(seq) 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來的列表)
list.index(obj) 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置,索引從0開始
list.insert(index, obj) 將對(duì)象插入列表
list.pop(obj=list[-1]) 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
list.remove(obj) 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
list.reverse() 反向列表中元素,倒轉(zhuǎn)
list.sort([func]) 對(duì)原列表進(jìn)行排序
  • 四、元組(tuple)

  • 1.Python的元組與列表類似,不同之處在于

    • 元組的元素不能修改;
  • 元組使用小括號(hào)(),列表使用方括號(hào)[];

  • 元組創(chuàng)建很簡單,只需要在括號(hào)中添加元素,并使用逗號(hào)(,)隔開即可,例如:
    tup1 = ('physics', 'chemistry', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5 );tup3 = "a", "b", "c", "d";

  • 創(chuàng)建空元組,例如:tup = ();

  • 元組中只有一個(gè)元素時(shí),需要在元素后面添加逗號(hào),例如:tup1 = (50,);

  • 元組與字符串類似,下標(biāo)索引從0開始,可以進(jìn)行截取,組合等。

  • 1.1、訪問元組
    tup1 = ('physics', 'chemistry', 1997, 2000)

    tup1[0]: physics

    print "tup1[0]: ", tup1[0]
    #tup1[1:5]: ('chemistry', 1997)
    print "tup1[1:5]: ", tup1[1:3]
    
  • 1.2、修改元組元組中的元素值是不允許修改的,但我們可以對(duì)元組進(jìn)行連接組合,例如:
    tup1 = (12, 34.56)
    tup2 = ('abc', 'xyz');
    # 以下修改元組元素操作是非法的。# tup1[0] = 100;
    # 創(chuàng)建一個(gè)新的元組
    tup3 = tup1 + tup2
    print tup3; #(12, 34.56, 'abc', 'xyz')

  • 1.3、刪除元組元組中的元素值是不允許刪除的,可以使用del語句來刪除整個(gè)元組,例如:
    tup = ('physics', 'chemistry', 1997, 2000)
    print tup
    del tup

  • 1.4、元組運(yùn)算符與字符串一樣,元組之間可以使用+號(hào)和*號(hào)進(jìn)行運(yùn)算。這就意味著他們可以組合和復(fù)制,運(yùn)算后會(huì)生成一個(gè)新的元組。
  • 1.5、元組索引&截取
    L = ('spam', 'Spam', 'SPAM!')
    print L[2]
    #'SPAM!'print L[-2]; #'Spam'
    print L[1:]
    #['Spam', 'SPAM!']

  • 1.6、元組內(nèi)置函數(shù)

函數(shù)名 說明
cmp(tuple1, tuple2) 比較兩個(gè)元組元素。
len(tuple) 計(jì)算元組元素個(gè)數(shù)。
max(tuple) 返回元組中元素最大值。
min(tuple) 返回元組中元素最小值。tuple(seq) 將列表轉(zhuǎn)換為元組。
  • 五、日期和時(shí)間

  • 1、獲取當(dāng)前時(shí)間,例如:

    import time, datetime;
    localtime = time.localtime(time.time())
    #Local current time : time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)
    print "Local current time :", localtime
    

說明:time.struct_time(tm_year=2014, tm_mon=3, tm_mday=21, tm_hour=15, tm_min=13, tm_sec=56, tm_wday=4, tm_yday=80, tm_isdst=0)屬于struct_time元組,struct_time元組具有如下屬性:
  • 1.1、獲取格式化的時(shí)間可以根據(jù)需求選取各種格式,但是最簡單的獲取可讀的時(shí)間模式的函數(shù)是asctime():

  • 1、日期轉(zhuǎn)換為字符串
    首選:
    print time.strftime('%Y-%m-%d %H:%M:%S')
    其次:
    print datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')
    最后:
    print str(datetime.datetime.now())[:19]

  • 2、字符串轉(zhuǎn)換為日期
    expire_time = "2013-05-21 09:50:35"
    d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
    print d;

  • 1.2、獲取日期差
    oneday = datetime.timedelta(days=1)
    #今天
    today = datetime.date.today()
    #昨天
    yesterday = datetime.date.today() - oneday
    #明天
    tomorrow = datetime.date.today() + oneday
    #獲取今天零點(diǎn)的時(shí)間
    today_zero_time = datetime.datetime.strftime(today, '%Y-%m-%d %H:%M:%S')
    #0:00:00.001000
    print datetime.timedelta(milliseconds=1)#1毫秒
    #0:00:01
    print datetime.timedelta(seconds=1)#1秒
    #0:01:00 print datetime.timedelta(minutes=1) #1分鐘
    #1:00:00
    print datetime.timedelta(hours=1)#1小時(shí)
    #1 day, 0:00:00
    print datetime.timedelta(days=1)#1天
    #7 days, 0:00:00
    print datetime.timedelta(weeks=1)

  • 1.3、獲取時(shí)間差
    #1 day, 0:00:00
    oneday = datetime.timedelta(days=1)
    #今天,2014-03-21 16:07:23.943000
    today_time = datetime.datetime.now ()
    #昨天,2014-03-20 16:07:23.943000
    yesterday_time = datetime.datetime.now() - oneday
    #明天,2014-03-22 16:07:23.943000
    tomorrow_time = datetime.datetime.now() + oneday
    注意時(shí)間是浮點(diǎn)數(shù),帶毫秒。那么要獲取當(dāng)前時(shí)間,需要格式化一下:
    print datetime.datetime.strftime(today_time, '%Y-%m-%d %H:%M:%S')
    print datetime.datetime.strftime(yesterday_time, '%Y-%m-%d %H:%M:%S')
    print datetime.datetime.strftime(tomorrow_time, '%Y-%m-%d %H:%M:%S')

  • 1.4、獲取上個(gè)月最后一天
    last_month_last_day = datetime.date(datetime.date.today().year,datetime.date.today().month,1)-datetime.timedelta(1)

  • 1.5、字符串日期格式化為秒數(shù),返回浮點(diǎn)類型:
    expire_time = "2013-05-21 09:50:35"
    d = datetime.datetime.strptime(expire_time,"%Y-%m-%d %H:%M:%S")
    time_sec_float = time.mktime(d.timetuple())
    print time_sec_float

  • 1.6、日期格式化為秒數(shù),返回浮點(diǎn)類型:
    d = datetime.date.today()
    time_sec_float = time.mktime(d.timetuple())
    print time_sec_float

  • 1.7、秒數(shù)轉(zhuǎn)字符串
    time_sec = time.time()
    print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time_sec))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,491評(píng)論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,263評(píng)論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,708評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,409評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,939評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,774評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,976評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,209評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,650評(píng)論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,958評(píng)論 2 373

推薦閱讀更多精彩內(nèi)容