Python語法

來自ALSROBOT WiKi
2016年6月15日 (三) 16:30Arduino77討論 | 貢獻(xiàn)的版本

跳轉(zhuǎn)至: 導(dǎo)航搜索

Python 是一個高層次的結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言。
Python 的設(shè)計具有很強(qiáng)的可讀性,相比其他語言經(jīng)常使用英文關(guān)鍵字,其他語言的一些標(biāo)點(diǎn)符號,它具有比其他語言更有特色語法結(jié)構(gòu)。
Python 是一種解釋型語言: 這意味著開發(fā)過程中沒有了編譯這個環(huán)節(jié)。類似于PHP和Perl語言。
Python 是交互式語言: 這意味著,您可以在一個Python提示符,直接互動執(zhí)行寫你的程序。
Python 是面向?qū)ο笳Z言: 這意味著Python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對象的編程技術(shù)。
Python 是初學(xué)者的語言:Python 對初級程序員而言,是一種偉大的語言,它支持廣泛的應(yīng)用程序開發(fā),從簡單的文字處理到 WWW 瀏覽器再到游戲。

  1. 易于學(xué)習(xí):Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個明確定義的語法,學(xué)習(xí)起來更加簡單。
  2. 易于閱讀:Python代碼定義的更清晰。
  3. 易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
  4. 一個廣泛的標(biāo)準(zhǔn)庫:Python 的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在 UNIX,Windows 和 Macintosh 兼容很好。
  5. 互動模式:互動模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動的測試和調(diào)試代碼片斷。
  6. 可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。
  7. 可擴(kuò)展:如果你需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。
  8. 數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
  9. GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
  10. 可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。


  • Raspberry Pi 的編程主要是使用 Python 語言,在Raspberry Pi系統(tǒng)升級過程中,系統(tǒng)中的Python編譯器也做出相應(yīng)的升級,Raspberry Pi 還保持使用 2.7 版本的 Python 編譯器。
  • 系統(tǒng)版本:2015 - 05 - 27 RASPBIAN JESSIE (系統(tǒng)下載地址:https://www.raspberrypi.org/downloads/raspbian/)
  • 系統(tǒng)自帶 Python 版本:Python2.7.9



Python 基礎(chǔ)語法教程

Python 基礎(chǔ)語法
Python 標(biāo)識符
Python 保留字符
行和縮進(jìn)
多行語句
Python 引號
Python注釋
Python空行
等待用戶輸入
同一行顯示多條語句
多個語句構(gòu)成代碼組
命令行參數(shù)
Python 變量類型
變量賦值
多個變量賦值
標(biāo)準(zhǔn)數(shù)據(jù)類型
Python數(shù)字
Python字符串
Python列表
Python元組
Python元字典
Python數(shù)據(jù)類型轉(zhuǎn)換
Python 運(yùn)算符
算術(shù)運(yùn)算符
比較(關(guān)系)運(yùn)算符
賦值運(yùn)算符
邏輯運(yùn)算符
位運(yùn)算符
成員運(yùn)算符
身份運(yùn)算符
運(yùn)算符優(yōu)先級
Python 語句
if 條件語句
While 循環(huán)語句
for 循環(huán)語句
Python 循環(huán)嵌套
break 語句
continue 語句
pass 語句
Python Number(數(shù)字)
Python 數(shù)據(jù)類型
Python Number 類型轉(zhuǎn)換
Python數(shù)學(xué)函數(shù)
Python隨機(jī)數(shù)函數(shù)
Python三角函數(shù)
Python數(shù)學(xué)常量
Python 字符串
Python訪問字符串中的值
Python字符串更新
Python轉(zhuǎn)義字符
Python字符串運(yùn)算符
Python字符串格式化
Python三引號
Python 列表
訪問列表中的值
更新列表
刪除列表元素
Python列表腳本操作符
Python列表截取
Python列表函數(shù)&方法
Python 元組
訪問元組
修改元組
刪除元組
元組運(yùn)算符
元組索引,截取
無關(guān)閉分隔符
元組內(nèi)置函數(shù)
Python 字典
訪問字典里的值
| 修改字典
刪除字典元素
字典鍵的特性
字典內(nèi)置函數(shù)&方法
Python 函數(shù)
定義一個函數(shù)
函數(shù)調(diào)用
按值傳遞參數(shù)和按引用傳遞參數(shù)
必備參數(shù)
關(guān)鍵字參數(shù)
缺省參數(shù)
不定長參數(shù)
匿名函數(shù)
return語句
全局變量和局部變量
return語句


Python 基礎(chǔ)語法

Python 標(biāo)識符

  • 在python里,標(biāo)識符有字母、數(shù)字、下劃線組成。
  • 在python中,所有標(biāo)識符可以包括英文、數(shù)字以及下劃線(_),但不能以數(shù)字開頭。
  • python中的標(biāo)識符是區(qū)分大小寫的。
  • 以下劃線開頭的標(biāo)識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進(jìn)行訪問,不能用"from xxx import *"而導(dǎo)入;
  • 以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(__foo__)代表python里特殊方法專用的標(biāo)識,如__init__()代表類的構(gòu)造函數(shù)。


Python 保留字符


下面的列表顯示了在Python中的保留字。這些保留字不能用作常數(shù)或變數(shù),或任何其他標(biāo)識符名稱。
所有Python的關(guān)鍵字只包含小寫字母。

Python01.png


行和縮進(jìn)


學(xué)習(xí)Python與其他語言最大的區(qū)別就是,Python的代碼塊不使用大括號({})來控制類,函數(shù)以及其他邏輯判斷。python最具特色的就是用縮進(jìn)來寫模塊。
縮進(jìn)的空白數(shù)量是可變的,但是所有代碼塊語句必須包含相同的縮進(jìn)空白數(shù)量,這個必須嚴(yán)格執(zhí)行。如下所示:

if True:
    print "True"
else:
  print "False"
  • 以下代碼將會執(zhí)行錯誤:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

 if True:
    print "Answer"
    print "True"
else:
    print "Answer"
    # 沒有嚴(yán)格縮進(jìn),在執(zhí)行時保持
  print "False"

執(zhí)行以上代碼,會出現(xiàn)如下錯誤提醒:

$ python test.py  
  File "test.py", line 5
    if True:
    ^
IndentationError: unexpected indent

IndentationError: unexpected indent 錯誤是python編譯器是在告訴你"Hi,老兄,你的文件里格式不對了,可能是tab和空格沒對齊的問題",所有python對格式要求非常嚴(yán)格。 如果是 IndentationError: unindent does not match any outer indentation level錯誤表明,你使用的縮進(jìn)方式不一致,有的是 tab 鍵縮進(jìn),有的是空格縮進(jìn),改為一致即可。
因此,在Python的代碼塊中必須使用相同數(shù)目的行首縮進(jìn)空格數(shù)。
建議你在每個縮進(jìn)層次使用 單個制表符 或 兩個空格 或 四個空格 , 切記不能混用

多行語句


Python語句中一般以新行作為為語句的結(jié)束符。
但是我們可以使用斜杠( \)將一行的語句分為多行顯示,如下所示:

total = item_one + \
        item_two + \
        item_three

語句中包含[], {} 或 () 括號就不需要使用多行連接符。如下實(shí)例:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']


Python 引號


Python 接收單引號(' ),雙引號(" ),三引號( """) 來表示字符串,引號的開始與結(jié)束必須的相同類型的。
其中三引號可以由多行組成,編寫多行文本的快捷語法,常用語文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。

word = 'word'
sentence = "這是一個句子。"
paragraph = """這是一個段落。包含了多個語句"""


Python 注釋


python中單行注釋采用 # 開頭。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

# 第一個注釋
print "Hello, Python!";  # 第二個注釋

python 中多行注釋使用三個單引號或三個雙引號。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py


'''
這是多行注釋,使用單引號。
這是多行注釋,使用單引號。
這是多行注釋,使用單引號。
'''

"""
這是多行注釋,使用雙引號。
這是多行注釋,使用雙引號。
這是多行注釋,使用雙引號。
"""


Python 空行


函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開始。
空行與代碼縮進(jìn)不同,空行并不是Python語法的一部分。書寫時不插入空行,Python解釋器運(yùn)行也不會出錯。但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護(hù)或重構(gòu)。
記?。嚎招幸彩浅绦虼a的一部分。

等待用戶輸入


下面的程序在按回車鍵后就會等待用戶輸入:

#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

以上代碼中 ,"\n\n"在結(jié)果輸出前會輸出兩個新的空行。一旦用戶按下鍵時,程序?qū)⑼顺?

同一行顯示多條語句


Python可以在同一行中使用多條語句,語句之間使用分號(;)分割,以下是一個簡單的實(shí)例:

#!/usr/bin/python

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

執(zhí)行以上代碼,輸入結(jié)果為:

$ python test.py
runoob


多個語句構(gòu)成代碼組

縮進(jìn)相同的一組語句構(gòu)成一個代碼塊,我們稱之代碼組。
像if、while、def和class這樣的復(fù)合語句,首行以關(guān)鍵字開始,以冒號( : )結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼組。
我們將首行及后面的代碼組稱為一個子句(clause)。
如下實(shí)例:

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 


命令行參數(shù)

很多程序可以執(zhí)行一些操作來查看一些基本信,Python可以使用-h參數(shù)查看各參數(shù)幫助信息:

$ python -h 
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... 
Options and arguments (and corresponding environment variables): 
-c cmd : program passed in as string (terminates option list) 
-d     : debug output from parser (also PYTHONDEBUG=x) 
-E     : ignore environment variables (such as PYTHONPATH) 
-h     : print this help message and exit 
 
[ etc. ] 


Python 變量類型

變量賦值

Python中的變量不需要聲明,變量的賦值操作既是變量聲明和定義的過程。
每個變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識,名稱和數(shù)據(jù)這些信息。
每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。
等號(=)用來給變量賦值。
等號(=)運(yùn)算符左邊是一個變量名,等號(=)運(yùn)算符右邊是存儲在變量中的值。例如:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
counter = 100 # 賦值整型變量
miles = 1000.0 # 浮點(diǎn)型
name = "John" # 字符串
print counter
print miles
print name


以上實(shí)例中,100,1000.0和"John"分別賦值給counter,miles,name變量。
執(zhí)行以上程序會輸出如下結(jié)果:

100
1000.0
John


多個變量賦值

Python允許你同時為多個變量賦值。例如:

a = b = c = 1


以上實(shí)例,創(chuàng)建一個整型對象,值為1,三個變量被分配到相同的內(nèi)存空間上。
您也可以為多個對象指定多個變量。例如:

a, b, c = 1, 2, "john"

以上實(shí)例,兩個整型對象1和2的分配給變量a和b,字符串對象"john"分配給變量c。

標(biāo)準(zhǔn)數(shù)據(jù)類型

在內(nèi)存中存儲的數(shù)據(jù)可以有多種類型。
例如,person.s年齡作為一個數(shù)值存儲和他或她的地址是字母數(shù)字字符存儲。
Python有一些標(biāo)準(zhǔn)類型用于定義操作上,他們和為他們每個人的存儲方法可能。
Python有五個標(biāo)準(zhǔn)的數(shù)據(jù)類型:

  • Numbers(數(shù)字)
  • String(字符串)
  • List(列表)
  • Tuple(元組)
  • Dictionary(字典)


Python數(shù)字

數(shù)字?jǐn)?shù)據(jù)類型用于存儲數(shù)值。
他們是不可改變的數(shù)據(jù)類型,這意味著改變數(shù)字?jǐn)?shù)據(jù)類型會分配一個新的對象。
當(dāng)你指定一個值時,Number對象就會被創(chuàng)建:

