Python零基础入门学习笔记(一)
Python 基礎入門學習
歡迎訪問博客:Python學習筆記
- 基本語句
- 基本數據類型
- 函數
- 文件操作
- 面向對象
- 異常
- 模塊
一.基本語句
注釋: # 單行注釋 """多行注釋 """
print (" ") 輸出函數
基本運算符: + - * / //(取整) %(取余) **(冪運算)
變量的定義: 變量名 = 值 (每個變量使用前都必須賦值,變量在賦值以后才會被創造,定義時不需要指定變量類型)
type( ) 查看變量類型函數
input( ) 變量輸入函數 用法舉例: a = input(“輸入數字:”) 輸入的任何內容的數據類型默認為字符型str
int(a) float(b) 類型轉換函數,將a轉換為int型,將b轉換為float型
格式化輸出:
print("格式化字符串" % 變量1)
print("格式化字符串" % (變量1,變量2...))
(%s - 字符串)
(%d - 帶符號十進制整數——%06d表示輸出六位數,不足地方用0補全)
(%f - 浮點數——%.02f表示小數點后顯示兩位)
(%% - 輸出%)
f-格式化字符串: print(f’ My name is {name} ')
轉義字符: \n 換行 \t 制表符 : 1個tab鍵(4個空格)
結束符:python中的 print 默認以 \n 為結束符,即默認換行,但可自己設置,如: print('hello', end="\t")
標識符 由字母、數字、下劃線組成,不能以數字開頭,不能與關鍵詞重名。標識符區分大小寫,命名規則推薦多個單詞時全部小寫并將每個單詞用下劃線隔開。
if語句: 在Python開發中,Tab和空格一定不能混用!
if 條件1:條件1成立時要執行的代碼elif 條件2:條件2成立時要執行的代碼else:條件1、2都不成立時執行的代碼if語句訓練:猜拳游戲
#if-elif-else訓練: 猜拳游戲import randomplayer = int(input('請出拳 (0-拳頭 1-剪刀 2-布):')) computer = random.randint(0,2)#平局 if player == computer:print('平局') #電腦勝 elif ( ((player == 0) and (computer == 2)) or ((player == 1)and(computer == 0)) or ((player == 2)and(computer == 1)) ):print('電腦贏了!你個睿智!你連電腦都打不過!') #玩家勝 else:print('你贏了!不容易不容易啊!')隨機數的實現:
導入 random 模塊,使用 randint (隨機整數) 功 如:
import randomnum = random.randint(0,2)? (num為0、1、2中的隨機一個數)
三目運算符:
條件成立時的表達式 if 條件 else 條件不成立時的表達式如: MaxNum = a if a>b else b
While 循環:
while 條件:條件成立時重復執行的代碼注意: 計數的初始值習慣寫為0
break 和 continue :
break 為終止循環,即不再循環
continue 為退出當前一次循環而直接執行下一次循環,即跳入下一次循環
for 循環:
for 臨時變量 in 序列:重復執行的代碼while 與 else : 如果循環由 break 停止,則else下的代碼不執行,for 與 else 的用法與此類似
while 條件:條件成立時重復執行的代碼else:循環正常結束之后執行的代碼二.基本數據類型
字符串可以用單引號、雙引號、三引號括起來,字符串為不可變類型。
python中每個字符串自帶下標和索引,可用 str[x] 來精確訪問字符串 str 中的某個字符
切片: 指對 字符串、列表、元組 進行截取其中一部分的操作
語法: 序列[開始位置下標 : 結束位置下標 : 步長]
其中切片不包含結束位置下標對應的數據 ,即開始位置下標和結束位置下標為 [ ) 的包含形式
下標 和 步長 均可不寫或寫負數,步長默認為1,若下標開始到結束的方向與步長的方向沖突,則無法選取出數據
字符串的查找: find() 、index() 、count() 、rfind() 、rindex()
find() : 檢測某個子串是否包含在這個字符串中,如果存在則返回這個子串開始位置的下標,否則返回-1
字符串序列.find( 子串 , 開始位置下標 , 結束位置下標 )開始和結束位置下標可以省略,表示在整個字符串序列中查找
index() : 與find()函數的用法一樣,但如果不存在要查找的子串,則會報錯
count() :返回某子串在該字符串中出現的次數,若不存在則返回0
rfind() 與 rindex() 查找方向為從右側開始,其功能與 find() 與 index() 相同
字符串的替換 :replace() 替換
字符串序列.replace ( 舊子串、新子串、替換次數 )注意: replace函數并不會改變原有字符串的數據,修改后的數據是replace函數的返回值
字符串的分割: split() 分割,返回一個列表,丟失分割字符
字符串序列.split(分割字符,分割次數)注意:split函數也不會改變原有字符串數據,修改后的數據為函數返回值
列表的合并:join() 合并,返回一個字符串,添加連接字符
連接字符串.join(多字符串組成的列表)注意: join() 合并 是 split() 分割 的逆序操作
字符串修改大小寫函數:
capitalize() 將字符串第一個字母轉換為大寫,其余均為小寫
title() 將字符串中每個單詞的首字母轉化成大寫,其余均為小寫
lower() 將字符串中的大寫全部轉換為小寫
upper() 將字符串中的小寫全部轉換為大寫
例:
initial: brotheR aNd me
capitalize: Brother and me
title: Brother And Me
lower: brother and me
upper: BROTHER AND ME
字符串刪除空白字符函數:
lstrip() : 刪除字符串左側空白字符
rstrip() : 刪除字符串右側空白字符
strip() : 刪除字符串兩側空白字符
例:
initial: " brother and me "
lstrip: “brother and me "
rstrip: " brother and me”
strip: “brother and me”
字符串對齊函數: ljust() 、 rjust() 、center()
返回 一個原字符串 左/右/中 對齊,并用指定字符(默認空格)填充至對應長度的新字符串
字符串序列.ljust( 長度 , 填充字符 ) 字符串序列.rjust( 長度 , 填充字符 ) 字符串序列.center( 長度 , 填充字符 )例:
initial: brother and me
ljust: brother and me----------------
rjust: ----------------brother and me
center: --------brother and me--------
字符串判斷開頭或結尾函數:
startswith() : 檢查字符串是否以指定子串開頭,是則返回True,否則返回False。如果設置開始和結束位置下標,則在指定范圍內檢查
字符串序列.startswith(子串,開始位置下標,結束位置下標)endswith() : 檢查字符串是否以指定子串結尾,用法與 startswith()相同
字符串序列.endswith(子串,開始位置下標,結束位置下標)字符串字符類型判斷函數:
isalpha() : 如果字符串非空且只包含字母則返回True , 否則返回False
isdigit() : 如果字符串非空且只包含數字則返回True , 否則返回False
isalnum() : 如果字符串非空且只包含數字或字母則返回True, 否則返回False
isspace() : 如果字符串非空且只包含空格則返回True , 否則返回False
列表 : 可以用下標選取指定數據,列表為可變類型。
列表數據查找函數:
index() : 返回指定數據所在位置的下標,若數據不存在則報錯
列表序列.index(數據, 開始位置下標, 結束位置下標)count() : 返回指定數據在該列表出現的次數,若數據不存在則返回0
列表序列.count(數據)len() : 返回列表的長度,即列表中數據的個數
len(列表序列)判斷列表中是否存在指定數據:
in : 判斷指定數據在某個序列的存在,存在返回True,否則返回False
'指定數據' in 列表序列not in : 與 in 的用法相同,返回結果相反
列表數據增加函數:
append() : 列表結尾追加數據,若數據為一個序列,則直接追加整個序列到列表的結尾位置
列表序列.append(數據)extend() : 列表結尾追加數據,若數據為一個序列,則將序列的數據逐一添加到列表,若數據為字符串,則將單獨的每個字符逐一添加到列表
列表序列.extend(數據)insert() : 指定位置新增數據,增添方式與 append() 相同
列表序列.insert(位置下表,數據)列表數據刪除函數:
del 目標(列表名 或 列表指定下標數據)
pop() : 刪除指定下標的數據(默認為最后一個),并返回該數據。
列表序列.pop(下標)remove() : 移除列表中某個數據的第一個匹配項,若匹配失敗則報錯
列表序列.remove(數據)clear() : 清空列表中的所有數據
列表序列.clear()列表數據修改函數:
修改指定下標數據: 列表序列[下標] = 數據
reverse() : 將列表數據的順序逆置
列表序列.reverse()sort() : 對列表的數據進行排序
列表序列.sort( key = None, reverse = False)注意: reverse = True 降序 reverse = False 升序(默認)
列表數據復制函數:
copy() : 列表數據復制
新列表序列 = 原列表序列.copy()即將原列表的數據復制到新列表中
列表的循環遍歷:
while循環方法 :
i = 0while i < len(list):print(list[i])i += 1for循環方法 :
for i in list:print(i)列表嵌套:指一個列表里包含了其他的子列表。
例: List = [ ['a' , 'b' , 'c'] , ['1' , '2' , '3'] , ['&' , '$' , '%'] ]
列表綜合訓練:
#將8位老師隨機分配到3個辦公室中 import random teacher = ['a1','a2','a3','a4','a5','a6','a7','a8'] room = [[],[],[]] for i in teacher:n = random.randint(0,2)room[n].append(i) print(room)i = 1 for r in room:print(f'辦公室{i}的人數是{len(r)},他們分別為:',end = '\t')for name in r:print(name,end = '\t')print()i += 1元組: 一個元組可以存儲多個數據(與列表相同),但元組內的數據是不能修改的。
元組名 (數據1 , 數據2 , 數據3)
注意: 如果定義的元組只有一個數據,那么需要添加逗號,湊則數據類型為該數據類型,而不是 元組(tuple) 數據類型,如 tuple = (‘x’ , )
元組的常見操作:
按下標查找數據 : 如tuple1[0] 、 tuple1[1]等
index() : 查找某個數據,用法與字符串、列表的index相同
count() : 統計某個數據在當前元組出現的次數
len() : 統計元組中的數據個數
元組數據的修改:
元組內的直接數據如果修改則立即報錯
如果元組里面有列表,可直接修改列表內的數據,如 (‘abc’ , ‘qwe’ , [‘123’ , ‘456’ , ‘789’] , ‘jkl’) 元組就可以修改其中的 ‘123’ , ‘456’ , ‘789’ 數據
字典:字典里的數據是以鍵值對形式存儲的。字典為可變類型。
特點: 符號為大括號,數據為鍵值對形式出現,各個鍵值對之間用逗號隔開。
dict1 = { '鍵1' : '值1' , '鍵2' : '值2' , '鍵3' : '值3' }空字典除了可以用空大括號創建,也可以用函數創建: dict2 = dict()
字典常見操作:
增 / 改: 字典序列[‘key’] = 值
注意: 如果key存在則修改該鍵對應的值,如果key不存在則新增此鍵值對
刪:
del(dict) 刪除字典
del dict['Key'] 刪除字典中指定鍵值對
dict.clear() 清空字典
查:
按key值寫法直接查找: 字典序列[‘鍵’]
按函數寫法查找: get() keys() values() items()
get() : 獲取某個鍵對應的值
字典序列.get(key , 默認值)注意:若當前查找的key不存在則返回默認值,若默認值省略不寫則返回None
keys() : 獲取字典中所有的key,并返回可迭代對象
字典序列.keys()values() : 獲取字典中所有的values,并返回可迭代對象
字典序列.values()items() : 獲取字典中所有的鍵值對(key 和 values),并返回可迭代對象 ,里面的數據是元組
字典序列.items()字典的循環遍歷:
遍歷字典的Key:
for key in dict1.keys(): print(key)遍歷字典的Value:
for value in dict1.values(): print(value)遍歷字典的元素:
for item in dict1.items(): print(item)遍歷字典的鍵值對(拆包):
for key, value in dict1.items():print(f'{key} = {value}')集合: 創建集合可使用 {} 或 set() ,但是如果要創建空集合只能使用 set() , 因為使用 {} 會創建空字典。
集合數據特點: 集合里面的數據會自動去重,不允許重復;集合里面的數據沒有順序,且不支持下標。集合是可變類型。
集合的創建:
直接創建: s1 = {10 , 20 , 30 , 40 , 50}
使用set()創建: s2 = set('brother')
創建空集合: s3 = set()
集合中數據的常見操作:
增加數據: add() update()
集合.add(數據) 增加單個數據,要增加的數據在原集合中存在的話,不進行任何操作
集合.update(數據列表) 在集合中增加數據序列
刪除數據: remove() discard() pop()
集合.remove(數據) 刪除集合中的指定數據,如果數據不存在則會報錯
集合.discard(數據) 刪除集合中的指定數據,如果數據不存在也不會報錯
集合.pop() 隨即刪除集合中的某個數據,并返回這個數據
查找數據: in 判斷數據在集合序列 not in 判斷數據不在集合序列
公共操作:運算符、公共方法、容器類型轉換
運算符:
+ 合并,支持字符串、列表、元組
* 復制,支持字符串、列表、元組
in 元素是否存在,支持字符串、列表、元組、字典
not in 元素是否不存在,支持字符串、列表、元組、字典
公共方法:
len() 計算容器中元素個數
del() 刪除元素
max() 返回容器中元素的最大值
min() 返回容器中元素的最小值
range(start,end,step) 生成從start到end的數字(其中不包含end數字),步長為step,供for循環使用
enumerate() 將一個可遍歷的數據對象(列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環中
enumerate(可遍歷對象, start=0)容器類型轉換:
tuple(序列): 將某個序列轉換成元組
list(序列): 將某個序列轉換成列表
set(序列): 將某個序列轉換成集合
推導式(生成式): 列表推導式、字典推導式、集合推導式
作用: 化簡代碼
列表推導式:用一個表達式創建一個有規律的列表或控制一個有規律列表。
創建0-10的列表:
list = [i for i in range(10)]創建0-10的偶數列表:
list = [i for i in range(10) if i % 2 == 0]多個for循環列表:
list = [(i , j) for i in range(3) for j in range(3)]字典推導式:快速合并列表為字典或提取字典中目標數據
賦值體驗:
dict = {i:i*2 for i in range(1,5)}將兩個列表合并為字典:
list1 = ['name' , 'age' , 'gender']list2 = ['Tom' , 20 , 'man']dict = { list1[i] : list2[i] for i in range(len(list1)) }提取字典中目標數據:
counts = {'a' : 150 , 'b' : 200 , 'c' : 250}count = {key : value for key , value in counts.items() if value >= 200}集合推導式:
list = [1,1,2] set = {i * 2 for i in list}?
?
總結
以上是生活随笔為你收集整理的Python零基础入门学习笔记(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何写好一篇论文-02
- 下一篇: Python PySpark 大数据时代