1. 程式人生 > 其它 >【python教程】1、基礎知識、序列操作

【python教程】1、基礎知識、序列操作

一、基礎知識

1、數和表示式

算術運算子:+、-、*、/(結果為浮點數)、//(整除,向下圓整)、%、**(乘方/求冪)

進位制的字首:二進位制(0b)、八進位制(0o)、十六進位制(0x)

2、變數:只能有字母、數字和下劃線組成,且不能以數字開頭。使用變數前必須給它賦值。

3、模組:可將模組視為擴充套件,通過將其匯入可以擴充套件python功能。

4、字串

1.符號:

' ' 、" "、 轉義字元\、長字串""" """、原始字串 r(引號需要轉義,不能以單個反斜槓結尾)。

長字串、原始字串:用於表示包含換行符或反斜槓的字串。

常規字串要橫跨多行時,只需在行尾加上反斜槓。

2.拼接字串:'a'+'b'。

3.字串表示 str 和 repr:

>>> print(str('hello!\nworld'))  # 使用str,能以合理的方式將值轉換為使用者能看懂的字串
Hello,
world
>>> print(repr('hello!\nworld'))  # 使用repr,會獲得值的合法python表示式表示
'hello!\nworld'

5、unicode、bytes 和 bytearray

在python3中,所有的字串都是Unicode字串。python 字串使用 unicode 編碼來表示文字。

每個unicode字元都用一個碼點表示,碼點是unicode標準給每個字元指定的數字。這讓你能夠以任何現在軟體都能識別的方式表示129個文字系統中的12萬個以上的字元。

Unicode的理念很簡單,但卻存在編碼問題。在記憶體和磁碟中,所有物件都是以二進位制數字表示的(每8個一組-位元組),字串就是位元組序列。

在諸如c等程式語言中,位元組完全暴露。為與 C 語言互操作以及將文字寫入檔案或通過網路套接字傳送出去,python 提供兩種類似的型別:不可變的 bytes 和可變的 bytearray 。

6、print

# 自定義分隔符'_'
print('I', 'am', 'amy', sep='_')  # 列印:I_am_amy
# 自定義結束字串,以替換預設的換行符
print('Hello,', end='')
print('world!')  # 列印'Hello,world!'

7、賦值

# 1、序列解包(可迭代物件解包):將一個序列解包,並將得到的值儲存到一系列變數中
x, y, z = 1, 2, 3  # 要解包的序列中的元素個數必須與左邊的目標個數相同
x, y = y, x  # 交換多個變數的值
a, b, *rest = [1, 2, 3, 4]  # 使用*號來收集多餘的值,rest=[3, 4]
a, *b, c = 'abcd'  # 賦值語句的右邊可以是任何型別的序列,但帶*號的變數最終包含的總是一個列表。b=['b', 'c']

# 2、鏈式賦值:是一種快捷方式,用於將多個變數關聯到同一個值
x = y = 1  # 等價於y = 1; x = y

# 3、增強賦值:不寫程式碼x = x + 1,將右邊表示式中的運算子移到賦值運算子的前面,寫成x += 1。適用於所有標準運算子:*、/、%。

8、布林值

假:標準值False和None,各種型別(浮點數、複數)的數值0、空序列(空字串/元組/列表)和空對映

真:其他各種值

布林值 True 和 False 屬於型別bool,bool與list、str、tuple一樣,可用來轉換其他值。

注意:[]和''都為假( bool([]) == bool('') ),但 [] != ''。

二、通用的序列操作

資料結構:是以某種方式(通過編號)組合起來的資料元素集合。在python中,最基本的資料結構是序列。序列中的每個元素都有索引,如列表、元組、字串。

python支援一種資料結構的基本概念,名為容器。容器基本上就是可包含其他物件的物件。兩種主要的容器是序列(列表、元組)和對映(字典)。還有一種是集合(set)。

1、索引:序列中的所有元素都有編號,從0開始遞增。使用索引訪問單個元素,可以使用負數索引。

2、切片:訪問特定範圍內的元素。提供兩個索引指定切片的邊界,第一個索引指定的元素在切片內,第二個不在。

a = [1, 2, 3, 4, 5]
print(a[2:-1])  # 1、負數索引,不能包含最後一個元素
print(a[2:0])  # 2、使用索引0,結果為[]。如果第一個索引指定的元素在第二個後面,結果就為空序列
print(a[:2])  # 3、切片始於序列開頭,可省略第一個索引
print(a[])  # 4、複製整個序列,可將兩個索引都省略

3、序列相加:不能拼接不同型別的序列

print([1,2]+[3,4]) # 結果為[1,2,3,4]
print('hello, '+'world!')

4、乘法

print('an'*5)  # 字串相乘
print([1,2]*3)  # 列表相乘,結果為[1,2,1,2,1,2]
print([None]*5)  # 結果為[None,None,None,None,None]

5、in 運算子:檢查特定的物件是否在序列中(只能用於檢查單個字元)

6、長度 len()、最大值 max()、最小值min()