Python基礎(chǔ)之基本數(shù)據(jù)類型

前言:基本類型是需要掌握的,是編程基礎(chǔ)。不理解沒關(guān)系,死記住就好了,就像你小時(shí)候背9*9乘法表也不需要為什么。

Python的基本數(shù)據(jù)類型有 數(shù)字,字符串,列表,元組,字典,集合;

一:數(shù)字

Python3 數(shù)字類型支持 int(長整型)、float(浮點(diǎn)型)、bool、complex(復(fù)數(shù))。其中的bool為True(等同于數(shù)字1),或者False(等同于數(shù)字0),可以進(jìn)行數(shù)值運(yùn)算;
使用type()函數(shù)和isinstance()可以查看對(duì)象類型:

print(type(1), type(1.5), type(True), type(5 + 3j))
print(isinstance(1,int),isinstance(True,int),isinstance(True,bool))
print(True + 1,False+1)

結(jié)果為:

<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
True True True
2    1
數(shù)值運(yùn)算

①加法用 +,減法用 -,乘法用 *,乘方用**;
②關(guān)于除法有兩種:\ 和 \\,前者表示結(jié)果為浮點(diǎn)數(shù),后者表示結(jié)果為整型

print(9/2,9//2,10/3,10//3)

結(jié)果為

4.5   4   3.3333333333333335   3

二:字符串

用單引號(hào) ' 或雙引號(hào) " 括起來的任意文本即為字符串,字符串中的特殊字符要使用 \ 來轉(zhuǎn)義。

①轉(zhuǎn)義

字符串中含有如特殊字符需要轉(zhuǎn)義,比如 \' , \" ,\n,\t等,他自身\ 也需要轉(zhuǎn)義。

print("I'm \n    \"ok\"  \n  \\  \n  \\")

輸出

I'm 
    "ok"  
  \  
  \

使用 r ' '可以使字符串中的字符不轉(zhuǎn)義,原樣輸出。

print(r"I'm \n    \"ok\"  \n  \\  \n  \\")

輸出:

I'm \n    \"ok\"  \n  \\  \n  \\
②格式化

三種方式 % f, format:

name = 'tom'
mobile = 1388888888
print('%s 的手機(jī)號(hào)碼是 %s' % (name, mobile))
print('{} 的手機(jī)號(hào)碼是 {}'.format(name, mobile))
print(f'{name} 的手機(jī)號(hào)碼是 {mobile}') #3.6支持

輸出為

tom 的手機(jī)號(hào)碼是 1388888888
tom 的手機(jī)號(hào)碼是 1388888888
tom 的手機(jī)號(hào)碼是 1388888888
③常見方法

find(),join (),split (),replace (),strip ()等等,遇到再翻資料;

三:布爾值

布爾值本質(zhì)上0(False)和1(True),運(yùn)算有and,or,not

print(True and True)  # and是與運(yùn)算,兩邊都為True,最終結(jié)果才是True
print(True or False)  # or是或運(yùn)算,一邊為True,最終結(jié)果即是True
print(not False)  # not是非運(yùn)算,取反

結(jié)果為

True
True
True

最后,在判斷條件中,None,"",(),[],{},0均代表Fasle:

if not '' or None or () or [] or {} or 0 or False:
    print("均為假")

輸出

均為假

因?yàn)?' ' or None or () or [] or {} or 0 or False ,整體為False,所以not False為True,才能執(zhí)行方法體中print。or運(yùn)算中全為False才能整體為False。

四:列表(list)

list為可變的,有序的集合。即長度可變,元素排列有序;但元素類型可以不一致

①定義一個(gè)list:使用 [ ]

list = ['A', 'B', 666, True]
print(len(list))  # len()得到list長度,即元素個(gè)數(shù)

②對(duì)元素操作:

通過list[n],n范圍為0~len(list)-1,本例中n可取值0,1,2,3,(如果倒著數(shù),最后一個(gè)元素下標(biāo)為-1)超過這個(gè)范圍會(huì)跑出數(shù)組越界 IndexError 錯(cuò)誤

(1)獲取元素,元素賦值
print(list[0])
print(list[1])
print(list[2])
print(list[3])
# print(list[4])    IndexError
print("----------")
print(list[-1])
print(list[-2])
print(list[-3])
print(list[-4])
# print(list[-5])   IndexError

list[0] = "888"  # 通過元素下標(biāo)可以修改元素
print(list)

輸出

A
B
666
True
----------
True
666
B
A
['888', 'B', 666, True]
(2)增減元素
# 增減元素
list.append("append")  # append追加到末尾
print(list)
list.insert(0, 'insert')  # insert插入到指定位置
print(list)
list.pop()  # 刪除末尾
print(list)
#pop可以接收刪除的元素并繼續(xù)使用
list.pop(0)  # 刪除指定位置,
print(list)

輸出:

['888', 'B', 666, True, 'append']
['insert', '888', 'B', 666, True, 'append']
['insert', '888', 'B', 666, True]
['888', 'B', 666, True]
(3)list嵌套

list元素也可以是另一個(gè)list。

list = ['A', 'B', ['c', 'd']],#注意list的長度為3,看成是一個(gè)二維數(shù)組
# 拆解list為 l1,l2
l1 = ['c', 'd']
l2 = ['A', 'B', l1]
print(list)
print(l2)
#獲取子list中的元素
print(list[2][1])
print(l1[1])