var1 = 1
var2 = 10


您也可以使用del語句刪除一些對象引用。
del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

您可以通過使用del語句刪除單個或多個對象。例如:

del var
del var_a, var_b
  • Python支持四種不同的數(shù)字類型:

1、int(有符號整型)
2、long(長整型[也可以代表八進(jìn)制和十六進(jìn)制])
3、float(浮點(diǎn)型)
4、complex(復(fù)數(shù))
注意:Python 支持復(fù)數(shù),復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型

Python字符串

字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。
一般記為 :

s="a1a2···an"(n>=0)

它是編程語言中表示文本的數(shù)據(jù)類型。 python的字串列表有2種取值順序:
從左到右索引默認(rèn)0開始的,最大范圍是字符串長度少1
從右到左索引默認(rèn)-1開始的,最大范圍是字符串開頭
如果你的實(shí)要取得一段子串的話,可以用到變量[頭下標(biāo):尾下標(biāo)],就可以截取相應(yīng)的字符串,其中下標(biāo)是從0開始算起,可以是正數(shù)或負(fù)數(shù),下標(biāo)可以為空表示取到頭或尾。
比如:

s = 'ilovepython'

s[1:5]的結(jié)果是love。
當(dāng)使用以冒號分隔的字符串,python返回一個新的對象,結(jié)果包含了以這對偏移標(biāo)識的連續(xù)的內(nèi)容,左邊的開始是包含了下邊界。
上面的結(jié)果包含了s[1]的值l,而取到的最大范圍不包括上邊界,就是s[5]的值p。
加號(+)是字符串連接運(yùn)算符,星號(*)是重復(fù)操作。如下實(shí)例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = 'Hello World!'
print str # 輸出完整字符串
print str[0] # 輸出字符串中的第一個字符
print str[2:5] # 輸出字符串中第三個至第五個之間的字符串
print str[2:] # 輸出從第三個字符開始的字符串
print str * 2 # 輸出字符串兩次
print str + "TEST" # 輸出連接的字符串

