Python使用過程中的一些Tips(用於自己學習的覆盤)

【2020/03/27】

  1. Python的變量和函數的命名一般都用下劃線的方式,駝峯的命名方式一般用在給類命名(編程習慣問題)。
  2. Python一行太長的話可以換行,換行一般有兩種方式:
方式 注意點
\ 這種劃線的話需要注意換到下一行的代碼要適當的縮進,讓人看起來要指導是同一行代碼
() 將一整行代碼外加一個括號,這樣就是一個整體,可以任意回車切分,這對編譯器來說是沒有區別的,但是對於程序員看起來就舒服多了
區別 個人感覺還是反劃線更加清晰明瞭一點,個人更加傾向使用\
  1. 列表 []
  • 有序的,可重複的,裏面啥都能裝,放個函數都可以
  • 可變元素,因爲可以append(), 內容發生變化的時候id()是不會變化的
  • 初始化的話:a = list() 或者 a = []都是可以用來進行初始化
  • 列表的推導:
    比如下面的,想給列表a中的每個元素度+1操作
    好處有兩個(1) 代碼短,(2)相比循環,代碼也快
a = [1, 2, 3]
# 方式一:原始的for循環形式的
b = []
for e in a:
	b.append(e+1)
a = b
print(a)

# 方式二: 列表的推導形式
a = [e + 1 for e in a]
print(a)	
# 這裏對推導形式的理解稍微講一下,
# a = [e+1 for e in a] 中的第一部分就是需要對元素進行的操作
# 然後後面的for循環就是遍歷着做那些操作。

由此可見是非常好用的,代碼能夠看起來清秀很多!

  1. .split()切分函數

  2. .join()拼接函數
    上面兩個函數都是針對字符串的。用法都可以直接搜索, 其實最快的也可以直接help(.join())就行了,多熟悉代碼文檔,是最直接的老師!

  3. 編程寫代碼的時候心裏一定要有“重用”的概念,但是切記:過猶不及!不要一味的炫技!

【2020/03/30】

  1. lambda關鍵字
    就是一樣內寫個小函數,增強程序的可讀性用的;

  2. map函數:
    用法: map(func, 可遍歷的元素)
    就是把可遍歷的元素依次用第一個參數func處理,最後也返回可便利的容器,舉個例子吧,就清楚了:

f = lambda x: x**2
list(map(f, [1, 2, 3]))
#輸出結果:
[1, 4, 9]

#下面是體現lambda函數的效果的寫法
list(map(lambda x: x**2, [1, 2, 3]))

由此可見,map函數就是把目標函數施加在容器元素中的每個元素上!

  1. 列表和元組的區別:
    一個老生常談的問題,列表是可變的,元組是不可變的,元組類似於常量,但是都可以進行索引。

  2. 代碼調試的話,到時候pbd進行專題的學習!

【2020/04/04】
清明節到了,我已經忘記自己由多少個日子沒有回老家上墳了,這就是日子嗎?這就是日子吧。

  1. Python中全大寫的變量都是作爲常量來處理的。
  2. Python中的深拷貝和淺拷貝:
    這個問題滿常見的,自己面試被問到了兩次,一直沒有深入的思考過,想要對這個由教牢固的理解,首先得指導由賦值深拷貝淺拷貝這些概念。
    下面一一道來:
  • (1)賦值:
    相當於賦值引用,有點像C++中的引用,就是給了個別名而已,a和b其實還是指向同一個對象的:
    在這裏插入圖片描述

  • (2)深拷貝:a 和 b 完全拷貝了父對象及其子對象,兩者是完全獨立的。
    需要導入copy模塊:

import copy
a = {1:[1, 2, 3]}
b = copy.deepcopy(a)

在這裏插入圖片描述

  • (3)淺拷貝:a 和 b 是一個獨立的對象,但他們的子對象還是指向同一對象(是引用)。
a = {1:[1, 2, 3]}
c = a.copy()

在這裏插入圖片描述

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