Python3 菜鳥教程 筆記1

2021-09-28 16:22:05 字數 4169 閱讀 4046

菜鳥教程傳送門 

環境:windows + python-3.7.4

$ 檢視python版本

python -v ,注意:大寫的v

例如以下是 helloworld.py 的內容

1)執行 python helloworld.py , "#!/usr/bin/python3" 被忽略,相當於注釋

2)執行 ./helloworld.py , "#!/usr/bin/python3"  指定直譯器的路徑

#!/usr/bin/python3

print("hello, world!")

$ 檢視python保留字

>>> import keyword

>>> keyword.kwlist

$ 多行語句 -> 行末用反斜槓(\),注意: , {}, 或 () 中的多行語句,不需要使用反斜槓(\)

$ 同一行中使用多條語句 -> 語句之間使用分號(;)分割

$ 不換行輸出

print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上 end="":

[例]>>> print("good");print("evening")

good

evening

>>> print("good",end="");print("evening",end="")

goodevening

>>> 

$ import 與 from...import

1)將整個模組匯入,例如:import time,在引用時格式為:time.sleep(5)

2)將整個模組中全部函式匯入,例如:from time import *,在引用時格式為:sleep(5)

3)將模組中特定函式匯入,例如:from time import sleep,在引用時格式為:sleep(5)

4)將模組換個別名,例如:import time as abc,在引用時格式為:abc.sleep(5)

$ python3 的六個標準資料型別

不可變資料(3 個):number(數字)、string(字串)、tuple(元組)

可變資料(3 個):list(列表)、dictionary(字典)、set(集合)

$ 變數的物件型別

>>> a, b, c, d = 20, 5.5, true, 4+3j

>>> print(type(a), type(b), type(c), type(d))

還可以用 isinstance 來判斷:

>>> isinstance('aaa',str)

true

>>>

注意:isinstance 和 type 的區別  -> type()不會認為子類是一種父類型別; isinstance()會認為子類是一種父類型別。

$ 列表切片實現 翻轉字串

將下文儲存為test.py,執行得到輸出  honey and bee

def reversewords(input):

# 通過空格將字串分隔符,把各個單詞分隔為列表

inputwords = input.split(" ")

# 翻轉字串

# inputwords[-1::-1] 第乙個引數 -1 表示最後乙個元素;第二個引數為空,表示移動到列表末尾;第三個引數為步長,-1 表示逆向

inputwords=inputwords[-1::-1]

# 重新組合字串,以空格分隔

output = ' '.join(inputwords)

return output

if __name__ == "__main__":

input = 'bee and honey'

rw = reversewords(input)

print(rw)

$ 構造包含0個或1個元素的元組

tup1 = ()    # 空元組

tup2 = (2,) # 乙個元素,需要在元素後新增逗號

$ 集合

可以使用大括號 {} 或者 set() 函式建立集合(可接收字串、元組、列表)

注意:建立乙個空集合必須用 set() 而不是 {},因為 {} 是用來建立乙個空字典。

>>> a=set('today is thursday.')       #字串

>>> b=set(('today','is','thursday'))      #元組

>>> c=set(['today','is','thursday'])       #列表

>>> a

>>> b

>>> c

>>> 

$ 建構函式 dict() 構建字典

[例] 1)

>>> dict([('mon',1),('tue',2),('wed',3)])

注意:鍵值對用元組,以下列表/元組 包列表也可以,但是 集合包列表就不可以(集合中的元素必須是不可變型別)

>>> dict1=dict([[1,111],[2,222]])

>>> dict1

>>> dict2=dict()

traceback (most recent call last):

file "", line 1, in

dict2=dict()

typeerror: unhashable type: 'list'

>>> dict3=dict(([1,111],[2,222]))

>>> dict3

>>> 

2)>>> dict(jan=1,feb=2,mar=3)

3)>>>

建立空字典使用 。

$ 遍歷字典

1)遍歷字典的鍵:

>>> def printkey(dict):  # dict 是乙個字典物件

for k in dict:

print(k)

>>> dict1=dict([('a',1),('b',1)])

>>> printkey(dict1)ab

>>> 

2)遍歷字典的鍵值:

>>> for k in dict1:

print(k,':',dict1[k])

a : 1

b : 1

>>> 

>>> for k in dict1:

print(k,end=':')

print(dict1[k])

a:1b:1

>>>

>>> for k,v in dict1.items():

print(k,':',v)

a : 1

b : 1

>>> 

$ python成員運算子

運算子描述

例項in

如果在指定的序列中找到值返回 true,否則返回 false

1在 [1, 2, 3, 4, 5 ] 中,返回 true

not in

如果在指定的序列中沒有找到值返回 true,否則返回 false

6不在 [1, 2, 3, 4, 5 ] 中,返回 false

$ python身份運算子

運算子描述

例項is

is 是判斷兩個識別符號是不是引用自乙個物件

x is y, 類似id(x) == id(y), 如果引用的是同乙個物件則返回 true,否則返回 false

>>> a=1

>>> b=1

>>> a is b

true

>>> a=[1,2]

>>> b=[1,2]

>>> a is b

false

is not

is not 是判斷兩個識別符號是不是引用自不同物件

x is not y, 類似id(a) != id(b)。如果引用的不是同乙個物件則返回結果 true,否則返回 false。

>>> a = (1,2,3)

>>> b = a[:]

>>> b is not a

false

>>> 

>>> a = [1,2,3]

>>> b = a[:]

>>> b is not a

true

>>> 

python 菜鳥 Python3 教程

python 3 教程 python 的 3.0 版本,常被稱為 python 3000,或簡稱 py3k。相對於 python 的早期版本,這是乙個較大的公升級。為了不帶入過多的累贅,python 3.0 在設計的時候沒有考慮向下相容。python 介紹及安裝教程我們在python 2.x 版本的...

python3菜鳥教程pdf Python3 集合

本課一句話通俗話總結函式 新增元素 setx.add string tuple bool number void setx.update y z.void y z 為 list tuple dict setx.clear void setx.copy set 深拷貝 指向新的記憶體位址 刪除元素 s...

裝飾器python3菜鳥教程 Python 裝飾器

首先 需求來了 有如下幾個封裝好的函式供呼叫 現在需要在每個函式執行前進行日誌記錄 第乙個方案 修改每個函式,新增日誌記錄的 但這樣顯然不太好,存在大量的重複 可以將重複 封裝為乙個方法 第二個方案 這樣的確是比第乙個方案好多了,但是不符合開閉原則,即現有的 不要去修改,而在基礎的功能上進行二次開發...