Python-02 基礎語法
1 Python pass語句
Python pass 是空語句,是為了保持程式結構的完整性。
pass 不做任何事情,一般用做佔位語句。
測試案例
# Author :liqiang
for item in "gavin":
if item=='a':
pass
print("這是pass塊")
print("當前程式碼是: %s" %item)
2 Python Number
python 支援四種不同的數值型別
分別是: int long float complex(複數,不常用)
python number型別轉換
API如下:
int(x [,base ]) 將x轉換為一個整數 long(x [,base ]) 將x轉換為一個長整數 float(x ) 將x轉換到一個浮點數 complex(real [,imag ]) 建立一個複數 str(x ) 將物件 x 轉換為字串 repr(x ) 將物件 x 轉換為表示式字串 eval(str ) 用來計算在字串中的有效Python表示式,並返回一個物件 tuple(s ) 將序列 s 轉換為一個元組 list(s ) 將序列 s 轉換為一個列表 chr(x ) 將一個整數轉換為一個字元 unichr(x ) 將一個整數轉換為Unicode字元 ord(x ) 將一個字元轉換為它的整數值 hex(x ) 將一個整數轉換為一個十六進位制字串 oct(x ) 將一個整數轉換為一個八進位制字串
math模組
Python math 模組提供了許多對浮點數的數學運算函式。
使用math模組需要匯入該模組
import math
dir(math)
cmath模組
Python cmath 模組包含了一些用於複數運算的函式。
使用cmath模組需要匯入該模組:
import cmath
dir(cmath)
math和cmath模組的區別:
cmath 模組運算的是複數,math 模組運算的是數學運算
Python數學常用函式
函式 | 返回值描述 |
---|---|
abs(x) | 絕對值 |
ceil(x) | 向上取整 |
exp(x) | 返回e的x冪 |
floor(x) | 向下取整 |
max(x1,x2...) | 返回最大值 |
min(x1,x2...) | 返回最小值 |
pow(x,y) | 返回x的y次方 |
sqrt(x) | 返回x的平方根 |
round(x,[n]) | 返回浮點數x的四捨五入值,n為小數點後的位數 |
Python隨機數函式
函式 | 返回值描述 |
---|---|
random() | 隨機生成一個[0,1)的實數 |
uniform(x,y) | 隨機生成一個[x,y]的實數 |
3 Python字串
在python種,字串的拼接可以通過"+"來進行拼接,但是使用字串拼接符的話,效率會低下.少次數拼接可以使用.
其中關於字串的方法可以直接使用變數.方法
的形式去呼叫
總結如下:
#定義一個字串進行測試 str ="gavin" str.xxx方法呼叫即可
具體方法
方法名稱 | 描述資訊 | 備註 |
---|---|---|
capitalize() | 首字母大寫 | |
center(50,'-') | 列印50個字元,長度不夠兩端用'-'補齊 | |
ljust(50,'-') | 列印50個字元,長度不夠左邊用'-'補齊 | |
rjust(50,'-') | 列印50個字元,長度不夠右邊用'-'補齊 | |
endwith('a') | 判斷字元以什麼結尾,返回布林值 | |
expand() | tab鍵轉成多少個字元 | |
find('a') | 返回字元所在的索引 | |
rfind('c') | 找到最右邊的指定字元的索引 | |
format(name=xx) | 格式化字串種name的資料 | name='gavin{name}' |
format_map({'name':'123') | 利用字典的形式格式化資料 | 傳入的值會預設帶到name變數中去 |
isalnum() | 判斷是否為阿拉伯數字和字元 | |
isalpha() | 判斷是否為純英文字元 | |
isdigit() | 判斷是否為整數 | 最常用 |
isidentifier() | 是否是一個合法的識別符號變數 | 返回布林值 |
islower() | 是否為小寫 | 返回布林值 |
isupper() | 是否為大寫 | 返回布林值 |
isnumeric() | 判斷是否為整數 | 返回布林值 |
lower() | 轉成小寫 | |
upper() | 轉成大寫 | |
strip() | 去掉兩端換行符 | |
lstrip() | 去掉左邊換行符 | |
rstrip() | 去掉右邊換行符 | |
replace('a','A) | 字串替換 | 常用 |
split(',') | 字串按照指定字元分隔成列表 | |
splitlines() | 按換行符分隔 | |
swapcase() | 大小寫相互轉化 | |
title() | 駝峰 | 每個單詞首字母大寫 |
zfill() | 用0補齊 |
特殊方法
#join的用法
print(','.join(['a','b','c'])
#結果: a,b,c #將列表轉成字元,以逗號分隔
#隨機密碼-加密解密
str = "gavin"
key =str.maketrans('abcde','uuesd')#將abcde對映為uuesd
print(str.translate(key))
#結果:guvin
4 Python列表
列表是最常用的Python資料型別,它可以作為一個方括號內的逗號分隔值出現。
列表的資料項不需要具有相同的型別。
建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。
例如:
list1 = [1,2,3,'gavin',True,2.3]print(list1)>>>[1, 2, 3, 'gavin', True, 2.3]
列表中資料訪問
# 1 通過下標獲取資料 :的使用list1 = [1,2,3,'gavin',True,2.3]print(list1[0:2])#取索引為0-2的元素,但不包括索引為2的元素print(list1[-2:])#從倒數第二個取出後面所有print(list1[:2])#從索引為0開始取元素,但不包括索引為2的元素print(list1[-1])# 表示取最後一個元素
列表元素新增
list2 = ['000']list2.insert(0,'ppx')#將ppx插入到索引為0的位置,list2.append('lqy')#追加list2.append('lq')#追加print(list2)
列表元素修改
元素的新增也屬於列表的修改
當然也可以對現有的元素進行修改
list2=['ppx', '000', 'lqy', 'lq']list2[1]='123'print(list2)
列表元素刪除
列表中元素的刪除有三種方法
方法1:直接刪除指定元素
list2=['ppx', '123', 'lqy', 'lq']list2.remove('123')>>>['ppx', 'lqy', 'lq']
方法2:按下標刪除
list2 = ['ppx', 'lqy', 'lq']del list2[0]>>>['lqy', 'lq']
方法3:不指定引數彈出最後一個(也可以指定下標彈出元素)
list2=['lqy', 'lq']list2.pop() #等價於list2.pop(1) >>>['lqy']
列表元素查詢
可以通過index方法查詢指定元素的索引,然後通過中括號的方式尋找元素
list2=['ppx', '123', 'lqy', 'lq']index =list2.index('lqy')print(index)temp =list2[index]print(temp)>>>lqy
列表元素清空
直接呼叫clear()方法可以清空列表資料
list2=['ppx', '123', 'lqy', 'lq']list2.clear()print(list2)>>>[]
列表元素排序
對列表進行排序,反轉
list2=['ppx', '123', 'lqy', 'lq']list2.sort()print(list2)>>>['123', 'lq', 'lqy', 'ppx']#預設是升序排序
列表反轉:將列表中的資料反轉過來
list2=['ppx', '123', 'lqy', 'lq']list2.reverse()print(list2)>>>['lq', 'lqy', '123', 'ppx']
列表合併
可以對兩個列表進行合併
list2=['ppx', '123', 'lqy', 'lq']temp= [1,2,3,4]list2.extend(temp)print(list2)>>>['ppx', '123', 'lqy', 'lq', 1, 2, 3, 4]
列表元素迴圈
對列表中的元素進行遍歷
for item in list2:#只遍歷元素 print(item)for index,item in enumerate(list2):# 可以同時遍歷元素和索引 print(index,item)
列表切片
可以對列表中的元素進行切片,並且可以指定步長
list2=['ppx', '123', 'lqy', 'lq']temp=list2[0:-1:2]# 2代表步長print(temp)>>>['ppx', 'lqy']
列表拷貝
列表的拷貝分為淺拷貝和深拷貝
淺拷貝只是拷貝記憶體地址
深度拷貝的話則完全獨立拷貝一份資料
例如:
import copya = [1, 2, 3, 4, ['a', 'b']] # 原始物件b = a # 賦值,傳物件的引用c = copy.copy(a) # 物件拷貝,淺拷貝d = copy.deepcopy(a) # 物件拷貝,深拷貝a.append(5) # 修改物件aa[4].append('c') # 修改物件a中的['a', 'b']陣列物件a[0]=9print('a = ', a)print('b = ', b)print('c = ', c)print('d = ', d)
執行結果:
a = [9, 2, 3, 4, ['a', 'b', 'c'], 5]b = [9, 2, 3, 4, ['a', 'b', 'c'], 5]c = [1, 2, 3, 4, ['a', 'b', 'c']]d = [1, 2, 3, 4, ['a', 'b']]
注:也就是說深度複製的話,是完全重新再建立一個新的物件,而淺拷貝的話只是複製了當前物件的地址,改變外層不會影響複製的列表,但是改變內層的資料,則複製的列表也會隨之改變.
列表指令碼操作符
表示式 | 結果 | 描述 |
---|---|---|
len([1,2,3,4]) | 4 | 返回長度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 列表組合,類似字串拼接 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 列表元素重複 |
3 in [1, 2, 3] | True | 判斷元素是否在當前列表 |
列表常用函式
函式名 | 描述 |
---|---|
len(list) | 列表的長度 |
max(list) | 返回列表的最大值 |
min(list) | 返回列表的最小值 |
list(seq) | 將元組轉化為列表 |
5 Python元組
在python中,元組和列表基本類似
不同之處:
1.元組中的資料不可以別修改,
2.元組使用的是小括號,列表使用花括號
元組建立
元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。
tuple=(1,2,3,4,5)
元組元素訪問
元組中元素的訪問和列表一樣,並且可以擷取元組
print(tuple[1:4])# 列印元組第二到第四個元素(一個元組)print(tuple[-1])#列印最後一個元素print(tuple[-2:])#從倒數第二個開始列印元組print(tuple[2:])# 從索引為2的位置列印元組
元組修改
由於元組不可以修改,所以一旦建立後就不能改變.但是元組可以進行拼接,並且元組中的資料可以重複.
tuple=(1,2,3,4,5)tuple2 = (7,8,9,2)tuple3 = tuple+tuple2print(tuple3)>>>(1, 2, 3, 4, 5, 7, 8, 9, 2)
元組刪除
元組中的元素是不可以刪除的,但是可以使用del語句刪除整個元組,此時列印該元組的話,就會報該元組未定義
del tuple3print(tuple3)>>>name 'tuple3' is not defined
元組指令碼操作符
表示式 | 結果 | 描述 |
---|---|---|
len([1,2,3,4]) | 4 | 返回長度 |
(1, 2, 3)+ (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 元組組合,類似字串拼接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 元組元素重複 |
3 in (1, 2, 3) | True | 判斷元素是否在當前元組 |
元組內建函式
函式名 | 描述 |
---|---|
len(tuple) | 元組的長度 |
max(tuple) | 返回元組的最大值 |
min(tuple) | 返回元組的最小值 |
tuple(seq) | 將列表轉化為元組 |
6 Python字典
在python中,所謂字典就是一種key-value結構
的資料型別的容器,k-稱為是一個鍵值對,每個鍵值對使用:
分隔,而每個鍵值對使用,
分割,而一個字典則用一個大括號{}
表示.用來儲存任意型別的物件.
注意:
1 在字典中,key(鍵)一般是唯一的,如果鍵一致,則後面會覆蓋前面2 在字典中,value(值)可以不唯一,並且可以是任何的資料型別3 鍵必須是不可以變的,值則可以取任何型別4 由於鍵值是不可變的,所以不可以使用列表來表示鍵5 字典是無序的,key必須是唯一的,so 天生去重
字典建立
person = { "name":'gavin', "sex":"男", "age":25, "birthday":'2021-01-01'}
字典元素查詢
查詢元素的時候有兩種方式
方式一:[]
person['name']# 注意,如果字典中沒有對應的key,則會報錯
方式二:.get()
person.get('name')>>>gavin#注意:如果沒有對應的key,則返回None,一般獲取元素使用該方式比較穩妥
字典元素修改
修改字典,通過key來修改,若修改的key不存在,則變為對字典中key-value鍵值對的新增操作
person = { "name":'gavin', "sex":"男", "age":25, "birthday":'2021-01-01'}person['birthdy']='1996-06-29'person['hobby']='lqy'print(person)
執行結果:
{'name': 'gavin', 'sex': '男', 'age': 25, 'birthday': '2021-01-01', 'birthdy': '1996-06-29', 'hobby': 'lqy'}
合併更新
b={'name':'colby','age':'29','height':'75Kg'}person.update(b)#存在就更新,不存在就新增
字典元素新增
字典中對鍵值對的新增操作就是一個簡單的賦值
person['ppp':'xxx']
字典元素刪除
刪除字典可以直接刪除整個字典,也可以根據key來刪除對應的鍵值對
del person # 刪除字典person.clear()#清空字典所有記錄del person['name']#刪除字典中key為'name'的鍵值對
安全刪除法
del person.get('name')
字典內建函式
函式名 | 描述 |
---|---|
len(dict) | 字典的鍵的總數 |
str(dict) | 輸出字典可列印的字串表示 |
type(dict) | 返回輸入的變數型別 |
字典常用方法
函式名 | 描述 |
---|---|
dict.values() | 列印所有值 |
dict.keys() | 列印所有鍵 |
dict.setdefault('name','age') | 存在就顯示,不存在就新增一個值 |
dict.item() | 字典轉化為列表 |
dict.formkeys([2,3,4],"test") | 字典初始化 |
測試setdefault方法
#不存在則新增b={'name':'colby','age':'29','height':'75Kg'}p =b.setdefault('ppp','test')print(b)>>>{'name': 'colby', 'age': '29', 'height': '75Kg', 'ppp': 'test'}#存在則顯示b={'name':'colby','age':'29','height':'75Kg'}p =b.setdefault('name')print(b)>>>{'name': 'colby', 'age': '29', 'height': '75Kg'}
字典迴圈
在字典中有兩種迴圈方法
方法一:高效,建議使用
for item in person: print(person[item])
方法二:效率低,不建議使用
for k,v in person.items(): print(k,v)