python 中的字串轉義序列、字串格式化、操作符、關鍵字總結
1.字串轉義序列
轉義字元 | 描述 |
---|---|
\(在行尾時) | 續行符 |
\\ | 反斜槓符號 |
\' | 單引號 |
\" | 雙引號 |
\a | 響鈴 |
\b | 退格(Backspace) |
\e | 轉義 |
\000 | 空 |
\n | 換行 |
\v | 縱向製表符 |
\t | 橫向製表符 |
\r | 回車 |
\f | 換頁 |
\oyy |
八進位制數yy代表的字元,例如:\o12代表換行 |
\xyy | 十進位制數yy代表的字元,例如:\x0a代表換行 |
\other | 其它的字元以普通格式輸出 |
2.字串格式化
3.操作符
一、算術運算子
注意:
雙斜槓 // 除法總是向下取整。
從符點數到整數的轉換可能會舍入也可能截斷,建議使用math.floor()和math.ceil()明確定義的轉換。
Python定義pow(0, 0)和0 ** 0等於1。
二、比較運算子
運算子 | 描述 |
---|---|
< | 小於 |
<= | 小於或等於 |
> | 大於 |
>= | 大於或等於 |
== | 等於 |
!= | 不等於 |
is | 判斷兩個識別符號是不是引用自一個物件 |
is not | 判斷兩個識別符號是不是引用自不同物件 |
注意:
八個比較運算子優先順序相同。
Python允許x < y <= z這樣的鏈式比較,它相當於x < y and y <= z。
複數不能進行大小比較,只能比較是否相等。
三、邏輯運算子
運算子 | 描述 | 備註 |
---|---|---|
x or y | if x is false, then y |
|
x andy | if x is false, then x, elsey | |
not x | if x is false, then True,elseFalse |
注意:
or是個短路運算子,它只有在第一個運算數為False時才會計算第二個運算數的值。
and也是個短路運算子,它只有在第一個運算數為True時才會計算第二個運算數的值。
not的優先順序比其他型別的運算子低,所以not a == b相當於not (a == b),而 a == not b是錯誤的。
四、位運算子
運算子 | 描述 | 備註 |
---|---|---|
x | y | 按位或運算子 | |
x ^ y | 按位異或運算子 | |
x & y | 按位與運算子 | |
x << n | 左移動運算子 | |
x >> n | 右移動運算子 | |
~x | 按位取反運算子 |
五、賦值運算子
複合賦值運算子與算術運算子是一一對應的:
六、成員運算子
Python提供了成員運算子,測試一個元素是否在一個序列(Sequence)中。
運算子 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回True,否則返回False。 |
not in | 如果在指定的序列中沒有找到值返回True,否則返回False。 |
4.關鍵字總結
Python中的關鍵字包括如下:
and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try
你想看看有哪些關鍵字?OK,開啟一個終端,就像這樣~
[email protected]:~$ python
Python 2.7.3 (default, Jan 2 2013, 16:53:07)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyword
>>> keyword.kwlist
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>>
============================== 華麗的 正文分隔符 ========================================
看到這些關鍵字你還能記得多少?你不妨自己一個一個對照想想它的用法,下面是我總結的,我根據前面的學習筆記將上述關鍵字分為以下幾類:
1.判斷、迴圈
對於Python的迴圈及判斷主要包括這些關鍵字:
if elif else for while break continue and or is not in
這幾個關鍵字在前面介紹 if 語法、while語法、for語法以及and...or語法中已有介紹,下面再一筆帶過:
1.1 if 語法
if語法與C語言、shell指令碼之下的非常類似,最大的區別就是冒號以及嚴格的縮排,當然這兩點也是Python區別於其他語言的地方:
if condition1:
do something
elif condition2:
do another thing
else:
also do something
1.2 while 語法
Python的while語法區別於C、shell下的while除了冒號及縮排之外,還有一點就是while可以攜帶一個可選的else語句:
while condition:
do something
else:
do something
注:else語句是可選的,但是使用while語句時一定要注意判斷語句可以跳出!
1.3 for 語法
與while類似,Python的for迴圈也包括一個可選的else語句(跳出for迴圈時執行,但是如果是從break語句跳出則不執行else語句塊中的程式碼!),而且for 加上 關鍵字in就組成了最常見的列表解析用法(以後會寫個專門的部落格)。
下面是for的一般用法:
for i in range(1,10,2):
do something
if condition:
break
else:
do something
for的列表解析用法:
for items in list:
print items
1.4 and...or 語法
Python的and/or操作與其他語言不同的是它的返回值是參與判斷的兩個值之一,所以我們可以通過這個特性來實現Python下的 a ? b : c !
有C語言基礎的知道 “ a ? b : c ! ” 語法是判斷 a,如果正確則執行b,否則執行 c!
而Python下我們可以這麼用:“ a and b or c ”(此方法中必須保證b必須是True值),python自左向右執行此句,先判斷a and b :如果a是True值,a and b語句仍需要執行b,而此時b是True值!所以a and b的值是b,而此時a and b or c就變成了b or c,因b是True值,所以b or c的結果也是b;如果a是False值,a and b語句的結果就是a,此時 a and b or c就轉化為a or c,因為此時a是 False值,所以不管c是True 還是Flase,a or c的結果就是c!!!捋通邏輯的話,a and b or c 是不是就是Python下的a ? b : c ! 用法?
1.5 is ,not
is 和 is not 是Python下判斷同一性的關鍵字,通常用來判斷 是 True 、False或者None(Python下的NULL)!
比如 if alue is True : ...
(不記得本節的童鞋罰複習:python 學習筆記 2 -- 判斷語句)
2.函式、模組、類
對於Python的函式及模組主要包括這些關鍵字:
from import as def pass lambda return class
那麼你還能記得它們麼?下面簡單介紹一下:
2.1 模組
Python的程式設計通常大量使用標準庫中的模組,使用方法就是使用import 、from以及as 關鍵字。
比如: import sys # 匯入sys模組
from sys import argv # 從sys模組中匯入argv ,這個在前面介紹指令碼傳引數時使用到
import cPickle as p # 將cPickle模組匯入並在此將它簡單命名為p,此後直接可以使用p替代cPickle模組原名,這個在介紹檔案輸入輸出時的儲存器中使用到
2.2 函式
Python中定義函式時使用到def關鍵字,如果你當前不想寫入真實的函式操作,可以使用pass關鍵字指代不做任何操作:
def JustAFunction:
pass
當然,在需要給函式返回值時就用到了return關鍵字,這裡簡單提一下Python下的函式返回值可以是多個(接收返回值時用相應數量的變數接收!)!
此外Python下有個神奇的Lambda函式,它允許你定義單行的最小函式,這是從Lisp中借用來的,可以用在任何需要函式的地方。比如:
g = lambda x : x*2 # 定義一個Lambda函式用來計算引數的2倍並返回!
print g(2) # 使用時使用lambda函式返回的變數作為這個函式的函式名,括號中帶入相應引數即可!
(不記得本節的童鞋罰複習:python 學習筆記 4 -- 函式篇)
3.異常
對於Python的異常主要包括這些關鍵字:
try except finally raise
異常這一節還是比較簡單的,將可能出現的異常放在 try: 後面的語句塊中,使用except關鍵字捕獲一定的異常並在接下來的語句塊中做相應操作,而finally中接的是無論出現什麼異常總在執行最後做finally: 後面的語句塊(比如關閉檔案等必要的操作!)
raise關鍵字是在一定的情況下引發異常,通常結合自定義的異常型別使用。
(不記得本節的童鞋罰複習:python 學習筆記 6 -- 異常處理)
4.其他
上面的三類過後,還剩下這些關鍵字:
print del global with assert yield exec
首先print 在前面的筆記或者任何地方你都能見到,所以還是比較熟悉的,此處就不多介紹了!
del 關鍵字在前面的筆記中已有所涉及,比如刪除列表中的某項,我們使用 “ del mylist[0] ”
可能這些剩下來的關鍵字你比較陌生,所以下面來介紹一下:
4.1.global 關鍵字
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 。所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。
eg.
?1 2 3 4 5 6 7 8 9 10 11 |
#!/usr/bin/python
#
Filename: func_local.py
def
func(x):
print 'x
is' ,
x
x
= 2
print 'Changed
local x to' ,
x
x
= 50
func(x)
print
|