(三) Python程序的基本控制流程

  • 一碎乃、基本結(jié)構(gòu)與順序結(jié)構(gòu)

    Python是一種動態(tài)類型的語言,不需要預(yù)先聲明變量的數(shù)據(jù)類型惠奸,變量的類型和初值在賦值的時(shí)被初始化。

    • 1.1恰梢、基本語句

      • 賦值語句:使用賦值符號(=)將右邊的值(表達(dá)式)賦給左邊變量的語句稱為賦值語句佛南。例如

        >>> name = "Jack"  # 為 name 賦值一個(gè)字符串 
        >>> age = "19"       # 為 age 賦值一個(gè)整數(shù)
        >>> score = 83.9    # 為 score 賦值一個(gè)浮點(diǎn)數(shù)
        >>> value = 2 + 4j  # 為 value 賦值一個(gè)復(fù)數(shù)
        
      • 復(fù)合賦值語句:是用復(fù)合運(yùn)算符(包括算術(shù)運(yùn)算符和位復(fù)合運(yùn)算符)的賦值語句,包括序列賦值嵌言、多目標(biāo)賦值復(fù)合賦值嗅回。

        • 序列賦值

          >>> x,y = 1,1.5
          >>> print(x,y)
          1 1.5
          

          序列賦值:可以為多個(gè)變量分別賦予不同的值,變量之間用英文逗號隔開摧茴。實(shí)際上是利用元組和序列解包實(shí)現(xiàn)的绵载。

          >>> first,second,third,fourth,fifth="hello"
          >>> print(first, second, third, fourth, fifth)
          h e l l o
          

          Python還可以通過序列賦值實(shí)現(xiàn)兩個(gè)變量之間的值的交換。如:

          >>> math,english=80,75
          >>> math,english=English,math
          75 80
          
        • 多目標(biāo)賦值

          多目標(biāo)賦值就是將同一個(gè)值賦值給多個(gè)變量苛白。多目標(biāo)賦值通常只用于賦予數(shù)值或字符串這種不可變的類型娃豹,如果賦予了可變類型,如后面的列表就會出現(xiàn)問題购裙。

          >>> first=second=third="hello"
          >>> print(first, second, third)
          hello hello hello
          
        • 復(fù)合賦值:是運(yùn)算操作與賦值操作的組合懂版。所有復(fù)合賦值運(yùn)算符的優(yōu)先級和賦值運(yùn)算符的一模一樣□锫剩看下面的算術(shù)運(yùn)算符表:

        運(yùn)算符 描述 實(shí)例
        += 加法賦值運(yùn)算符 a+=b 等價(jià)于a=a+b
        -= 減法賦值運(yùn)算符 a-=b 等價(jià)于a=a-b
        *= 乘法賦值運(yùn)算符 a*=b 等價(jià)于a=a*b
        /= 浮點(diǎn)除法賦值運(yùn)算符 a/=b 等價(jià)于a=a/b
        //= 整除賦值運(yùn)算符 a//=b 等價(jià)于a=a//b
        %= 取模賦值運(yùn)算符 a%=b 等價(jià)于a=a%b
        **= 冪賦值運(yùn)算符 a**=b 等價(jià)于a=a**b

        <<=(左移等于)躯畴、>>=(右移等于)、&=(與等于)薇芝、|=(或等于)蓬抄、^=(異或等于)等運(yùn)算符為位符合運(yùn)算符。例如:

        >>> age = 5
        >>> age<<=2   # 等價(jià)于 age=age<<2,將age<<2的值再賦給變量age夯到,age的值為20
        >>> age&=3   # 等價(jià)于 age=age&3,將age&3的值再賦給變量age嚷缭,age的值為0
        
    • 1.2、順序結(jié)構(gòu):是指為了解決某些實(shí)際問題黄娘,自上而下依次去執(zhí)行各條語句峭状。例如:

      chinese = float(input("請輸入您的語文成績:"))
      math = float(input("請輸入您的數(shù)學(xué)成績:"))
      average = (chinese+math)/2
      print("平均分為:",average)
      
  • 二克滴、分支結(jié)構(gòu)單分支結(jié)構(gòu)多分支結(jié)構(gòu)

    • 2.1、 if 語句:僅僅處理?xiàng)l件成立的情況优床,從下圖可以看出劝赔,當(dāng)表達(dá)式的值為真時(shí),執(zhí)行相應(yīng)的語句塊(一句或多條語句)胆敞;當(dāng)表達(dá)式的值為假時(shí)着帽,直接跳出 if 語句,執(zhí)行其后面的語句移层。Python程序語言指定任何非0和非空(null)值為true仍翰,0 或者 null為false。
      • 書寫格式:關(guān)鍵字if與表達(dá)式之間用空格隔開表達(dá)式后接英文冒號观话,條件代碼均縮進(jìn)四個(gè)空格予借。

        if 語句

        例如:下面是復(fù)雜的 if elif else的使用

        num = 5     
        if num == 3:            # 判斷num的值
            print 'boss'        
        elif num == 2:
            print 'user'
        elif num == 1:
            print 'worker'
        elif num < 0:           # 值小于零時(shí)輸出
            print 'error'
        else:
            print 'roadman'     # 條件均不成立時(shí)輸出
        
  • 三、循環(huán)結(jié)構(gòu)while循環(huán)for循環(huán)

    • 3.1频蛔、while循環(huán):while循環(huán)用于滿足循環(huán)條件時(shí)重復(fù)執(zhí)行某件事情灵迫,也就是是說,只要條件成立就會一直做某一件事晦溪。如下的例子:

      while 1<4:
      print("我會一直打印")
      


      說明一下:一定要及時(shí)記得停止運(yùn)行代碼:在終端或者命令行中按:Ctrl+ C停止運(yùn)行瀑粥,在PyCharm中則點(diǎn)擊右上角變紅的四方小塊停止

    • 3.2、for循環(huán):用于遍歷可迭代對象中的所有元素三圆,遍歷結(jié)束后可執(zhí)行else子句(與while循環(huán)中的else子句類似狞换,for循環(huán)中的else子句是可選的)。

      for 循環(huán)變量 in 對象:
              語句塊A
      else:     # 可選
              語句塊B
      
      for循環(huán)
      • for是關(guān)鍵字舟肉,而后面緊跟著的是一個(gè)可以容納“每一個(gè)元素”的變量名稱修噪,至于變量起什么名字自己決定,但切記不要和關(guān)鍵字重名度气。
      • 關(guān)鍵字 in 后面所對應(yīng)的一定是具有“可迭代的”或者說是像列表那樣的集合形態(tài)的對象割按,即可連續(xù)提供其中的每一個(gè)元素的對象。
    • 3.2磷籍、range()內(nèi)建函數(shù):for循環(huán)經(jīng)常與range()內(nèi)建函數(shù)配合使用适荣,range()內(nèi)建函數(shù)用于生成整數(shù)序列,通常的寫法是:range(start,end,step): start決定序列的起始值(起始值可以省略院领,省略時(shí)該值為0)弛矛,end代表序列的終值(半開區(qū)間,不包括end的值)比然,step代表序列的步長(可以省略丈氓,默認(rèn)值是1)。例如:下面代碼的結(jié)果是:4 10 2,因?yàn)槭前腴_區(qū)間所以不包括 10

      for num in (4,10,2):
          print(num,end=" ")
      

      下面的結(jié)果是1 2 3 4,因?yàn)楹竺媸前腴_區(qū)間,所以不包括 5万俗,步長為 1

         for num in range(1,5):
             print(num, end =" ")
      
    • 3.3湾笛、循環(huán)語句嵌套:解決復(fù)雜的問題,嵌套的層數(shù)不限闰歪,但是循環(huán)的內(nèi)外層之間是不能交叉嚎研。其中,雙層循環(huán)是一種常用的循環(huán)嵌套库倘,循環(huán)的次數(shù)等于內(nèi)外層次數(shù)只積临扮。例如:結(jié)果為:1 2 3 2 4 6

      for i in range(1,3):
          for j in range(1,4):
              print(i*j,end = " ")
      
      • 練習(xí)1:打印下面的樹: end=" ":表示不換行,打印之間用 空格隔開,如果是:end=",":則用逗號隔開,不換行瓦糟。

        打印樹

        for a in range(1,6):
            for b in range(5-a):
                print(" ",end=" ")
            for b in range(1,2*a):
                print("*",end=" ")
            print("\n")
        
  • 四、轉(zhuǎn)移和中斷語句

    • 4.1蚜退、break語句:用于中斷當(dāng)前循環(huán)的執(zhí)行,跳出循環(huán)的結(jié)構(gòu)彪笼。對于包含else子句的while循環(huán)和for循環(huán)而言关霸,在while或for子句中一旦執(zhí)行break語句,else子句將沒有機(jī)會執(zhí)行杰扫。

      • 半循環(huán)語句:在死循環(huán)中添加break語句終止程序的執(zhí)行,稱為半路循環(huán)膘掰。例如:

        number = 1
        while 1:
            print("我在打印")
            if number>=5:
                break
            number += 1
        
    • 4.2章姓、continue語句:與break語句不同,continue語句用于中斷本次循環(huán)的執(zhí)行识埋,進(jìn)入下一輪循環(huán)條件是否滿足判斷凡伊。舉個(gè)下面的例子:
      編寫程序:從鍵盤輸入密碼,如果密碼長度小于6窒舟,則要求重新輸入系忙。如果輸入長度等于6,則判斷密碼是否正確惠豺,如果正確則中斷判斷银还,否則提示錯(cuò)誤并要求繼續(xù)輸入。

      while 1:
          password=input("請輸入密碼:")
          if len(password)<6:
              print("長度應(yīng)該為6洁墙,請重試")
              continue
          if password == "123456":
              print("恭喜您蛹疯,密碼正確")
              break
          else:
              print("密碼有誤,請重試")
      
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末热监,一起剝皮案震驚了整個(gè)濱河市捺弦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖列吼,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件幽崩,死亡現(xiàn)場離奇詭異,居然都是意外死亡寞钥,警方通過查閱死者的電腦和手機(jī)慌申,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凑耻,“玉大人太示,你說我怎么就攤上這事∠愫疲” “怎么了类缤?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長邻吭。 經(jīng)常有香客問我餐弱,道長,這世上最難降的妖魔是什么囱晴? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任膏蚓,我火速辦了婚禮,結(jié)果婚禮上畸写,老公的妹妹穿的比我還像新娘驮瞧。我一直安慰自己,他們只是感情好枯芬,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布论笔。 她就那樣靜靜地躺著,像睡著了一般千所。 火紅的嫁衣襯著肌膚如雪狂魔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天淫痰,我揣著相機(jī)與錄音最楷,去河邊找鬼。 笑死待错,一個(gè)胖子當(dāng)著我的面吹牛籽孙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播朗鸠,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蚯撩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烛占?” 一聲冷哼從身側(cè)響起胎挎,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤沟启,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后犹菇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體德迹,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年揭芍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胳搞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡称杨,死狀恐怖肌毅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情姑原,我是刑警寧澤悬而,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站锭汛,受9級特大地震影響笨奠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唤殴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一般婆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朵逝,春花似錦蔚袍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至段誊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間栈拖,已是汗流浹背连舍。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涩哟,地道東北人索赏。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像贴彼,于是被迫代替她去往敵國和親潜腻。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)器仗,也就是一...
    悟名先生閱讀 4,118評論 0 13
  • Python 是一種相當(dāng)高級的語言融涣,通過 Python 解釋器把符合語法的程序代碼轉(zhuǎn)換成 CPU 能夠執(zhí)行的機(jī)器碼...
    Python程序媛閱讀 1,891評論 0 3
  • 01-常量與變量 學(xué)習(xí)swift第一步打印Hello World print("Hello World") swi...
    iOS_恒仔閱讀 5,115評論 2 19
  • 1. Python的hello-world: print ("Hello, Python!")童番、 完了 搖就完事兒...
    LunarShade閱讀 1,368評論 0 0
  • 首先 在當(dāng)今時(shí)代有三種時(shí)代溺水者 第一、無法掌握注意力的人 如果你沒有馴服注意力的能力威鹿,你的時(shí)間和思維會被完全打碎...
    日日是好日147閱讀 205評論 0 1