1. 程式人生 > 其它 >Python-02 基礎語法

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)