Python語句和控制流

1.if語句

當(dāng)條件成立時(shí)執(zhí)行語句塊色冀,經(jīng)常與else、elif(相當(dāng)于else if)配合使用

if i == 1:
    print("等于1")
elif i > 1:
    print("大于1")
else:
    print("小于1")

2.for語句

遍歷列表屯换、字符串与学、字典、集合等迭代器晕窑,依次處理迭代器中的每個(gè)元素

下面的例子就是求50-100之間的質(zhì)數(shù)(math.sqrt是開方)

import math

for i in range(50, 100 + 1):
    for j in range(2, int(math.sqrt(i)) + 1):
        if i % j == 0:
            break
    else:
        print i

順便提一下range()函數(shù)卵佛。

range([start,] stop [, step])

start  可選參數(shù)敞斋,起始數(shù)

stop   終止數(shù)植捎,如果 range 只有一個(gè)參數(shù)x说敏,則產(chǎn)生一個(gè)包含 0 至 x-1 的整數(shù)列表

step   可選參數(shù)丢郊,步長(zhǎng)

3.while語句

當(dāng)條件為真時(shí)枫匾,執(zhí)行循環(huán)語句塊,如下例子

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

print "Good bye!"

4.try語句

try的工作原理是,當(dāng)開始一個(gè)try語句后谴忧,python就在當(dāng)前程序的上下文中作標(biāo)記角虫,這樣當(dāng)異常出現(xiàn)時(shí)就可以回到這里,try子句先執(zhí)行均驶,接下來會(huì)發(fā)生什么依賴于執(zhí)行時(shí)是否出現(xiàn)異常.

下面是簡(jiǎn)單的例子:

import sys
try:
    s = raw_input('Enter something --> ')  #可能得到異常的語句
except EOFError:       #鎖定是哪種異常
    print 'ERROR INPUT !'   #出現(xiàn)異常的處理方法
    sys.exit()
print s

try-finally 語句無論是否發(fā)生異常都將執(zhí)行最后的代碼枫虏。

try:
    fh = open("testfile", "w")
    fh.write("這是一個(gè)測(cè)試文件隶债,用于測(cè)試異常!!")
finally:
    print "Error: 沒有找到文件或讀取文件失敗"

5.CLASS語句

用于定義類,下面是一個(gè)例子

首先第一點(diǎn)瞒滴,你會(huì)發(fā)現(xiàn)Class的定義中有一個(gè)括號(hào)赞警,這是體現(xiàn)繼承的地方。 Java用extends单默,C#忘瓦、C++用冒號(hào)(:)引颈,Python則用括號(hào)了蝙场。從括號(hào)中包含著兩個(gè)值粱年,聰明的你一定可以發(fā)現(xiàn):Python支持多重繼承;

第二點(diǎn)完箩,init是Class中的構(gòu)造函數(shù)拉队,兩種不同形式的構(gòu)造函數(shù)體現(xiàn)了Python支持函數(shù)重載。在構(gòu)造函數(shù)中秩彤,有一個(gè)特別的參數(shù)self事哭,其含義與我們?cè)贘ava和C#中常見的this是一樣的。

class GrandPa:
    def __init__(self):
         print('I\'m GrandPa')


class Father(GrandPa):
     def __init__(self):
         print('I\'m Father!')

class Son(Father):
     """A simple example class"""
     i = 12345
     def __init__(self):
         print('這是構(gòu)造函數(shù),son')
     def sayHello(self):
         return 'hello world'

if __name__ == '__main__':
     son = Son()
     # 類型幫助信息
     print('類型幫助信息: ',Son.__doc__)
     #類型名稱
     print('類型名稱:',Son.__name__)
     #類型所繼承的基類
     print('類型所繼承的基類:',Son.__bases__)
     #類型字典
     print('類型字典:',Son.__dict__)
     #類型所在模塊
     print('類型所在模塊:',Son.__module__)
     #實(shí)例類型
     print('實(shí)例類型:',Son().__class__)

6.def語句

用于定義函數(shù)和類型的方法

def hello():
    print 'hello python!'

7.pass語句

表示此行為空,不做任何操作流炕,用處就是保持語義每辟、格式的完整性。

if i == 1:
    pass
else:
    pass

8.assert語句

assert語句是一種插入調(diào)試斷點(diǎn)到程序的一種便捷的方式妹蔽,當(dāng)assert語句失敗的時(shí)候挠将,會(huì)引發(fā)AssertionError。

assert使用起來還是很方便的乳丰,可以避免不必要的未知錯(cuò)誤内贮。

def isPrime(n):
    """This function return a number is a prime or not"""
    assert n >= 2
    from math import sqrt
    for i in range(2, int(sqrt(n))+1):
        if n % i == 0:
            return False
    return True

9.with語句

