Python3 基本數據類型


Python中的變量不需要聲明,每個變量使用前必須賦值,變量賦值后才會被創建,在Python中變量就是變量,它沒有類型。我們所說的"類型"是變量所指的內存中對象的類型。

等號(=)用來給變量賦值,等號(=)運算符左邊是變量名,等號(=)運算符右邊是存儲在變量名中的值。例如:

integer = 100             #這是整數,整型變量
float   = 100.0           #這是浮點數,浮點型變量
string  = "這是字符串"     #這是字符串,字符串變量

print(integer)
print(float)
print(string)

執行以上程序會輸出以下結果:

100
100.0
這是字符串

 

多個變量賦值

Python中允許你同時為多個變量賦值。例如:

a=b=c=1
print(a)
print(b)
print(c)

 

執行以上程序會輸出如下結果:

1
1
1

以上實例,創建一個整型對象,值為1,三個變量a,b,c被分配到相同的內存空間上。

也可以為多個對象指定多個變量。例如

a,b,c=1,2,3
print(a)
print(b)
print(c)

執行以上程序會輸出如下結果:

1
2
3

以上實例,三個對象1,2,3分別分配給三個變量a,b,c。

標准數據類型

Python中有六個標准數據類型:

  • Number(數字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Sets(集合)
  • Dictionary(字典)

Python的內置的type()函數可以用來查詢變量所指的對象類型。例如

integer = 100
float   = 100.0
string  = "這是字符串"

print(type(integer))    #整型變量
print(type(float))      #浮點型變量
print(type(string))     #字符串變量

 執行以上程序會輸出如下結果:

<class 'int'>
<class 'float'>
<class 'str'>

 

 

Number(數字)

在Python3中支持int,float,bool,complex(復數)。像大多數語言一樣,數值類型的賦值和計算都是很直觀的。

在Python2中是沒有布爾型的,它用數字0表示False,用1表示True。到Python3中,把True和False定義成關鍵字了,但它們的值還是1和0,它們可以和數字相加。例如:

print(100+False)    #False代表數字0
print(100+True)     #True代表數字1

   執行以上程序會輸出如下結果:

101
100

 Python 支持三種不同的數值類型:

  • 整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
  • 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
  • 復數( (complex)) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。

 有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作為函數名即可。

  • int(x) 將x轉換為一個整數。

  • float(x) 將x轉換到一個浮點數。

  • complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。

  • complex(x, y) 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。

 

Python 解釋器可以作為一個簡單的計算器,您可以在解釋器里輸入一個表達式,它將輸出表達式的值。

表達式的語法很直白: + ,  - ,  *  , / , // , ** 。

並且,不同類型的數值在進行混合運算時,會將整數轉換成浮點數進行運算。

舉例如下:

print(1+2)      #加法
print(2-1)      #減法
print(2*3)      #乘法
print(10/5)     #除法,得到浮點類型結果
print(21//5)    #整數除法返回向下取整后的結果
print(21%5)     #返回除法的余數
print(2**3)     #冪運算,即2的三次方
print(2*3.0)    #不同類型的數值在進行混合運算時,會將整數轉換成浮點數進行運算

 

執行以上程序會輸出如下結果:

3
1
6
2.0
4
1
8
6.0

String(字符串)

字符串是 Python 中最常用的數據類型。我們可以使用引號('或")括起來來創建字符串。

創建字符串很簡單,只要為變量分配一個值即可。例如:

var1 = 'Hello World!'
var2 = "I don't know this person"

字符串的截取的語法格式如下:

變量[頭下標:尾下標]

索引值以 0 為開始值,-1 為末尾字符。從頭下標(包括索引值為頭下標的字符)開始截取到尾下標(不包括索引值為尾下標的字符)。例如:

var = 'abcdefghijklnm'
print (var)          # 輸出字符串
print (var[4])       # 輸出字符串第五個字符
print (var[-1])      # 輸出最后一個字符
print (var[-2])      # 輸出倒數第二個字符
print (var[0:-1])    # 輸出第一個到最后一個(不包括最后一個)的所有字符
print (var[:4])      # 輸出字符串第五個字符之前的所有字符
print (var[2:5])     # 輸出從第三個開始到第五個(不包括第五個)的字符
print (var[2:])      # 輸出從第三個開始的后的所有字符
print (var * 2)      # 輸出字符串兩次
print (var + "TEST") # 連接字符串

 

執行以上程序會輸出如下結果:

abcdefghijklnm
e
m
n
abcdefghijkln
abcd
cde
cdefghijklnm
abcdefghijklnmabcdefghijklnm
abcdefghijklnmTEST

 

Python 使用反斜杠(\)轉義特殊字符,如果你不想讓反斜杠發生轉義,可以在字符串前面添加一個 r,表示原始字符串。例如:

print ("abcd\
efg")                     #  \      (在行尾時)續行符

#輸出結果:abcdefg



print("abcdef\\g")        #  \\     反斜杠符號 == "\"

#輸出結果:abcdef\g



print("abcde\'f\'g")      #  \'     單引號

#輸出結果: abcde'f'g



print("abcde\"f\"g")      #  \"     雙引號  

#輸出結果: abcde"f"g



print("abcdef\bg")        #  \b     退格,刪除\b的前一個字符  

#輸出結果:abcdeg



print("abcdef\000g")      #  \000   空  
#輸出結果:abcdef g print("abcdef\ng") # \n #換行 輸出結果:abcdef # g print("abcdef\tg") # \t 橫向制表符 #輸出結果:abcdef g print(r"abcde\n\t\''\"") # 字符串前面添加一個 r,表示原始字符串 #輸出結果:abcde\n\t\''\"

 

 

 

 

關於Python字符串運算符:

var1="hello"
var2="python"

print("var1+var2的輸出結果為:",var1+var2)      #  +     字符串連接
print(var1*2)                                  #  *     重復輸出字符串
print(var1[1])                                 #  []    通過索引獲取字符串中字符
print(var1[1:3])                               #  [a:b] 截取字符串中的一部分

if "h" in var1 :                               #  in    成員運算符 - 如果字符串中包含給定的字符返回 True
    print(" h 存在變量var1中")                 
else :
    print(" h 不存在變量var1中")
    
if "o" not in var1 :                               #not in  成員運算符 - 如果字符串中不包含給定的字符返回 True
    print(" o 不存在變量var1中")                 
else :
    print(" o 存在變量var1中")
    

 

執行以上程序會輸出如下結果:

var1+var2的輸出結果為: hellopython
hellohello
e
el
 h 存在變量var1中
 o 存在變量var1中

 

 List(列表)

List(列表)是Python中使用最頻繁的數據類型。

列表可以完成大多數集合類的數據結構實現。列表中的元素數據類型可以不相同,它支持數字、字符串甚至可以包含列表(所謂嵌套)。

和字符串一樣,列表也可以被索引和截取,第一個元素索引為0,第二個元素索引為1,一次類推。列表被截取后返回一個包含所需元素的新列表。

列表是寫在方括號[]之間,用逗號分隔開的元素列表。創建一個列表,只要把逗號分隔開的數據用方括號括起來即可,例如:

list1=["first",1000,"a",5000]
list2=[1,2,3,4,5,6,7,8,9,10]

 

 

創建列表list1=["a","b","c","d","e","f","g","h","i","j","k","l","m","n"]

創建列表list2=[9,2,5,1,3,6,7,8,4]

 

 列表的主要操作如下:

list1.append("this is append")# append  在列表最后一個元素的后面 添加一個元素
print(list1)
#運行結果 ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","this is append"]

list1.insert(2,"b-c")# insert 第一個:要添加到位置索引,第二個:要添加的元素內容,添加內容到指定的索引位置
print(list1)
#運行結果:["a","b","b-c","c","d","e","f","g","h","i","j","k","l","m","n"]

list2=["this is extend1","this is extend2"]
list1.extend(list2) # extend 將列表list2直接擴展到列表list1中
#運行結果:list1.insert(2,"b-c")# insert 第一個:要添加到位置索引,第二個:要添加的元素內容,添加內容到指定的索引位置
print(list1)
#運行結果:["a","b","b-c","c","d","e","f","g","h","i","j","k","l","m","n","this is extend1","this is extend2"]

list1.remove("a")# remove 已知元素內容,根據元素內容進行刪除
print(list1)
#運行結果:["b","c","d","e","f","g","h","i","j","k","l","m","n"]

var=list1.pop(0)# pop 會返回要刪除的元素內容,已知元素索引,根據元素索引進行刪除
print(var)
print(list1)
#運行結果a
#運行結果["b","c","d","e","f","g","h","i","j","k","l","m","n"]

del list1[0] # del 已知元素索引,根據元素索引進行刪除
print(list1)
#運行結果["b","c","d","e","f","g","h","i","j","k","l","m","n"]

del list1 #從內存中刪除list1列表
list1.clear() #清空列表元素

list1[0]="aa" #根據元素索引更改變元素內容更新列表
print(list1)
#運行結果:["aa","b","c","d","e","f","g","h","i","j","k","l","m","n"]

list1[1:5]=["bb","cc","dd","ee"]#根據切片找到要修改的元素,更新列表
print(list1)
#運行結果:["a","bb","cc","dd","ee","f","g","h","i","j","k","l","m","n"]


list2.reverse()# reverse 對列表元素進行倒序
print(list2)
#運行結果:[4, 8, 7, 6, 3, 1, 5, 2, 9]

list2.sort()# sort 按照大小順序對列表進行排序更新(從小到大)
print(list2)
#運行結果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

 Tuple(元組)

Python 的元組與列表類似,不同之處在於元組的元素不能修改,不能更新,不能刪除。

元組使用小括號,列表使用方括號。

元組創建很簡單,只需要在括號中添加元素,並使用逗號隔開即可。

元組中只包含一個元素時,需要在元素后面添加逗號。

元組與字符串類似,下標索引從0開始,可以進行截取、組合等。截取、組合的方法與list(列表)的方法一致。

Dictionary(字典)

字典(dictionary)是Python中另一個非常有用的內置數據類型。

列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

鍵(key)必須使用不可變類型。

在同一個字典中,鍵(key)必須是唯一的。

值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:

dic0 = {"key1" : "value1", "key2" :" value2" }
dic1={0:"a",1:"b",2:"c"}
dic={"name":"xiaoming","age":22,"sex":"man","hobby":["羽毛球","乒乓球","足球"]}

 

 字典的操作方法主要有以下幾種:

dic={"name":"xiaoming","age":22,"sex":"man","hobby":["羽毛球","乒乓球","足球"]}


print(dic["name"])#  讀取字典中某個內容可以根據 [key(鍵)] 來進行查找,而不再是根據list中的索引
#運行結果:xiaoming

print(dic.get("name")) # .get("key") 也可以進行讀取
# 運行結果:xiaoming

for i in dic:   #直接for遍歷字典,會取到字典中的所有(key)鍵
     print(i,end="\t")
# 運行結果:sex    hobby    name    age

print(dic.keys()) # .keys 將字典中的所有(key)鍵 以dict_keys的類型進行返回 可進行列表轉換
#運行結果:dict_keys(['name', 'hobby', 'sex', 'age'])

print( dic.values()) # .values  將字典中的所有(values)值 以dict_values的類型進行返回 可進行列表轉換
#運行結果:dict_values(['xiaoming', 22, 'man', ['羽毛球', '乒乓球', '足球']])

print(list(dic.keys())) # list(dic.keys) 將dict_keys類型轉換成list類型進行使用
#運行結果:['name', 'hobby', 'sex', 'age']

print(dic.items()) # .items()  將字典的每個鍵值對以dict_items返回
#運行結果:dict_items([('hobby', ['羽毛球', '乒乓球', '足球']), ('name', 'xiaoming'), ('sex', 'man'), ('age', 22)])

dic["name2"]="xiaohong" #直接根據 key(鍵) 賦值,如果存在這個(key)鍵 則對它進行更新 否則則添加該鍵值對
print(dic) # 運行結果:{'name': 'xiaoming', 'hobby': ['羽毛球', '乒乓球', '足球'], 'name2': 'xiaohong', 'sex': 'man', 'age': 22}

dic.setdefault("name3","xiaoli")# .setdefault (key)鍵存在,不改動,返回字典中相對應的值(value),(key)鍵不存在,在字典里增加新的 鍵值對,並返回相應的(value)值
print(dic)#運行結果:{'name3': 'xiaoli', 'hobby': ['羽毛球', '乒乓球', '足球'], 'age': 22, 'sex': 'man', 'name': 'xiaoming'}
dic.setdefault("name3","aaaaaaaax")
print(dic)#運行結果:{'name3': 'xiaoli', 'sex': 'man', 'hobby': ['羽毛球', '乒乓球', '足球'], 'name': 'xiaoming', 'age': 22}

var=dic.pop("name")# .pop 根據(key)鍵 刪除 鍵值對 並且返回所刪除的值(value)
print(var) #運行結果:xiaoming
print(dic) #運行結果:{'hobby': ['羽毛球', '乒乓球', '足球'], 'age': 22, 'sex': 'man'}

del dic["name"]# del 根據(key)鍵 刪除 鍵值對
print(dic)#運行結果{'sex': 'man', 'hobby': ['羽毛球', '乒乓球', '足球'], 'age': 22}

dic.clear() #清空字典
del dic  #從內存中刪除整個字典

dic2={"name22":"xiaohong",}
dic.update(dic2)# update dic2中的 鍵值對 如果在dic中存在,則進行修改更新,如果不存在 則進行添加
print(dic)
#運行結果:{'sex': 'man', 'name22': 'xiaohong', 'age': 22, 'name': 'xiaoming', 'hobby': ['羽毛球', '乒乓球', '足球']}


print(sorted(dic))#對(key)鍵進行排序
#運行結果:['age', 'hobby', 'name', 'sex']
print(sorted(dic.items()))#對鍵值對進行排序
#運行結果:[('age', 22), ('hobby', ['羽毛球', '乒乓球', '足球']), ('name', 'xiaoming'), ('sex', 'man')]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM