當前位置:
首頁 > 知識 > Python必學基礎概念

Python必學基礎概念

自然語言在不同的語境下有不同的理解,而計算機要根據編程語言執行任務,就必須保證編程語言寫出的程序決不能有歧義

是注釋,其他每一行都是一個語句,當語句以冒號「:」結尾時,縮進的語句視為代碼塊。

Python程序是大小寫敏感的

縮進的壞處就是「複製-粘貼」功能失效了,這是最坑爹的地方。

數據類型和變數

字元串可以用單引號或雙引號

字元串內部既包含又包含用轉義字元來標識

用表示內部的字元串默認不轉義

多行字元串

布爾值:

空值

Python沒有常量, 只是習慣上用全部大寫的變數名來表示「常量」

除法計算結果是浮點數,即使是兩個整數恰好整除

稱為地板除,兩個整數的除法仍然是整數(去掉小數部分)

字元編碼

ASCII : 127個字元

Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了

UTF-8編碼把Unicode編碼轉化為「可變長編碼」的。

UTF-8編碼把一個Unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文字母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。

在計算機內存中,統一使用Unicode編碼,當需要保存到硬碟或者需要傳輸的時候,就轉換為UTF-8編碼。

用記事本編輯的時候,從文件讀取的UTF-8字元被轉換為Unicode字元到內存里,編輯完成後,保存的時候再把Unicode轉換為UTF-8保存到文件:

瀏覽網頁的時候,伺服器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器:

Python的字元串

Python 3版本中,字元串是以Unicode編碼的。

函數獲取字元的整數表示,函數把編碼轉換為對應的字元:

十六進位的字元串

由於Python的字元串類型是,在內存中以Unicode表示,一個字元對應若干個位元組。如果要在網路上傳輸,或者保存到磁碟上,就需要把str變為以位元組為單位的。

bytes類型的數據表示:

以Unicode表示的通過方法可以編碼為指定的 :

>>> 中文 .encode( utf-8 )

b xe4xb8xadxe6x96x87

>>> 中文 .encode( ascii )

Traceback (most recent call last):

File "", line 1, in

UnicodeEncodeError: ascii codec can t encode characters in position 0-1: ordinal not in range(128)

純英文的str可以用ASCII編碼為bytes,內容是一樣的,含有中文的str可以用UTF-8編碼為bytes。含有中文的str無法用ASCII編碼,因為中文編碼的範圍超過了ASCII編碼的範圍,Python會報錯。

在中,無法顯示為ASCII字元的位元組,用顯示。

把bytes變為str,就需要用decode()方法:

函數計算的是的字元數,如果換成,函數就計算位元組數:

為了避免亂碼問題,應當始終堅持使用UTF-8編碼對str和bytes進行轉換。

由於Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。

格式化

使用list和tuple

list是一種有序的集合,裡面的元素的數據類型可以不同

classmates.insert(1, Jack )

classmates.pop() # 刪除list末尾的元素

classmates.pop(1) # 刪除指定位置的元素

classmates[1] = Sarah

tuple和list非常類似,但是tuple一旦初始化就不能修改

能用tuple代替list就盡量用tuple

只有1個元素的tuple定義時必須加一個逗號,,來消除歧義

在tuple中放入list,這樣看上去就能修改tuple

條件判斷

else:

print( your age is , age)

print( teenager )

if age >= 18:

print( adult )

elif age >= 6:

print( teenager )

else:

print( kid )

循環

: 把每個元素代入變數x,然後執行縮進塊的語句。

語句,跳過當前的這次循環,直接開始下一次循環。

使用dict和set

dict

和list比較,dict有以下幾個特點:

查找和插入的速度極快,不會隨著key的增加而增加;

需要佔用大量的內存,內存浪費多。

dict的key必須是不可變對象。

set(數學意義上的無序和無重複元素的集合)和dict類似,也是一組key的集合,但不存儲value。由於key不能重複,所以,在set中,沒有重複的key。

>>> s.remove(4)

>>> s

對於不變對象來說,調用對象自身的任意方法,也不會改變該對象自身的內容。相反,這些方法會創建新的對象並返回,這樣,就保證了不可變對象本身永遠是不可變的。

作者:Andy_Ron源自:http://www.jianshu.com/p/a560ff58d007

聲明: 文章著作權歸作者所有,如有侵權,請聯繫小編刪除。

關注+轉發感謝大家

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 python 的精彩文章:

python最牛web框架居然是「它」
十張圖讀懂 PHP、Python、Ruby 三大語言的差異
為啥我的Python這麼慢(一)
盛思PythonEditor離線版升級microbit模擬功能!
Python批量修改Excel文件格式:加粗、顏色交替、漸變背景色填充

TAG:python |