python快速上手

2021-09-26 04:40:57 字數 3147 閱讀 999

資料結構

淺拷貝和深拷貝加減

乘除乘方取餘取整+

-*/**

%//與c++等程式語言不同之處在於python不需要預先設定資料型別,根據運算自動給定資料型別,這一點與matlab相似。

>>> 3**2   # **2 表示2次方

""""

9""""

>>> 10/4 # 除法自動賦值float型別

"""2.5

""">>> 8//3

"""2

"""

定義

python的函式定義規則與c++不同,通常以def開頭,引數中的第一項必須為self

def add(self,a,b):

print('this is a add function')

c = a+b

print(c)

lambda

定義乙個簡單的函式,實現簡化**的功能。

fun = lambda x,y : x+y   #冒號前的x,y為自變數,冒號後x+y為具體運算。
map

把函式和引數繫結在一起。

def fun(x,y):

return (x+y)

>>> list(map(fun,[1],[2]))

"""[3]

元組

用小括號、或者無括號來表述,是一連串有順序的數字。

a_tuple = (12, 3, 5, 15 , 6)

another_tuple = 12, 3, 5, 15 , 6

列表

以中括號來命名

a_list = [12, 3, 67, 7, 82]
字典

如果說list是有順序地輸出輸入的話,那麼字典的存檔形式則是無需順序的,字典是乙個無序的容器。

在字典中,有key和 value兩種元素,每乙個key對應乙個value, key是名字, value是內容。數字和字串都可以當做key或者value, 在同乙個字典中, 並不需要所有的key或value有相同的形式。 這樣說, list 可以說是一種key為有序數列的字典。

字典還可以以更多樣的形式出現,例如字典的元素可以是乙個list,或者再是乙個列表,再或者是乙個function。索引需要的專案時,只需要正確指定對應的key就可以了。

a_list = [1,2,3,4,5,6,7,8]

d2 =

d3 =

print(a_list[0]) # 1

del d1['pear']

d1['b'] = 20

set:最主要的功能就是尋找乙個句子或者乙個 list 當中不同的元素.定義好乙個 set 之後我們還可以對其新增需要的元素, 使用 add就能新增某個元素. 但是不是每乙個東西都能新增, 比如乙個列表.清除乙個元素可以用 remove 或者 discard, 而清除全部可以用 clear.

char_list = ['a', 'b', 'c', 'c', 'd', 'd', 'd']

print(set(char_list))

"""

zip

zip函式接受任意多個(包括0個和1個)序列作為引數,合併後返回乙個tuple列表

a=[1,2,3]

b=[4,5,6]

ab=zip(a,b)

print(list(ab)) #需要加list來視覺化這個功能

"""[(1, 4), (2, 5), (3, 6)]

"""

python中,物件的賦值,拷貝(深/淺拷貝)之間是有差異的,如果使用的時候不注意,就可能產生意外的結果。

id乙個物件的id值在cpython直譯器裡就代表它在記憶體中的位址

物件的賦值

物件的賦值就是物件的引用。

a=[1,2,3]

b=aa[1]=5

print(id(a)==id(b))

"""true

"""print(a,b)

"""[1, 5, 3] [1, 5, 3]

"""

淺拷貝copy

當使用淺拷貝時,python只是拷貝了最外圍的物件本身,內部的元素都只是拷貝了乙個引用而已。

import copy

a=[1,2,3]

c=copy.copy(a) #拷貝了a的外圍物件本身,

print(id(a)==id(c)) #id 改變 為false

"""false

"""c[1]=22222 #此時,我去改變c的第二個值時,a不會被改變。

print(a,c)

"""[1, 2, 3] [1, 22222, 3] #a值不變,c的第二個值變了,這就是copy和『=』的不同

"""

深拷貝deepcopy

deepcopy對外圍和內部元素都進行了拷貝物件本身,而不是物件的引用。

#copy.copy()

a=[1,2,[3,4]] #第三個值為列表[3,4],即內部元素

d=copy.copy(a) #淺拷貝a中的[3,4]內部元素的引用,非內部元素物件的本身

print(id(a)==id(d))

"""false

"""print(id(a[2])==id(d[2]))

"""true

"""a[2][0]=3333 #改變a中內部原屬列表中的第乙個值

print(d) #這時d中的列表元素也會被改變

"""[1, 2, [3333, 4]]

"""#copy.deepcopy()

e=copy.deepcopy(a) #e為深拷貝了a

a[2][0]=333 #改變a中內部元素列表第乙個的值

print(e)

[1, 2, [3333, 4]] #因為時深拷貝,這時e中內部元素列表的值不會因為a中的值改變而改變

>>>

快速上手python

python真的是很火啊,而且功能很強大。但是寫c寫習慣了,看到沒括號的真的難受。昨天寫了點matlab,然後今天配置了vscode,發現寫c有點手生了,看來還是要多練習。打算自己學一學py,把基礎語法搞一下,其他以後再說。for i in range a,b i從a到b的迴圈 執行語句while ...

Python快速上手(三)

這一節總結一下python在編碼當中的一些需要注意的地方 一.常用 1.print語句 在螢幕上橫向輸出指定的字元,如 print hello world 在互動式環境當中 是提示符,不是 的一部分。多個語句可以用逗號 隔開。如 print hello world 2.if語句 age 20 注意 ...

Python快速上手JSON指南

什麼是json?網上對json有很多教程,有各種各樣的解釋。一言以蔽之,json本質上是一種語法,這種語法的作用是把資料以字串的形式儲存 傳遞,多用於web程式設計。json的典型示例 以上面的典型示例為例子,employees 為key,後面的由3個字典組成的列表就為value.這就構成了乙份js...