有用的python小知識(一)(Python重要的小知識總結)

一、註釋

單行註釋:以 # 開頭,編程規範建議#後面跟一個空格

多行註釋:用一對連續的三個引號,單引號或者雙引號均可("""/’’’)

二、行與縮進

(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學習筆記大總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章