輸出:

['A', 'B', ['c', 'd']]
['A', 'B', ['c', 'd']]
d
d

五:元組(tuple)

tuple用 ( )來表示。
tuple和list都是python內(nèi)置的有序的集合,區(qū)別是前面的列表list是可變的,而元組tuple是不可變的。
既然是不可變的,那么tuple,只提供了獲取元素的方法,其他類似append,pop,insert之類都是沒有的。

t = (1, 2, 3) # 一旦初始化,不可更改,元素在初始化的時(shí)候定義
print(t[0])
print(t[2])
print(t[3]) #IndexError

注意:當(dāng)tuple只有1個(gè)元素的時(shí)候,為了區(qū)分()是為了定義tuple還是數(shù)學(xué)意義的括號(hào),需要加“ ,” 區(qū)分。

t = (1) # int 類型  1
print(t)
t = (1,)# tuple
print(t)

輸出:

1
(1,)

當(dāng)tuple內(nèi)部有個(gè)可變的列表list的時(shí)候,tuple的元素是可以變化的。這和tuple的“不可變”并不沖突。

t = ('a', 'b', ['A', 'B'])
t[2][0]='X'
t[2][1]='Y'
print(t) #輸出為  ('a', 'b', ['X', 'Y'])

搬個(gè)圖解釋:


初始狀態(tài).png
更改后.png

不可變指的是:tuple元素的引用指向不可變(可以理解為地址不改變),但是這個(gè)引用指向的內(nèi)容是可變的。對(duì)應(yīng)例中,t[2]的引用在初始化后就不變了,就可以可理解為t本身就不可變。至于t[2]本身內(nèi)容是什么,變不變,t 本身并不關(guān)心。

六:字典dict

dict全稱dictionary,是一種使用key-value ( 鍵值對(duì) ) 的類型。優(yōu)點(diǎn),查找快。

①定義

(1):初始化的時(shí)候定義元素:
d = {'小王': 10, '大王': 20, '老王': 30}
(2) :通過key,當(dāng)如指定的value:
d={}
d['小王']=10
d['大王']=20
d['老王']=30
print(d)  #輸出 {'小王': 10, '大王': 20, '老王': 30}

②賦值,查詢,刪除

(1)根據(jù)key賦值:
d['小王']=99 
print(d)   #{'小王': 99, '大王': 20, '老王': 30}
d['小王']=88 #多次對(duì)同一個(gè)key放入不同的value,會(huì)覆蓋前面的賦值
print(d)    #{'小王': 88, '大王': 20, '老王': 30}
(2)根據(jù)key查出相應(yīng)的value:
age=d['小王']
print(age)
age=d['王'] #KeyError,當(dāng)key不存在會(huì)拋出這個(gè)錯(cuò)誤

當(dāng)key不存在,會(huì)拋出KeyError,避免key是否存在的方法:
①‘key’in dict 判斷dict中是否又該key
②dict.get('key',defaultValue),如果key不存在,可以返回None

(3) 用pop(key) 刪除一個(gè)鍵值對(duì)
d.pop('小王')
print(d)  #{'大王': 20, '老王': 30}

dict的查找是根據(jù)key計(jì)算出value的位置。因此必須保證key是不可變的,否則每次計(jì)算出的value位置都不同,內(nèi)部將會(huì)混亂。在Python中,字符串、整數(shù)等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key. dict存儲(chǔ)的順序和插入順序無關(guān),是無序的。

七:set

set和dic的區(qū)別在于,set沒有儲(chǔ)存對(duì)應(yīng)的value,只有key。同時(shí)對(duì)key的要求也是唯一不可變,因此set可以看成是無序和無重復(fù)元素的集合

(1)定義

定義一個(gè)set,需要一個(gè) list 作為參數(shù)

l = [1, 2, 3, 4]
s=set(l)
print(s) # {1, 2, 3, 4}

(2)增加,刪除元素

s.add(1)
s.add(2) #重復(fù)元素會(huì)過濾掉
print(s)
s.remove(4) #刪除一個(gè)元素
print(s)

輸出:

{1, 2, 3, 4}
{1, 2, 3}

點(diǎn)贊評(píng)論走起啊~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,557評(píng)論 0 13
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,712評(píng)論 0 5
  • 只怕無法再有這種情懷。 17歲,什么都不怕的年紀(jì),敢在大街上大聲表白(雖然第一次失敗了),失敗后還敢把對(duì)方的手機(jī)打...
    S的隨便用賬號(hào)閱讀 518評(píng)論 0 50
  • 今天晨讀文章中提到讓另一半成為人生搭檔,就是夫妻雙方能夠共同分擔(dān)家庭責(zé)任,把家務(wù)事動(dòng)態(tài)地調(diào)節(jié)到一個(gè)平衡的狀...
    小螃謝閱讀 390評(píng)論 1 1
  • 浩瀚洞庭,匯九澤三江。 岳陽樓下,聚四??×?。 至善窮理, 尚嚴(yán)自強(qiáng)。 憂樂懷天下, 千年夢想鏡萬方。 上下求索,...
    啟宏與蛙閱讀 3,017評(píng)論 56 19

友情鏈接更多精彩內(nèi)容