python之基本介紹
(1)什麼是python
python 是一門程式語言
python是一門物件導向,解釋型的動態型別的程式語言
guido van rossunm (吉多*範羅蘇姆)
在1989年發明,第一個公開發行版本與1991年;
python在市面上的版本:
python 2.7 (以前用的非常多)
目前用的版本是3.0 版本
最新的版本3.121版本
目前我們學的3.7版本
(2)什麼是物件導向?
python 中一切皆為物件,對事物的描述和方法系統的定義為一個類,在這個類中的具體的例項,我們就說物件;
例如: 人:類======== lv 物件
(3)什麼解釋型?
python程式執行時無需先進行編譯成二進位制程式碼,直接在執行過程中對語句一條條進行編譯;
例如:java 包裝jdk編譯,python不需要,可以直接編譯
(4)什麼動態型別?
指python程式在執行時可以改變其結構,新的函式可以被引進,已有函式可以被刪除;
(5)python有哪些特點?
簡單 易學 免費開源 可擴充性強 可移植 具有豐富的第三方類和庫
(6)python應用在哪些領域?
網頁開發,視覺化介面開發,系統程式設計,資料分析,網路爬蟲,自動化指令碼開發,資料分析,ai人工智慧,大資料,雲端計算
(7)python的列印的方式?
print()
python的運用
基礎用法
命令列必須要頂格輸入,不能開頭有空格
print('') 列印
括號中必須加上單引號或者雙引號(必須是英文的符號)
在引號中間輸入程式碼指令
註釋
# 註釋內容 或 ctrl+/ 單行註釋
滑鼠選擇多行+ctrl+/ 多行註釋
'''註釋內容''' 自動多行註釋引號中的內容
變數
透過定義變數的方法來實現輸出
定義一個變數名稱:字元,下劃線,數字組合
變數名規則:字母或下劃線開頭,不能以數字開頭
引用: print(變數名)
檢視字元型別
檢視字元型別 print(type(變數名))
<class 'int'>
<class 'str'>
引號的用法
單、雙、三引號都能單獨使用;
單引號可以包含雙引號,不能包含單引號和三引號
雙引號中可以包含單引號和三引號,不能包含雙引號
三引號可以包含單引號和雙引號,不能不能包含三引號
三個引號都不能包含本身
Python格式輸出
%s :字串 (採用str()的顯示)
%c :單個字元
%d:十進位制整數
%i :十進位制整數
%o:八進位制整數
%x:十六進位制整數
%f:浮點數
%% :字元"%"
# %s 將int型別轉換成str型別顯示
b = 333
print(type(b)) # <class 'int'>
print(type('%s'%b)) # <class 'str'>
# %c 只能單個字元
b = '1'
print('%c'%b)
# %d 十進位制整數
b = 15
print('%d'%b)
# %o 八進位制整數
b = 15
print('%o'%b)
# %x 十六進位制整數
b = 15
print('%x'%b)
# %f 浮點數
b = 15
print('%f'%b)
# '進位制%%' 整數百分比
b = 15
print('%d%%'%b)
常用型別表
python關鍵詞
這些關鍵詞在Python程式設計中擁有特殊的意義,不能用作變數名、函式名或其他識別符號。使用它們時需要遵循Python的語法規則。在編寫程式碼時,應儘量避免使用這些關鍵詞作為變數或函式的名字,以免引發語法錯誤。
False # 假
input # 輸入
None # 無(空)
True # 真
and # 和
as # 作為 (重新命名)
assert # 斷言
async # 非同步
await # 等待
break # 跳出迴圈
class # 類
continue # 繼續
def # 定義函式
del # 刪除
elif # 否則如果
else # 否則
except # 捕獲異常
finally # 最終(無論如何都執行)
for # 迴圈
from # 從...匯入
global # 全域性
if # 如果
import # 匯入
in # 在...中
is # 是
lambda # 匿名函式
nonlocal # 非區域性(引用外層變數)
not # 非,不是
or # 或
and # 與
pass # 空操作(佔位符)
raise # 丟擲異常
return # 返回
try # 嘗試
while # 當...時迴圈
with # 使用(上下文管理器)
yield # 生成器函式返回資料
list # 列表
type # 型別
Python常見的運算子
算術運算子
a=5
b=6
print(a+b) #返回值11 a和b相加
print(a-b) #返回值-1 a和b相減
print(a*b) #返回值30 a和b相乘
print(a/b) #返回值0.833a和b相除
print(a%b) #返回值5 除法中的餘數
print(a**b) #返回值15625 a的b次方
print(a//b) #返回值0 a除於b保留整數
賦值運算子
a=9
b=2
# a+=b
# print(a) #返回值11 等同於a=a加b
#
# a-=b
# print(a) #返回值7 等同於a=a減b
#
# a*=b
# print(a) #返回值18 等同於a=a乘b
#
# a/=b
# print(a) #返回值4.5 等同於a=a除b
#
# a**=b
# print(a) #返回值81 等同於a=a的b次方
#
# a//=b
# print(a) #返回值4 等同於a=a除b 保留整數
#
# a%=b
# print(a) #返回值1 等同於a=a除b 的餘數
比較運算子
比較運算子的結果永遠為True或False
a=9
b=2
print(a==b) #返回值False
print(a>b) #返回值True
print(a<b) #返回值False
print(a>=b) #返回值True
print(a<=b) #返回值False
print(a!=b) #返回值True
邏輯串運算子
a=5
b=3
c=1
print(a>b and b>c) #返回值True 與 (兩個條件同時瞞住)
print(a>b and b<c) #返回值True 與
print(a>b or b<c) #返回值True 或 (兩個條件滿足一個就可以)
print(not(b<c)) #返回值True 非 不包含就是對的
print(not(b>c)) #返回值False 非 包含就是錯的
成員運算子
name=[1, 2 , 3 , 4 , 5 , 6 , 7, 8]
print(1 in name) # 返回值True 在範圍內
print(9 in name) # 返回值False 不在範圍內
print(1 not in name) # 返回值False 在範圍內
print(9 not in name) # 返回值True 不在範圍內
位運算子
按位與 &
規則:兩兩為真取,一真一假不取
a=5
b=3
# a:0000 0101
# b:0000 0011
print(a&b) # 輸出1 0000 0001
按位或 |
規則:一真一假取真,一假一真取真,兩兩為真取真, 兩兩為假不取
a=5
b=3
# a:0000 0101
# b:0000 0011
print(a|b) # 輸出7 0000 0111
按位異或 ^
規則:一真一假取真,一假一真取真,兩兩為真不取,兩兩為假不取
a=5
b=3
# a:0000 0101
# b:0000 0011
print(a^b) # 輸出6 0000 0110
按位取反 ~
a=5
b=3
print(~a) #公式-(a+1) 按位取反
# -(5+1)=-1
print(~b)
向左運動運算子>>
a=5
b=3
# a:0000 0101
# b:0000 0011
print(a>>b) #輸出0 0000 0000
向右移動運算子<<
a=5
b=3
# a:0000 0101
# b:0000 0011
print(a>>b) #輸出40 0010 1000
字元,列表,元組,字典,集合
字元型別
索引
索引在公司中一般也叫下標,或角標
定義:可我們可以直接使用索引來訪問序列中的元素,同時索引可分為正向索引和負向索引兩種,而切片也會用到索引,如下圖:
Python中有序列:字元,列表,元組
無序:集合
正向索引:從0開始
負向索引:-1開始
切片
定義:切片是指對操作的物件擷取其中一部分的操作,字串,列表,元組都支援切片操作
切片的語法:【開始索引:結束索引 :步長】
備註:顯示結果:包含開始值,不包含結束值
zimu="abcdefghijklmnopq"
print(zimu[1]) # b 表示正索引1開始
print(zimu[1:3]) # bc 包含開始值,不包含結束值
print(zimu[1:9:2]) # bdfh 1是開始值 ,9是結束值,2是步長
print(zimu[3:]) # defghijklmnopq 3表示開始值,為空代表後面所有
print(zimu[::-1]) # qponmlkjihgfedcba 反轉負索引顯示
print(zimu[:]) # abcdefghijklmnopq 顯示所有的內容
print(zimu[-1:-5:-1]) # qpon 負索引-1是開始值,-5結束值,-1是步長
print(zimu[-5:-1]) #mnop 從-5開始值 負索引取到-1結束值 , 不包含-1
字串
- capitalize 首字母大寫
- title 每段字母的首個字母大寫
- count 統計字元個數
- join 把字符集中每個字元用符號分割
- split 透過指定的內容進行分割,不顯示被指定的內容
- strip 刪除字符集中開頭和結尾,字元相同也可以
- lstrip 刪除字符集首字元
- rstrip 刪除字符集末位字元
- startswith 判斷字符集是不是以某個字元開頭
- endswith 判斷字符集是不是以某個字元結尾
- find 從左往右查字元在第幾位
- rfind 串右往左查字元在第幾位
- replace 替換相同字元
- upper 將字符集所有小寫字元換成大寫
- lower 將字符集所有大寫字元換成小寫
- isdigit 判斷字符集是不是全數字
- isalpha 判斷字符集是不是全字母
- isalnum 判斷字串中是全是字母或全是數字或數字和字母組合
- islower 判斷是不是都小寫
- isupper 判斷是不是都大寫
- set 去重
#字串 xnt='hzdcs41wlc' xnt2='aaaabbbbcccc' xnt3='AAAABBBBCCCC' # capitalize 首字母大寫 print(xnt.capitalize()) # 返回值:Hzdcs41wlc # title 每段字母的首個字母大寫 print(xnt.title()) # 返回值:Hzdcs41Wlc # count 統計字元個數 print(xnt.count('z')) # 返回值:1 # join 把字符集中每個字元用符號分割 print('/'.join(xnt)) # 返回值;h/z/d/c/s/4/1/w/l/c # split 透過指定的內容進行分割,不顯示被指定的內容 print(xnt.split('s')) # 返回值:['hzdc', '41wlc'] # strip 刪除字符集中開頭和結尾,字元相同也可以 print(xnt.strip('h.c')) # 返回值:zdcs41wl # lstrip 刪除字符集首字元 print(xnt.lstrip('h')) # 返回值:zdcs41wlc # rstrip 刪除字符集末位字元 print(xnt.rstrip('c')) # 返回值:hzdcs41wl # startswith 判斷字符集是不是以某個字元開頭 print(xnt.startswith('z')) # 返回值:對的True/錯的False # endswith 判斷字符集是不是以某個字元結尾 print(xnt.endswith('c')) # 返回值:對的True/錯的False # find 從左往右查字元在第幾位 print(xnt.find('w')) # 返回值 :7 # rfind 串右往左查字元在第幾位 print(xnt.rfind('w')) # 返回值:2 # replace 替換所有相同字元 print(xnt2.replace('a','s')) #返回值:ssssbbbbcccc a是原值,b是替換值 # replace 指定替換的次數 print(xnt2.replace('a','s',3)) #返回值:sssabbbbcccc a是原值,b是替換值,3是次數 # upper 將字符集所有小寫字元換成大寫 print(xnt2.upper()) # 返回值:AAAABBBBCCCC # lower 將字符集所有大寫字元換成小寫 print(xnt2.lower()) # 返回值:aaaabbbbcccc # isdigit 判斷字符集是不是全數字 print(xnt2.isdigit()) # 返回值:對的True/錯的False # isalpha 判斷字符集是不是全字母 print(xnt2.isalpha()) # 返回值:對的True/錯的False # isalnum 判斷字串中是全是字母或全是數字或數字和字母組合 print(xnt2.isalnum()) # 返回值:對的True/錯的False # istitle 判斷首個字母是否大寫必須是隻有首個字元大小,其他字母為小寫 print(xnt2.istitle()) # 返回值:對的True/錯的False # islower 判斷是不是都小寫 print(xnt.islower()) # 返回值:對的True/錯的False # isupper 判斷是不是都大寫 print(xnt.isupper()) # 返回值:對的True/錯的False # set 去重 list = [1, 3, 6, 9, 1, 8] qc=set(list) print(qc) 返回值:{1, 3, 6, 8, 9}
列表
型別:<class 'list'>符號:[]定義:列表list 是一組有序儲存的資料,也是python常見的序列值一、序列中的每個元素都分配一個索引,第一個元素的索引是0,第二個元素的索引是1,依次類推,序列都可以進行操作包括索引,切片定義列表的方法有兩種:方法一:list1=[1,2,3,4] #直接透過[]進行定義方法二:list2=list('12345) #直接透過list轉換透過索引新增值(覆蓋原有值
# 列表資料 list1=[1,2,3,4,5] # 替換單個 list1[2]='a' print(list1) #返回值:[1, 2, 'a', 4, 5] # 替換多個 list1[1:]='好好學習天天向上' print(list1) #返回值:[1, '好', '好', '學', '習', '天', '天', '向', '上']
列表中的函式
append 新增元素 預設新增在最後一位list1=[1,2,3,4,5] list2=[6,7,8,9,0] list1.append('name') print(list1) #返回值:[1, 2, 3, 4, 5, 'name']
extend :連線兩個列表list1=[1,2,3,4,5] list2=[6,7,8,9,0] list1.extend(list2) print(list1) #返回值:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
insert() 在指定字元後插入資料list1=[1,2,3,4,5] list1.insert(2,'r') print(list1) #返回值:[1, 2, 'r', 3, 4, 5]
remove刪除列表中指定的值,從左開始刪除,只刪除第一個ist1=[1,2,3,4,5] list1.remove(3) print(list1) #返回值;[1, 2, 4, 5]
del 透過 索引刪除指定的值list1=[1,2,3,4,5] del list1[3] print(list1) #返回值:[1, 2, 3, 5]
index 檢視在列表中字符集的索引值list1=[1,2,3,4,5] print(list1.index(4)) #返回值:3
sort 實現列表的升序排列ist1=[2,3,6,7,4,1,9,8] list1.sort() print(list1) # 返回值;[1, 2, 3, 4, 6, 7, 8, 9]
sorted 排序字母和數字都可以排序list1=[2,3,6,7,4,1,9,8] print(sorted(list1,reverse=True)) #返回值:降序[9, 8, 7, 6, 4, 3, 2, 1] print(sorted(list1,reverse=False)) #返回值:升序[1, 2, 3, 4, 6, 7, 8, 9] list1=['a','c','d','b','e','f','g'] print(sorted(list1,reverse=True)) #返回值:降序['g', 'f', 'e', 'd', 'c', 'b', 'a'] print(sorted(list1,reverse=False)) #返回值:升序['a', 'b', 'c', 'd', 'e', 'f', 'g']
reverse 列表中所有元素反轉list1=[2,3,6,7,4,1,9,8] list1.reverse() print(list1) #返回值:[8, 9, 1, 4, 7, 6, 3, 2]
pop 預設移除列表中最後一個元素,括號內可以選擇要移除的值list1=[1,2,3,4,5] list1.pop() print(list1) #返回值:[1, 2, 4, 5]
元組 tuople
元組不可變定義:元組是python中一種資料結構,元組由不同的元素組成,每個元素可儲存不同型別的資料;如字串,數字,甚至元組,元組是“防寫”的,即元組中元素作為一個整體,建立後不能做任何修改操作。當出現一個字元時,加上逗號,(就變成了元組)xnt=(1,2,3,4,5,'a','b','c') print(type(xnt)) #返回值:<class 'tuple'> print(xnt)
元組函式運用
(1)index 索引xnt=(1,2,3,4,5) print(xnt.index(5)) #返回值:4
(2)元組需要修改,只能將元組轉換成列表,使用列表的函式操作,列表操作完在轉換成元組xnt=(1,2,3,4,5,'a''b','c') # 數值 print(type(xnt)) # 檢視型別為tuple元組型別 xnt1=list(xnt) # 重新命名並轉換成列表型別 print(type(xnt1)) # 檢視型別為list print(xnt1) # 打 印 xnt1.insert(2,'s') # 對列表進行操作 print(xnt1) # 列印 xnt2=tuple(xnt1) # 重新命名並將列表轉回元組 print(type(xnt2)) # 檢視型別為tuple元組型別 print(xnt2) # 列印
元組和列表的區別:
相同:1、都是有序,2、都支切片、迭代等操作不同:1、list是可變物件,元組tuple是不可變物件2、tuple不可變,使用tuple編寫的程式碼更安全3、列表是[],元組是()4、列表的字元型別:list ,元組的字元型別:tuple字典
字典的字元型別 <class 'dict'>符號:{}1、字典(dict)是一種可變容器模型,且可儲存任意型別物件2、字典的每個鍵,值 key,value 鍵值對形式3、鍵值用:分割,每個鍵值對之間用逗號分隔4、整個字典用{}包含5、字典鍵唯一,值不是唯一的定義字典的方法
方法一:透過{}定義字典xnt={'name':'wangfugui','age':'88',} print(type(xnt)) #返回值:<class 'dict'>
方法二:透過dict來轉換成字典xnt=[('aa',1),('bb',2),('cc',3)] # 數值 xnt1=dict(xnt) # 重新命名並轉換成dict字典 print(type(xnt1)) # 檢視型別 返回值:<class 'dict'> print(xnt1) # {'aa': 1, 'bb': 2, 'cc': 3}
字典中常見的函式:
1.新增新的鍵和值s={'a': 1, 'b': 2, 'c': 3} # 字典 s["d"]=4 # 要新增的鍵和值,'d'是鍵,4是值 print(s) # 返回值:{'a': 1, 'b': 2, 'c': 3, 'd': 4}