Python中的變數不需要聲明,每個變數使用前必須賦值,變數賦值後才會被創建,在Python中變數就是變數,它沒有類型。我們所說的"類型"是變數所指的記憶體中對象的類型。 等號(=)用來給變數賦值,等號(=)運算符左邊是變數名,等號(=)運算符右邊是存儲在變數名中的值。例如: 執行以上程式會輸出以下結 ...
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]