784
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 \xe4\xb8\xad\xe6\x96\x87
>>> 中文 .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源自:https://www.jianshu.com/p/a560ff58d007
聲明: 文章著作權歸作者所有,如有侵權,請聯係小編刪除。
關注+轉發感謝大家
最後更新:2017-10-12 13:11:55