有一些任務(wù),可能事先需要設(shè)置什燕,事后做清理工作。對(duì)于這種場(chǎng)景庙睡,Python的with語句提供了一種非常方便的處理方式技俐。一個(gè)很好的例子是文件處理虽另,你需要獲取一個(gè)文件句柄饺谬,從文件中讀取數(shù)據(jù),然后關(guān)閉文件句柄族展。

不使用with語句如下這樣寫:

file = open("/tmp/foo.txt")
try:
    data = file.read()
finally:
    file.close()

使用with之后拔鹰,可以這樣寫:

with open("/tmp/foo.txt")
 as file:
    data = file.read()

Python的with語句是提供一個(gè)有效的機(jī)制,讓代碼更簡(jiǎn)練恰画,同時(shí)在異常產(chǎn)生時(shí)瓷马,清理工作更簡(jiǎn)單欧聘。

10.yield語句

在迭代器函數(shù)內(nèi)使用,用于返回一個(gè)元素费封。自從Python2.5之后蒋伦,這個(gè)語句變成了一個(gè)運(yùn)算符。

yield和return的區(qū)別韧献。yield可以向下運(yùn)行。而return返回后這個(gè)函數(shù)余下的部分就不能執(zhí)行了阻塑。

def gen():
        print 'enter'
        yield 1
        print 'next'
        return
        print 'next 2'
        yield 2
        print 'next 3'
for i in gen():
        print i

11.raise語句

在Python中果复,要想引發(fā)異常虽抄,最簡(jiǎn)單的形式就是輸入關(guān)鍵字raise,后跟要引發(fā)的異常的名稱私植。異常名稱標(biāo)識(shí)出具體的類: Python異常處理是那些類的對(duì)象车酣。執(zhí)行raise語句時(shí),Python會(huì)創(chuàng)建指定的異常類的一個(gè)對(duì)象贫悄。raise語句還可指定對(duì)異常對(duì)象進(jìn)行初始化的參數(shù)娘摔。為此凳寺,請(qǐng)?jiān)诋惓n惖拿Q后添加一個(gè)逗號(hào)以及指定的參數(shù)(或者由參數(shù)構(gòu)成的一個(gè)元組)。

def functionName( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 觸發(fā)異常后逆趋,后面的代碼就不會(huì)再執(zhí)行

12.import語句

導(dǎo)入一個(gè)模塊怜瞒,全部導(dǎo)入吴汪,示例如下:

import codecs
import ConfigParser
import MySQLdb
import sys

13.from import語句

導(dǎo)入一個(gè)模塊的某些成員,如果你想在程序中用argv代表sys.argv杆融,可以使用 from import語句霜运,在使用的時(shí)候建議盡量不需要用from import語句蒋腮,這樣可以使你的程序更加易讀池摧,并且沒有名字的沖突

from decompile import WjsDecompile
from sys import *

14.import as語句

as后面的內(nèi)容表示別名激况,如下面的示例,在使用此模塊的功能的時(shí)候則需要使用別名竭讳,如system.argv

import sys as system

15.in語句

判斷一個(gè)對(duì)象是否在一個(gè)字符串绢慢、列表洛波、元組

for i in range(1, 5):
    print(i)
else:
    print('for循環(huán)結(jié)束')

相對(duì)的用法有not in,用法相同思瘟,含義相反闻伶;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蓝翰,一起剝皮案震驚了整個(gè)濱河市女嘲,隨后出現(xiàn)的幾起案子欣尼,更是在濱河造成了極大的恐慌,老刑警劉巖钙态,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件册倒,死亡現(xiàn)場(chǎng)離奇詭異磺送,居然都是意外死亡灿意,警方通過查閱死者的電腦和手機(jī)崇呵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門域慷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芒粹,“玉大人泳炉,你說我怎么就攤上這事「碓” “怎么了圃阳?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵璧帝,是天一觀的道長(zhǎng)捍岳。 經(jīng)常有香客問我,道長(zhǎng)睬隶,這世上最難降的妖魔是什么锣夹? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮苏潜,結(jié)果婚禮上银萍,老公的妹妹穿的比我還像新娘。我一直安慰自己恤左,他們只是感情好贴唇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著飞袋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪授嘀。 梳的紋絲不亂的頭發(fā)上物咳,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼览闰。 笑死芯肤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的压鉴。 我是一名探鬼主播崖咨,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼油吭!你這毒婦竟也來了击蹲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤婉宰,失蹤者是張志新(化名)和其女友劉穎歌豺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體心包,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡类咧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟹腾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕惋。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖娃殖,靈堂內(nèi)的尸體忽然破棺而出值戳,到底是詐尸還是另有隱情,我是刑警寧澤炉爆,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布堕虹,位于F島的核電站,受9級(jí)特大地震影響叶洞,放射性物質(zhì)發(fā)生泄漏鲫凶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一衩辟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧波附,春花似錦艺晴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仅财,卻和暖如春狈究,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盏求。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工抖锥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亿眠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓磅废,卻偏偏與公主長(zhǎng)得像纳像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拯勉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容