<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          6個(gè)實(shí)例,8段代碼,詳解Python中的for循環(huán)

          共 7986字,需瀏覽 16分鐘

           ·

          2022-01-19 12:14


          作者:奧斯瓦爾德·坎佩薩托(Oswald Campesato)
          來源:大數(shù)據(jù)DT(ID:hzdashuju)




          Python 支持for循環(huán),它的語法與其他語言(如JavaScript 或Java)稍有不同。下面的代碼塊演示如何在Python 中使用for循環(huán)來遍歷列表中的元素:


          上述的代碼段是將三個(gè)字母分行打印的。你可以通過在print語句的后面添加逗號“,”將輸出限制在同一行顯示(如果指定打印的字符很多,則會“換行”),代碼如下所示:


          當(dāng)你希望通過一行而不是多行顯示文本中的內(nèi)容時(shí),可以使用上述形式的代碼。Python 還提供了內(nèi)置函數(shù)reversed(),它可以反轉(zhuǎn)循環(huán)的方向,例如:


          注意,只有當(dāng)對象的大小是確定的,或者對象實(shí)現(xiàn)了_reversed_()方法的時(shí)候反向遍歷的功能才有效。


          01 使用tryexcept的for循環(huán)

          清單1 的StringToNums.py說明了如何對一組從字符串轉(zhuǎn)換而來的整數(shù)求和。

          • 清單1 StringToNums.py

          line = '1 2 3 4 10e abc'
          sum  = 0
          invalidStr = ""

          print('String of numbers:',line)

          for str in line.split(" "):
            try:
              sum = sum + eval(str)
            except:
              invalidStr = invalidStr + str + ' '

          print('sum:', sum)
          if(invalidStr != ""):
            print('Invalid strings:',invalidStr)
          else:
            print('All substrings are valid numbers')

          清單1 首先初始化變量line、sum和invalidStr,然后顯示line的內(nèi)容。接下來將line中的內(nèi)容分割為單詞,然后通過try代碼塊逐個(gè)將單詞的數(shù)值累加到變量sum 中。如果發(fā)生異常,則將當(dāng)前str的內(nèi)容追加到變量invalidStr。

          當(dāng)循環(huán)執(zhí)行結(jié)束,清單1 打印出數(shù)值單詞的和,并在后面顯示非數(shù)值單詞。它的輸出如下所示:



          02 指數(shù)運(yùn)算

          清單2 的Nth_exponet.py說明了如何計(jì)算一組整數(shù)的冪。

          • 清單2 Nth_exponet.py

          maxPower = 4
          maxCount = 4

          def pwr(num):
            prod = 1
            for n in range(1,maxPower+1):
              prod = prod*num
              print(num,'to the power',n, 'equals',prod)
            print('-----------')

          for num in range(1,maxCount+1):
              pwr(num)

          清單2 中有一個(gè)pwr()函數(shù),其參數(shù)為一個(gè)數(shù)值。此函數(shù)中的循環(huán)可打印出參數(shù)的1 到n次方,n的取值范圍在1到maxCount+1之間。

          代碼的第二部分通過一個(gè)for循環(huán)調(diào)用pwr()函數(shù)從1到maxCount+1的值。它的輸出如下所示:



          03 嵌套的循環(huán)

          清單3 的Triangular1.py說明了如何打印一行連續(xù)整數(shù)(從1開始),其中每一行的長度都比前一行大1。

          • 清單3 Triangular1.py

          max = 8
          for x in range(1,max+1):
            for y in range(1,x+1):
              print(y,'', end='')
            print() 

          清單3 首先初始化max變量為8,之后通過變量x從1到max+1執(zhí)行循環(huán)。內(nèi)層循環(huán)有一個(gè)值為從1到x+1的循環(huán)變量y,并打印y的值。它的輸出如下所示:



          04 在for循環(huán)中使用split()函數(shù)

          Python 支持各種便捷的字符串操作相關(guān)函數(shù),包括split()函數(shù)和join()函數(shù)。在需要將一行文本分詞化(即“分割”)為單詞,然后使用for循環(huán)遍歷這些單詞時(shí),split()函數(shù)非常有用。

          join()函數(shù)與split()函數(shù)相反,它將兩個(gè)或多個(gè)單詞“連接”為一行。通過使用split()函數(shù),你可以輕松地刪除句子中多余的空格,然后調(diào)用join()函數(shù),使文本行中每個(gè)單詞之間只有一個(gè)空格。

          1. 使用split()函數(shù)做單詞比較

          清單4 的Compare2.py說明了如何通過split()函數(shù)將文本字符串中的每個(gè)單詞與另一個(gè)單詞進(jìn)行比較。

          • 清單4 Compare2.py

          x = 'This is a string that contains abc and Abc'
          y = 'abc'
          identical = 0
          casematch = 0

          for w in x.split():
            if(w == y):
              identical = identical + 1
            elif (w.lower() == y.lower()):
              casematch = casematch + 1

          if(identical > 0):
           print('found identical matches:', identical)

          if(casematch > 0):
           print('found case matches:', casematch)

          if(casematch == 0 and identical == 0):
           print('no matches found')

          清單4 通過split()函數(shù)對字符串x中的每個(gè)單詞與單詞abc進(jìn)行比較。如果單詞精確匹配,就將identical變量加1 ;否則就嘗試不區(qū)分大小寫進(jìn)行比較,若匹配就將casematch變量加1。

          清單4 的輸出如下所示:


          2. 使用split()函數(shù)打印指定格式的文本

          清單5 的FixedColumnCount1.py 說明了如何打印一組設(shè)定固定寬度的字符串。

          • 清單5 FixedColumnCount1.py

          import string

          wordCount = 0
          str1 = 'this is a string with a set of words in it'

          print('Left-justified strings:')
          print('-----------------------')
          for w in str1.split():
             print('%-10s' % w)
             wordCount = wordCount + 1
             if(wordCount % 2 == 0):
                print("")
          print("\n")

          print('Right-justified strings:'
          print('------------------------'

          wordCount = 0
          for w in str1.split():
             print('%10s' % w)
             wordCount = wordCount + 1
             if(wordCount % 2 == 0):
                print()

          清單5 首先初始化變量wordCount和str1,然后執(zhí)行兩個(gè)for循環(huán)。第一個(gè)for 循環(huán)對str1的每個(gè)單詞進(jìn)行左對齊打印,第二個(gè)for循環(huán)對str1的每個(gè)單詞進(jìn)行右對齊打印。在每個(gè)循環(huán)中當(dāng)wordCount是偶數(shù)的時(shí)候就輸出一次換行,這樣每打印兩個(gè)連續(xù)的單詞之后就換行。清單5 的輸出如下所示:


          3. 使用split()函數(shù)打印固定寬度的文本

          清單6 的FixedColumnWidth1.py說明了如何打印固定寬度的文本。

          • 清單6 FixedColumnWidth1.py

          import string

          left = 0
          right = 0
          columnWidth = 8

          str1 = 'this is a string with a set of words in it and it will be split into a fixed column width'
          strLen = len(str1)

          print('Left-justified column:'
          print('----------------------'
          rowCount = int(strLen/columnWidth)

          for i in range(0,rowCount):
             left  = i*columnWidth
             right = (i+1)*columnWidth-1
             word  = str1[left:right]
             print("%-10s" % word)

          # check for a 'partial row'
          if(rowCount*columnWidth < strLen):
             left  = rowCount*columnWidth-1;
             right = strLen
             word  = str1[left:right]
             print("%-10s" % word)

          清單6 初始化整型變量columnWidth和字符串類型變量str1。變量strLen是str1的長度,變量rowCount是strLen除以columnWidth的值。之后通過循環(huán)打印rowCount行,每行包含columnWidth個(gè)字符。代碼的最后部分輸出所有“剩余”的字符。清單6 的輸出如下所示:


          4. 使用split()函數(shù)比較文本字符串

          清單7 的CompareStrings1.py說明了如何判斷一個(gè)文本字符串中的單詞是否出現(xiàn)在另一個(gè)文本字符串中。

          • 清單7 CompareStrings1.py

          text1 = 'a b c d'
          text2 = 'a b c e d'

          if(text2.find(text1) >= 0):
            print('text1 is a substring of text2')
          else:
            print('text1 is not a substring of text2')

          subStr = True
          for w in text1.split():
            if(text2.find(w) == -1):
              subStr = False
              break

          if(subStr == True):
            print('Every word in text1 is a word in text2')
          else:
            print('Not every word in text1 is a word in text2')

          清單7 首先初始化兩個(gè)字符串變量text1和text2,然后通過條件邏輯判斷字符串text2是否包含了text1(并輸出相應(yīng)打印信息)。

          清單7 的后半部分通過一個(gè)循環(huán)遍歷字符串text1中的每個(gè)單詞,并判斷其是否出現(xiàn)在text2中。如果發(fā)現(xiàn)有匹配失敗的情況,就設(shè)置變量subStr為False,并通過break語句跳出循環(huán),提前終止for循環(huán)的執(zhí)行。最后根據(jù)變量subStr的值打印對應(yīng)的信息。清單7 的輸出如下所示:



          05 用基礎(chǔ)的for循環(huán)顯示字符串中的字符

          清單8 的StringChars1.py說明了如何打印一個(gè)文本字符串中的字符。

          • 清單8 StringChars1.py

          text = 'abcdef'
          for ch in text:
             print('char:',ch,'ord value:',ord(ch))
          print

          清單8 的代碼簡單直接地通過一個(gè)for循環(huán)遍歷字符串text并打印它的每個(gè)字符以及字符的ord值(ASCII 碼)。清單8 的輸出如下所示:



          06 join()函數(shù)

          另一個(gè)去掉多余空格的方法是使用join()函數(shù),代碼示例如下所示:


          split()函數(shù)將一個(gè)文本字符串“分割”為一系列的單詞,同時(shí)去掉多余的空格。接下來join()函數(shù)使用一個(gè)空格作為分隔符將字符串text1中的單詞連接在一起。上述代碼的最后部分使用字符串XYZ替換空格作為分隔符,執(zhí)行相同的連接操作。上述代碼的輸出如下:


          關(guān)于作者:奧斯瓦爾德·坎佩薩托(Oswald Campesato),專門研究深度學(xué)習(xí)、Java、Android和TensorFlow。他是25本書的作者/合著者。

          本文摘編自機(jī)器學(xué)習(xí)入門:Python語言實(shí)現(xiàn)》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111695240)

          機(jī)器學(xué)習(xí)入門:Python語言實(shí)現(xiàn)
          點(diǎn)擊上圖了解及購買
          轉(zhuǎn)載請聯(lián)系微信:DoctorData

          推薦語:適讀人群:機(jī)器學(xué)習(xí)及Python初學(xué)者。本書旨在為讀者提供與機(jī)器學(xué)習(xí)有關(guān)Python3的基本編程概念。前4章快速介紹了Python 3、NumPy和Pandas。第5章介紹了機(jī)器學(xué)習(xí)的基本概念。第6章主要介紹機(jī)器學(xué)習(xí)分類器,例如邏輯回歸、kNN、決策樹、隨機(jī)森林和SVM。第7章介紹了自然語言處理和強(qiáng)化學(xué)習(xí)。本書還提供了基于Keras的代碼示例作為理論討論的補(bǔ)充。此外還為正則表達(dá)式、Keras和TensorFlow 2提供了單獨(dú)的附錄。



          劃重點(diǎn)??



          干貨直達(dá)??



          更多精彩??

          在公眾號對話框輸入以下關(guān)鍵詞
          查看更多優(yōu)質(zhì)內(nèi)容!

          讀書 | 書單 | 干貨 | 講明白 | 神操作 | 手把手
          大數(shù)據(jù) | 云計(jì)算 | 數(shù)據(jù)庫 | Python | 爬蟲 | 可視化
          AI | 人工智能 | 機(jī)器學(xué)習(xí) | 深度學(xué)習(xí) | NLP
          5G | 中臺 | 用戶畫像 數(shù)學(xué) | 算法 數(shù)字孿生

          據(jù)統(tǒng)計(jì),99%的大咖都關(guān)注了這個(gè)公眾號
          ??
          瀏覽 7
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97精品云霸高清在线视频小说 | 91精品婷婷国产综合久久韩漫 | 成人理伦电影无码AV | 18禁黄免费观看 | 色婷婷成人网 |