以上實(shí)例輸出結(jié)果:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

Python列表

List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。
列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(所謂嵌套)。
列表用[ ]標(biāo)識。是python最通用的復(fù)合數(shù)據(jù)類型??催@段代碼就明白。
列表中的值得分割也可以用到變量[頭下標(biāo):尾下標(biāo)],就可以截取相應(yīng)的列表,從左到右索引默認(rèn)0開始的,從右到左索引默認(rèn)-1開始,下標(biāo)可以為空表示取到頭或尾。
加號(+)是列表連接運(yùn)算符,星號(*)是重復(fù)操作。如下實(shí)例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list # 輸出完整列表
print list[0] # 輸出列表的第一個元素
print list[1:3] # 輸出第二個至第三個的元素 
print list[2:] # 輸出從第三個開始至列表末尾的所有元素
print tinylist * 2 # 輸出列表兩次
print list + tinylist # 打印組合的列表

以上實(shí)例輸出結(jié)果:

['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

Python元組

元組是另一個數(shù)據(jù)類型,類似于List(列表)。
元組用"()"標(biāo)識。內(nèi)部元素用逗號隔開。但是元組不能二次賦值,相當(dāng)于只讀列表。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')

print tuple # 輸出完整元組
print tuple[0] # 輸出元組的第一個元素
print tuple[1:3] # 輸出第二個至第三個的元素 
print tuple[2:] # 輸出從第三個開始至列表末尾的所有元素
print tinytuple * 2 # 輸出元組兩次
print tuple + tinytuple # 打印組合的元組

以上實(shí)例輸出結(jié)果:

('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

Python元字典

字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。列表是有序的對象結(jié)合,字典是無序的對象集合。
兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的,而不是通過偏移存取。
字典用"{ }"標(biāo)識。字典由索引(key)和它對應(yīng)的值value組成。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 輸出鍵為'one' 的值
print dict[2] # 輸出鍵為 2 的值
print tinydict # 輸出完整的字典
print tinydict.keys() # 輸出所有鍵
print tinydict.values() # 輸出所有值

以上實(shí)例輸出結(jié)果:

This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']

Python數(shù)據(jù)類型轉(zhuǎn)換

有時候,我們需要對數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,你只需要將數(shù)據(jù)類型作為函數(shù)名即可。
以下幾個內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉(zhuǎn)換。這些函數(shù)返回一個新的對象,表示轉(zhuǎn)換的值。

Python02.png

Python 運(yùn)算符

算術(shù)運(yùn)算符

以下假設(shè)變量a為10,變量b為20:

Python03.png

以下實(shí)例演示了Python所有算術(shù)運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c = a - b
print "2 - c 的值為:", c 
c = a * b
print "3 - c 的值為:", c 
c = a / b
print "4 - c 的值為:", c 
c = a % b
print "5 - c 的值為:", c
# 修改變量 a 、b 、c
a = 2
b = 3
c = a**b 
print "6 - c 的值為:", c
a = 10
b = 5
c = a//b 
print "7 - c 的值為:", c

以上實(shí)例輸出結(jié)果:

1 - c 的值為: 31
2 - c 的值為: 11
3 - c 的值為: 210
4 - c 的值為: 2
5 - c 的值為: 1
6 - c 的值為: 8
7 - c 的值為: 2

比較(關(guān)系)運(yùn)算符

以下假設(shè)變量a為10,變量b為20:

Python04.png

以下實(shí)例演示了Python所有比較運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
if ( a == b ):
   print "1 - a 等于 b"
else:
   print "1 - a 不等于 b"
if ( a != b ):
   print "2 - a 不等于 b"
else:
   print "2 - a 等于 b"
if ( a <> b ):
   print "3 - a 不等于 b"
else:
   print "3 - a 等于 b"
if ( a < b ):
   print "4 - a 小于 b" 
else:
   print "4 - a 大于等于 b"
if ( a > b ):
   print "5 - a 大于 b"
else:
   print "5 - a 小于等于 b"
# 修改變量 a 和 b 的值
a = 5;
b = 20;
if ( a <= b ):
   print "6 - a 小于等于 b"
else:
   print "6 - a 大于  b"
if ( b >= a ):
   print "7 - b 大于等于 b"
else:
   print "7 - b 小于 b"

以上實(shí)例輸出結(jié)果:

1 - a 不等于 b
2 - a 不等于 b
3 - a 不等于 b
4 - a 大于等于 b
5 - a 大于 b
6 - a 小于等于 b
7 - b 大于等于 b

賦值運(yùn)算符

以下假設(shè)變量a為10,變量b為20:

Python05.png

以下實(shí)例演示了Python所有賦值運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 21
b = 10
c = 0
c = a + b
print "1 - c 的值為:", c
c += a
print "2 - c 的值為:", c 
c *= a
print "3 - c 的值為:", c 
c /= a 
print "4 - c 的值為:", c 
c = 2
c %= a
print "5 - c 的值為:", c
c **= a
print "6 - c 的值為:", c
c //= a
print "7 - c 的值為:", c

以上實(shí)例輸出結(jié)果:

1 - c 的值為: 31
2 - c 的值為: 52
3 - c 的值為: 1092
4 - c 的值為: 52
5 - c 的值為: 2
6 - c 的值為: 2097152
7 - c 的值為: 99864

位運(yùn)算符

按位運(yùn)算符是把數(shù)字看作二進(jìn)制來進(jìn)行計算的。Python中的按位運(yùn)算法則如下:
下表中變量 a 為 60,b 為 13。

Python06.png

以下實(shí)例演示了Python所有位運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

a = 60            # 60 = 0011 1100 
b = 13            # 13 = 0000 1101 
c = 0

c = a & b;        # 12 = 0000 1100
print "1 - c 的值為:", c

c = a | b;        # 61 = 0011 1101 
print "2 - c 的值為:", c

c = a ^ b;        # 49 = 0011 0001
print "3 - c 的值為:", c

c = ~a;           # -61 = 1100 0011
print "4 - c 的值為:", c

c = a << 2;       # 240 = 1111 0000
print "5 - c 的值為:", c

c = a >> 2;       # 15 = 0000 1111
print "6 - c 的值為:", c

以上實(shí)例輸出結(jié)果:

1 - c 的值為: 12
2 - c 的值為: 61
3 - c 的值為: 49
4 - c 的值為: -61
5 - c 的值為: 240
6 - c 的值為: 15

邏輯運(yùn)算符

Python語言支持邏輯運(yùn)算符,以下假設(shè)變量 a 為 10, b為 20:

Python07.png

以下實(shí)例演示了Python所有邏輯運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 10
b = 20
if ( a and b ):
   print "1 - 變量 a 和 b 都為 true"
else:
   print "1 - 變量 a 和 b 有一個不為 true"
if ( a or b ):
   print "2 - 變量 a 和 b 都為 true,或其中一個變量為 true"
else:
   print "2 - 變量 a 和 b 都不為 true"
# 修改變量 a 的值
a = 0
if ( a and b ):
   print "3 - 變量 a 和 b 都為 true"
else:
   print "3 - 變量 a 和 b 有一個不為 true"

if ( a or b ):
   print "4 - 變量 a 和 b 都為 true,或其中一個變量為 true"
else:
   print "4 - 變量 a 和 b 都不為 true"
if not( a and b ):
   print "5 - 變量 a 和 b 都為 false,或其中一個變量為 false"
else:
   print "5 - 變量 a 和 b 都為 true"

以上實(shí)例輸出結(jié)果:

1 - 變量 a 和 b 都為 true
2 - 變量 a 和 b 都為 true,或其中一個變量為 true
3 - 變量 a 和 b 有一個不為 true
4 - 變量 a 和 b 都為 true,或其中一個變量為 true
5 - 變量 a 和 b 都為 false,或其中一個變量為 false

成員運(yùn)算符

除了以上的一些運(yùn)算符之外,Python還支持成員運(yùn)算符,測試實(shí)例中包含了一系列的成員,包括字符串,列表或元組。

Python08.png

以下實(shí)例演示了Python所有成員運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
   print "1 - 變量 a 在給定的列表中 list 中"
else:
   print "1 - 變量 a 不在給定的列表中 list 中"
if ( b not in list ):
   print "2 - 變量 b 不在給定的列表中 list 中"
else:
   print "2 - 變量 b 在給定的列表中 list 中"
# 修改變量 a 的值
a = 2
if ( a in list ):
   print "3 - 變量 a 在給定的列表中 list 中"
else:
   print "3 - 變量 a 不在給定的列表中 list 中"

以上實(shí)例輸出結(jié)果:

1 - 變量 a 不在給定的列表中 list 中
2 - 變量 b 不在給定的列表中 list 中
3 - 變量 a 在給定的列表中 list 中

身份運(yùn)算符

身份運(yùn)算符用于比較兩個對象的存儲單元。

Python09.png

以下實(shí)例演示了Python所有身份運(yùn)算符的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 20
b = 20

if ( a is b ):
   print "1 - a 和 b 有相同的標(biāo)識"
else:
   print "1 - a 和 b 沒有相同的標(biāo)識"

if ( id(a) == id(b) ):
   print "2 - a 和 b 有相同的標(biāo)識"
else:
   print "2 - a 和 b 沒有相同的標(biāo)識"

# 修改變量 b 的值
b = 30
if ( a is b ):
   print "3 - a 和 b 有相同的標(biāo)識"
else:
   print "3 - a 和 b 沒有相同的標(biāo)識"

if ( a is not b ):
   print "4 - a 和 b 沒有相同的標(biāo)識"
else:
   print "4 - a 和 b 有相同的標(biāo)識"

以上實(shí)例輸出結(jié)果:

1 - a 和 b 有相同的標(biāo)識
2 - a 和 b 有相同的標(biāo)識
3 - a 和 b 沒有相同的標(biāo)識
4 - a 和 b 沒有相同的標(biāo)識

運(yùn)算符優(yōu)先級

以下表格列出了從最高到最低優(yōu)先級的所有運(yùn)算符:

Python10.png

以下實(shí)例演示了Python所有運(yùn)算符優(yōu)先級的操作:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
a = 20
b = 10
c = 15
d = 5
e = 0

e = (a + b) * c / d       #( 30 * 15 ) / 5
print "(a + b) * c / d 運(yùn)算結(jié)果為:",  e

e = ((a + b) * c) / d     # (30 * 15 ) / 5
print "((a + b) * c) / d 運(yùn)算結(jié)果為:",  e

e = (a + b) * (c / d);    # (30) * (15/5)
print "(a + b) * (c / d) 運(yùn)算結(jié)果為:",  e

e = a + (b * c) / d;      #  20 + (150/5)
print "a + (b * c) / d 運(yùn)算結(jié)果為:",  e

以上實(shí)例輸出結(jié)果:

(a + b) * c / d 運(yùn)算結(jié)果為: 90
((a + b) * c) / d 運(yùn)算結(jié)果為: 90
(a + b) * (c / d) 運(yùn)算結(jié)果為: 90
a + (b * c) / d 運(yùn)算結(jié)果為: 50

Python 語句

if 條件語句

Python 編程中 if 語句用于控制程序的執(zhí)行,基本形式為:

if 判斷條件:
    執(zhí)行語句……
else:
    執(zhí)行語句……

其中"判斷條件"成立時(非零),則執(zhí)行后面的語句,而執(zhí)行內(nèi)容可以多行,以縮進(jìn)來區(qū)分表示同一范圍。
else 為可選語句,當(dāng)需要在條件不成立時執(zhí)行內(nèi)容則可以執(zhí)行相關(guān)語句,具體例子如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 例1:if 基本用法

flag = False
name = 'luren'
if name == 'python':         # 判斷變量否為'python'
    flag = True          # 條件成立時設(shè)置標(biāo)志為真
    print 'welcome boss'    # 并輸出歡迎信息
else:
    print name              # 條件不成立時輸出變量名稱

輸出結(jié)果為:

>>> luren			# 輸出結(jié)果

由于 python 并不支持 switch 語句,所以多個條件判斷,只能用 elif 來實(shí)現(xiàn),如果判斷需要多個條件需同時判斷時,可以使用 or (或),表示兩個條件有一個成立時判斷條件成功;使用 and (與)時,表示只有兩個條件同時成立的情況下,判斷條件才成功。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

# 例3:if語句多個條件

num = 9
if num >= 0 and num <= 10:    # 判斷值是否在0~10之間
    print 'hello'
>>> hello		# 輸出結(jié)果

num = 10
if num < 0 or num > 10:    # 判斷值是否在小于0或大于10
    print 'hello'
else:
	print 'undefine'
>>> undefine		# 輸出結(jié)果

num = 8
# 判斷值是否在0~5或者10~15之間
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    
    print 'hello'
else:
    print 'undefine'
>>> undefine		# 輸出結(jié)果

當(dāng)if有多個條件時可使用括號來區(qū)分判斷的先后順序,括號中的判斷優(yōu)先執(zhí)行,此外 and 和 or 的優(yōu)先級低于>(大于)、<(小于)等判斷符號,即大于和小于在沒有括號的情況下會比與或要優(yōu)先判斷。

  • 簡單的語句組

你也可以在同一行的位置上使用if條件判斷語句,如下實(shí)例:

#!/usr/bin/python 
# -*- coding: UTF-8 -*-
 
var = 100 
 
if ( var  == 100 ) : print "變量 var 的值為100" 
 
print "Good bye!" 

以上代碼執(zhí)行輸出結(jié)果如下:

變量 var 的值為100
Good bye!

While 循環(huán)語句

Python 編程中 while 語句用于循環(huán)執(zhí)行程序,即在某條件下,循環(huán)執(zhí)行某段程序,以處理需要重復(fù)處理的相同任務(wù)。其基本形式為:

while 判斷條件:
    執(zhí)行語句……

執(zhí)行流程圖如下:

Python20.png

實(shí)例:

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"

以上代碼執(zhí)行輸出結(jié)果:

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

while 語句時還有另外兩個重要的命令 continue,break 來跳過循環(huán),continue 用于跳過該次循環(huán),break 則是用于退出循環(huán),此外"判斷條件"還可以是個常值,表示循環(huán)必定成立,具體用法如下:

# continue 和 break 用法

i = 1
while i < 10:   
    i += 1
    if i%2 > 0:     # 非雙數(shù)時跳過輸出
        continue
    print i         # 輸出雙數(shù)2、4、6、8、10

i = 1
while 1:            # 循環(huán)條件為1必定成立
    print i         # 輸出1~10
    i += 1
    if i > 10:     # 當(dāng)i大于10時跳出循環(huán)
        break
  • 無限循環(huán)

如果條件判斷語句永遠(yuǎn)為 true,循環(huán)將會無限的執(zhí)行下去,如下實(shí)例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

var = 1
while var == 1 :  # 該條件永遠(yuǎn)為true,循環(huán)將無限執(zhí)行下去
   num = raw_input("Enter a number  :")
   print "You entered: ", num

print "Good bye!"

以上實(shí)例輸出結(jié)果:

Enter a number  :20
You entered:  20
Enter a number  :29
You entered:  29
Enter a number  :3
You entered:  3
Enter a number between :Traceback (most recent call last):
  File "test.py", line 5, in <module>
    num = raw_input("Enter a number :")
KeyboardInterrupt

注意:以上的無限循環(huán)你可以使用 CTRL+C 來中斷循環(huán)。

  • 循環(huán)使用 else 語句

在 python 中,for … else 表示這樣的意思,for 中的語句和普通的沒有區(qū)別,else 中的語句會在循環(huán)正常執(zhí)行完(即 for 不是通過 break 跳出而中斷的)的情況下執(zhí)行,while … else 也是一樣。

#!/usr/bin/python

count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

以上實(shí)例輸出結(jié)果為:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
  • 簡單語句組

類似if語句的語法,如果你的while循環(huán)體中只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:

#!/usr/bin/python

flag = 1

while (flag): print 'Given flag is really true!'

print "Good bye!"

注意:以上的無限循環(huán)你可以使用 CTRL+C 來中斷循環(huán)。

for 循環(huán)語句

Python 循環(huán)嵌套

break 語句

continue 語句

pass 語句

Python Number(數(shù)字)

Python 數(shù)據(jù)類型

Python Number 類型轉(zhuǎn)換

Python數(shù)學(xué)函數(shù)

Python隨機(jī)數(shù)函數(shù)

Python三角函數(shù)

Python數(shù)學(xué)常量