成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

6個實例,8段代碼,詳解 Python 中的 For 循環

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

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

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

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

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

01 使用tryexcept的for循環

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

  • 清單1 StringToNums.py
  1. line = '1 2 3 4 10e abc' 
  2. sum  = 0 
  3. invalidStr = "" 
  4.  
  5. print('String of numbers:',line) 
  6.  
  7. for str in line.split(" "): 
  8.   try: 
  9.     sum = sum + eval(str) 
  10.   except
  11.     invalidStr = invalidStr + str + ' ' 
  12.  
  13. print('sum:'sum
  14. if(invalidStr != ""): 
  15.   print('Invalid strings:',invalidStr) 
  16. else
  17.   print('All substrings are valid numbers'

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

當循環執行結束,清單1 打印出數值單詞的和,并在后面顯示非數值單詞。它的輸出如下所示:

02 指數運算

清單2 的Nth_exponet.py說明了如何計算一組整數的冪。

  • 清單2 Nth_exponet.py
  1. maxPower = 4 
  2. maxCount = 4 
  3.  
  4. def pwr(num): 
  5.   prod = 1 
  6.   for n in range(1,maxPower+1): 
  7.     prod = prod*num 
  8.     print(num,'to the power',n, 'equals',prod) 
  9.   print('-----------'
  10.  
  11. for num in range(1,maxCount+1): 
  12.     pwr(num) 

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

代碼的第二部分通過一個for循環調用pwr()函數從1到maxCount+1的值。它的輸出如下所示:

03 嵌套的循環

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

  • 清單3 Triangular1.py
  1. max = 8 
  2. for x in range(1,max+1): 
  3.   for y in range(1,x+1): 
  4.     print(y,''end=''
  5.   print()  

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

04 在for循環中使用split()函數

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

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

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

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

  • 清單4 Compare2.py
  1. x = 'This is a string that contains abc and Abc' 
  2. y = 'abc' 
  3. identical = 0 
  4. casematch = 0 
  5.  
  6. for w in x.split(): 
  7.   if(w == y): 
  8.     identical = identical + 1 
  9.   elif (w.lower() == y.lower()): 
  10.     casematch = casematch + 1 
  11.  
  12. if(identical > 0): 
  13.  print('found identical matches:', identical) 
  14.  
  15. if(casematch > 0): 
  16.  print('found case matches:', casematch) 
  17.  
  18. if(casematch == 0 and identical == 0): 
  19.  print('no matches found'

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

清單4 的輸出如下所示:

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

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

  • 清單5 FixedColumnCount1.py
  1. import string 
  2.  
  3. wordCount = 0 
  4. str1 = 'this is a string with a set of words in it' 
  5.  
  6. print('Left-justified strings:'
  7. print('-----------------------'
  8. for w in str1.split(): 
  9.    print('%-10s' % w) 
  10.    wordCount = wordCount + 1 
  11.    if(wordCount % 2 == 0): 
  12.       print(""
  13. print("\n"
  14.  
  15. print('Right-justified strings:')  
  16. print('------------------------')  
  17.  
  18. wordCount = 0 
  19. for w in str1.split(): 
  20.    print('%10s' % w) 
  21.    wordCount = wordCount + 1 
  22.    if(wordCount % 2 == 0): 
  23.       print() 

清單5 首先初始化變量wordCount和str1,然后執行兩個for循環。第一個for 循環對str1的每個單詞進行左對齊打印,第二個for循環對str1的每個單詞進行右對齊打印。在每個循環中當wordCount是偶數的時候就輸出一次換行,這樣每打印兩個連續的單詞之后就換行。清單5 的輸出如下所示:

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

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

  • 清單6 FixedColumnWidth1.py
  1. import string 
  2.  
  3. left = 0 
  4. right = 0 
  5. columnWidth = 8 
  6.  
  7. str1 = 'this is a string with a set of words in it and it will be split into a fixed column width' 
  8. strLen = len(str1) 
  9.  
  10. print('Left-justified column:')  
  11. print('----------------------')  
  12. rowCount = int(strLen/columnWidth) 
  13.  
  14. for i in range(0,rowCount): 
  15.    left  = i*columnWidth 
  16.    right = (i+1)*columnWidth-1 
  17.    word  = str1[left:right
  18.    print("%-10s" % word) 
  19.  
  20. check for a 'partial row' 
  21. if(rowCount*columnWidth < strLen): 
  22.    left  = rowCount*columnWidth-1; 
  23.    right = strLen 
  24.    word  = str1[left:right
  25.    print("%-10s" % word) 

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

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

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

  • 清單7 CompareStrings1.py
  1. text1 = 'a b c d' 
  2. text2 = 'a b c e d' 
  3.  
  4. if(text2.find(text1) >= 0): 
  5.   print('text1 is a substring of text2'
  6. else
  7.   print('text1 is not a substring of text2'
  8.  
  9. subStr = True 
  10. for w in text1.split(): 
  11.   if(text2.find(w) == -1): 
  12.     subStr = False 
  13.     break 
  14.  
  15. if(subStr == True): 
  16.   print('Every word in text1 is a word in text2'
  17. else
  18.   print('Not every word in text1 is a word in text2'

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

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

05 用基礎的for循環顯示字符串中的字符

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

  • 清單8 StringChars1.py
  1. text = 'abcdef' 
  2. for ch in text: 
  3.    print('char:',ch,'ord value:',ord(ch)) 
  4. print 

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

06 join()函數

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

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

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

本文摘編自《機器學習入門:Python語言實現》,經出版方授權發布。(ISBN:9787111695240)

 

責任編輯:武曉燕 來源: 大數據DT
相關推薦

2022-01-17 11:25:46

代碼Pythonfor

2022-11-21 09:01:00

Swift并發結構

2020-01-03 10:24:06

Python 開發編程語言

2019-09-16 09:08:15

Python收藏C語言

2009-11-05 09:42:42

Visual Stud

2020-12-11 05:57:01

Python循環語句代碼

2022-09-21 12:46:39

開發JavaScrip代碼

2024-09-24 16:00:00

Python腳本代碼

2022-12-02 09:02:36

Swift代碼異步

2010-09-10 14:26:06

SQLFor循環

2022-09-23 09:14:28

JavaScriptES6代碼

2009-09-02 17:12:06

C#關機代碼

2011-08-15 13:29:50

jQuery

2010-09-08 17:15:45

SQL循環結構

2010-09-10 14:33:32

SQL循環語句

2009-07-15 13:41:00

JDBC實例

2013-12-17 10:39:24

命令top

2023-02-08 09:01:42

Swift元素流

2010-09-09 16:34:19

SQL循環while

2024-02-02 09:04:23

VueKeepAlive緩存組件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 永久精品 | 情侣黄网站免费看 | 91精品国产综合久久久久久蜜臀 | 亚洲午夜网 | 国产91视频免费 | 美女高潮网站 | 久草在线中文888 | 午夜精| 91久久久久 | 欧美一极视频 | 中文字幕久久精品 | 免费簧片视频 | 色频| 欧美日韩不卡合集视频 | 国产97色 | 中文字幕免费中文 | 欧美在线一区二区三区 | 日韩电影免费在线观看中文字幕 | 婷婷综合色 | 国产日韩精品视频 | 午夜在线精品 | 日韩精品无码一区二区三区 | 激情欧美一区二区三区中文字幕 | 天堂色区 | 一区二区三区中文字幕 | 欧美日韩在线观看一区二区三区 | 91精品国产91久久久久久最新 | 精品一区在线 | 国产精品久久久久久久久久久久 | 91av视频在线 | 中文字幕国 | 欧美一级www片免费观看 | 中文字幕国产 | 91社区在线高清 | 国产高清精品一区二区三区 | 亚洲专区在线 | 欧美日韩一区二区三区四区五区 | 久久精品欧美一区二区三区不卡 | 成人在线看片 | 97碰碰碰 | 国产精品亚洲综合 |