這裏寫自定義目錄標題
一、註釋
單行註釋:以 # 開頭,編程規範建議#後面跟一個空格
多行註釋:用一對連續的三個引號,單引號或者雙引號均可("""/’’’)
二、行與縮進
(1)python與其他語言明顯的區別是沒有大括號,而是用縮進表示代碼塊。
(2)需要注意每行語句不需要以分號結束。(學過c語言的應該注意一下)
三、Python中特有的交換兩個變量的值的方法
直接將a, b兩個變量放到元組中,再通過元組按照index進行賦值的方式進行重新賦值給兩個變量。(不用再用一箇中間值進行交換了)
如果不瞭解元組可以參考:
點擊即可進入組合數據類型之序列類型(包含元組,列表,字符串)(Python學習筆記)
代碼:
a=1
b=2
(a,b)=(b,a)
print(a)
print(b)
結果:
2
1
四、循環的巧應用(列表解析)
當你要建立一個1到10所有數字的平方時:
普通方法:
list=[]
for i in range(1,11):
list.append(i**2)
print(list)
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表解析:
list=[i**2 for i in range(1,11)]
print(list)
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
總結:
可以看出,只需要將普通方法中的append後面括號里加上普通方法中的for i in range(1,11)加到列表裏即可。
也就是普通方法經過複製粘貼是可以形成列表解析的,但並不是所有的for循環可以寫成列表解析式。
五、eval()函數與str()函數
eval(<字符串>)的作用是將輸入的字符串轉變成Python語句。
str() 函數將整形轉化爲字符串形式.
注意:
無論用戶在控制檯輸入什麼內容,input()函數都以字符串類型返回結果。
代碼展示:
x=eval(input("輸入數字"))
print(x)
print(x*2)
print(type(x))
x=str(x) #此時x轉變成了字符串形式
print(type(x))
結果:
輸入數字6
6
12
<class 'int'>
<class 'str'>
如果不加eval()函數會出現如下情況:
x=input("輸入數字")
print(x)
print(x*2) #會出現字符串“6”+“6”=“66”
print(type(x))
結果:
輸入數字6
6
66
<class 'str'>
注意:
(1)使用eval()函數處理字符串需要合理使用,假如你直接輸入字符串“Hello”,eval()函數會去掉兩個引號,這時候將其解釋爲一個變量,而之前又沒有定義過Hello變量,解釋器會報錯.
(2)若對“‘Hello"'使用eval()函數,僅僅會去掉外層的雙引號,還會留下一對單引號,此時’Hello‘會被解釋爲字符串。
六、條件表達式的緊湊形式
語法:
<表達式1> if <條件> else <表達式2>
條件成立則輸出表達式1,不成立則輸出表達式2
代碼:
guess=eval(input())
print("你猜{}了".format("對" if guess==99 else "錯"))
結果:
99
你猜對了
七、try-except語句的應用
Python使用try-except語句來實現異常處理,其基本語法格式如下:
try:
<語句塊1>
except <異常類型>:
<語句塊2>
代碼演示:
try:
num=eval(input("請輸入一個數:"))
print(num**2)
except NameError:
print("輸入錯誤,請重新輸入一個數")
結果:
請輸入一個數:no
輸入錯誤,請重新輸入一個數
try-except語句還有多種用法,我再另一篇博客詳細解釋了下:
點擊即可進入try-except語句的應用(超詳細的學習筆記)
八、get()函數
語法:
dict.get(key, default=None)
key -- 字典中要查找的鍵。
default -- 如果指定鍵的值不存在時,返回該默認值。
代碼:
dict={"a":"1","b":"2"}
x=dict.get("a","不存在")
y=dict.get("c","不存在")
print(x)
print(y)
若不瞭解字典類型:
點擊即可進入(Python)組合數據類型之字典類型和操作(學習筆記)
結果:
1
不存在
九、組合數據類型的簡單總結
1、元組是一種序列類型,一旦創建就不能被修改,使用小括號 () 或 tuple() 創建,元素間用逗號分隔
2、列表是一種序列類型,創建後可以隨意被修改,使用方括號 [] 或list() 創建,元素間用逗號 , 分隔,列表中各元素類型可以不同,無長度限制
3、字典是鍵值對的集合,鍵值對之間有順序且不能重複沒,採用大括號{}和dict()創建。
4、集合是多個元素的無序組合,集合元素之間無序,不存在相同元素,元素間用逗號分隔,建立集合類型用 {} 或 set(),但是建立空集合類型,必須使用set()
5、集合可以用於數據去重,所以如果你定義了一個列表,想要去除相同元素,可以轉換爲集合類型後再轉換爲列表即可。
如果要詳細瞭解可以參考:
(1)點擊即可進入組合數據類型之序列類型(包含元組,列表,字符串)(Python學習筆記)
(2)點擊即可進入組合數據類型之集合類型(學習筆記)(Python)
(3)點擊即可進入(Python)組合數據類型之字典類型和操作(學習筆記)
代碼演示:
L=[1,9,5,6,4,3,5,1,2,1,5,3]
L=set(L) #列表轉換爲集合可以去重
L=list(L) #去重完後可以在轉換回來成列表
print(L)
結果:
[1, 2, 3, 4, 5, 6, 9]
十、lambda函數
a=lambda x,y:x+y
print(a(3,2))
結果:
5
這算是lambda函數簡單的用法,以這個實例先來講一下其語法格式:
lambda [arg1 [,arg2,.....argn]]:expression
[arg…] 是參數列表
expression 是一個參數表達式
冒號前是參數,可以有多個,參數之間用逗號隔開,冒號右邊爲表達式。
lambda函數是一個匿名函數,爲什麼叫它匿名函數?
那是因爲匿名函數並不需要用def關鍵字來聲明,它主要應用於簡單函數,不想單獨去創建普通函數的時候使用。
注意:
1、參數表達式中的表達式不能超過一個
2、lambda 函數不能包含命令
3、lambda 函數不能訪問自己參數列表之外的參數,只能完成非常簡單的功能。
4、表達式中含有的參數需要在[arg…] 中有定義。
十一、函數sort()
1、僅對列表進行排序,改變列表自身順序,無返回值。
2、語法格式:
list.sort(key=None, reverse=False)
key:設置排序方法或者可以指定列表中用於排序的元素
reverse:True反序,False正序,若不賦值則默認爲升序排列
(1) 先對簡單列表進行排序:
>>> list=[2,1,6,5,9,8,6,3,]
>>> list.sort()
>>> print(list)
[1, 2, 3, 5, 6, 6, 8, 9]
>>> list.sort(key=None,reverse= True)
>>> print(list)
[9, 8, 6, 6, 5, 3, 2, 1]
(2)對字典組成的列表排序:
a = [{'Mike': 99}, {'John': 98},{'zoom':96}]
a.sort(key=lambda x: list(x.values()))
print(a)
結果:
[{'zoom': 96}, {'John': 98}, {'Mike': 99}]
對 a.sort(key=lambda x: list(x.values())) 的理解:
這語句中X是列表項即列表中的每個字典,list(x.values())是取字典的值轉化爲列表。簡單講就是用列表中每個字典的值進行排序。簡單說一下:
d.values() | 返回字典d中所有的值信息 |
---|---|
d.keys() | 返回字典d中所有的鍵信息 |
(字典的值就是99,98,96,字典的鍵是Mike,Zoom,John)對字典不瞭解的可以參考:
點擊即可進入(Python)組合數據類型之字典類型和操作(學習筆記)
同理可推,若想要按照名字排序的話,可以這樣寫:
a = [{'Mike': 99}, {'John': 98},{'zoom':96}]
a.sort(key=lambda x: list(x.keys()))
print(a)
結果:
[{'John': 98}, {'Mike': 99}, {'zoom': 96}]
十二、推薦
最後,我總結我所有Python知識總結到一個博客裏:
點擊即可進入Python學習筆記大總結