python的表達式、語句和運算符
表達式:由一個或多個操作數以及0個或0個以上的運算符組成的序列就叫做表達式。
語句:語句是以分号(;)結尾的單行代碼或者是語句塊中一系列的單行語句。
python中常用的表達式操作符:
算術運算:
+、-
*、/、//、%
邏輯運算:
or、and、not
成員關系運算:
in、not in
對象執行個體測試:
is、not is
比較運算:
<、>、<=、>=、==、!=
位運算:
|、&、^、<<、>>
一進制運算:
-x、+x、~x
幂運算:
**
索引和分片:
x[i]、x[i:j]、x[I:j:stride]
調用:
x(...)
取屬性:
x.attribute
定義元組:(...)
定義清單:[...]
定義字典:{...}
三元選擇表達式:x if y else z
匿名函數表達式:lambda args: expression
生成器函數發送協定表達式:yield x
運算優先級從高到低排序:
(...) 、[...]、{...}
s[i]、s[i:j]:切片、索引
s.attribute:取屬性
s(...):函數調用
+x、-x、~x:一進制操作符
**:次方
*、/、//、%:乘、除、整除、取模
+、-:加、減
<<、>>:位移
&:按位與
^:按位異或
|:按位或
<、<=、>、>=、==、!=:比較操作符
is、not is:對象執行個體測試
in、not in:成員測試
not:取反
and:邏輯與
or:邏輯或
lambda:匿名函數
python中的常用語句有以下這些:
指派語句:a = 'abc'。python會在首次給變量指派時建立變量名并建立對象引用。變量名在引用前必須事先指派,否則将觸發異常。
調用語句
列印語句:print
條件判斷語句:if/elif/else
序列疊代語句:for/else
普通循環語句:while/else
占位符:pass
中斷語句:break
提前進入下一輪循環:continue
定義函數:def
傳回值語句:return
生成器函數語句:yield
命名空間:global
觸發異常:raise
子產品導入:import
子產品屬性通路:from
定義類:class
捕捉異常:try/except/finally
删除引用語句:del
斷言語句(調試檢查):assert
環境管理器:with/as
指派語句:
隐式指派:import、from、def、class、for、函數參數
分解指派:當指派符号(=)的左側為元組或清單時,python會按照位置把右邊的對象和左邊的目标自左而右逐一進行配對。個數不同時會觸發異常,此時可以以切片的方式進行。
<code>In [</code><code>1</code><code>]: list1 </code><code>=</code> <code>(</code><code>'Sun'</code><code>,</code><code>'Mon'</code><code>,</code><code>'Tue'</code><code>)</code>
<code>In [</code><code>2</code><code>]: x,y,z </code><code>=</code> <code>list1</code>
<code>In [</code><code>3</code><code>]: </code><code>print</code> <code>x</code>
<code>Sun</code>
<code>In [</code><code>4</code><code>]: </code><code>print</code> <code>y</code>
<code>Mon</code>
<code>In [</code><code>5</code><code>]: </code><code>print</code> <code>z</code>
<code>Tue</code>
多重目标指派:将多個變量名引用同一個對象
<code> </code><code>num1 </code><code>=</code> <code>num2 </code><code>=</code> <code>num3 </code><code>=</code> <code>44</code>
增強指派:+=、-=、*=、/=、//=、%=
python流程控制之if條件測試語句:
python的比較操作:所有的python對象都支援比較操作
可用于測試相等性、相對大小等;
如果是複合對象,python會檢查其所有部分,包括自動周遊各級嵌套對象,直到可以得出最終結果
測試操作符:
"=="操作符測試值的相等性;
"is"操作符測試對象的一緻性
python中不同類型的比較方法:
數字:通過相對大小進行比較
字元串:按照字典(ASCII)次序逐字元進行比較
清單和元組:自左至右比較各部分内容
字典:對排序後的(鍵、值)清單進行比較
python中真和假的含義:
非零數字為真,否則為假;
非空對象為真,否則為假;
None則始終為假;
比較和相等測試會遞歸地應用于資料結構中,傳回值為True或False
組合條件測試:
and
or
not:傳回True或False
注意:python中,and和or運算會傳回真或假的對象,而不是True或False。對象在本質上不是"真",就是"假"。
and和or是短路操作符
三元表達式:
<code>expression1 </code><code>if</code> <code>boolean_expression </code><code>else</code> <code>expression2</code>
例: a = x if y else z,這一句的意思是如果y條件成立,則a =x,否則a = z
python流程控制之while和for循環:
循環機制及應用場景:
while循環:
用于編寫通用疊代結構(非周遊);
頂端測試為真即會執行循環體,并會重複多次測試直到為假後執行循環後的其它語句
for循環:
一個通用的序列疊代器,用于周遊任何有序的序列對象内的元素;
可用于字元串、元組、清單和其它的内置可疊代對象,以及通過類所建立的新對象
文法格式:
<code>for</code> <code>expression </code><code>in</code> <code>iterable:</code>
<code> </code><code>for_suite</code>
<code>else</code><code>:</code>
<code> </code><code>else_suite</code>
通常,expression或是一個單獨的變量,或是一個變量序列,一般以元組的形式給出。如果以元組或清單用于expression,則其中的每個資料項都會拆分到表達式的項,例如:
<code>In [</code><code>7</code><code>]: T</code><code>=</code><code>[(</code><code>1</code><code>,</code><code>2</code><code>),(</code><code>3</code><code>,</code><code>4</code><code>),(</code><code>5</code><code>,</code><code>6</code><code>),(</code><code>7</code><code>,</code><code>8</code><code>)]</code>
<code>In [</code><code>8</code><code>]: </code><code>for</code> <code>(a,b) </code><code>in</code> <code>T:</code>
<code> </code><code>...: </code><code>print</code> <code>a,b</code>
<code> </code><code>...: </code>
<code>1</code> <code>2</code>
<code>3</code> <code>4</code>
<code>5</code> <code>6</code>
<code>7</code> <code>8</code>
for循環比while循環執行速度快。
python提供了兩個内置函數,用于在for循環中定制特殊的循環:
range或xrange:
range:一次性地傳回連續的整數清單
xrange:一次産生一個資料元素,相較于range更節約空間
zip:傳回并行的元素元組的清單,常用于在for循環中周遊數個序列
取得一個或多個序列為參數,将給定序列中的并排的元素配成元組,傳回這些元組的清單。當參數長度不同時,zip會以最短序列的長度為準。
zip還可用于構造字典
python也提供了一些能夠進行隐性疊代的工具:
in成員關系測試;
清單解析;
map、reduce和filter函數
break:跳出最内層的循環
continue:跳到所處的最近層循環的開始處,也就是提前進入下一輪循環,continue後面的語句将不會執行
else代碼塊:循環正常終止才會執行else代碼塊,如果循環終止是由break跳出導緻的,則else代碼塊不會執行
pass:點位語句。當文法需要語句但還沒有任何實用語句可寫時使用
while循環練習
練習1:逐一顯示指定清單中的所有元素
練習2:求100以内所有偶數之和
練習3:逐一顯示指定字典的所有鍵,并于顯示結束後說明總鍵數
練習4:建立一個包含了100以内所有奇數的清單
練習5:逆序逐一顯示一個清單的所有元素
練習6:清單l1=[0,1,2,3,4,5,6],清單l2=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],以第一個清單中的元素為鍵,以第二個清單中的元素為值生成字典d1
for循環練習
練習1:逐一分開顯示指定字典d1中的所有元素,類似如下
k1 v1
k2 v2
...
練習2:逐一顯示清單l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']中的索引為奇數的元素
練習3:将屬于清單l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],但不屬于清單l2=['Sun','Mon','Tue','Thu','Sat']的所有元素定義為一個新清單l3
練習4:已知清單namelist=['stu1','stu2','stu3','stu4','stu5','stu6','stu7'],删除清單removelist=['stu3','stu7','stu9']。請将屬于removelist中的每個元素從namelist中移除(屬于removelist,但不屬于namelist的忽略即可)
本文轉自 忘情OK 51CTO部落格,原文連結:http://blog.51cto.com/itchentao/1887641,如需轉載請自行聯系原作者