溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么理解Python中的for循環(huán)

發(fā)布時間:2023-04-13 11:26:56 來源:億速云 閱讀:96 作者:iii 欄目:編程語言

本文小編為大家詳細介紹“怎么理解Python中的for循環(huán)”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“怎么理解Python中的for循環(huán)”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

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:     sumsum = sum + eval(str)    except:      invalidStrinvalidStr = 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代碼塊逐個將單詞的數(shù)值累加到變量sum 中。如果發(fā)生異常,則將當(dāng)前str的內(nèi)容追加到變量invalidStr。

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

02 指數(shù)運算

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

  • 清單2 Nth_exponet.py

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

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

代碼的第二部分通過一個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)有一個值為從1到x+1的循環(huán)變量y,并打印y的值。

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

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

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

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

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

  • 清單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):      identicalidentical = identical + 1    elif (w.lower() == y.lower()):      casematchcasematch = 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中的每個單詞與單詞abc進行比較。如果單詞精確匹配,就將identical變量加1 ;否則就嘗試不區(qū)分大小寫進行比較,若匹配就將casematch變量加1。

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)     wordCountwordCount = wordCount + 1     if(wordCount % 2 == 0):        print("")  print("n")  print('Right-justified strings:')   print('------------------------')   wordCount = 0  for w in str1.split():     print('%10s' % w)     wordCountwordCount = wordCount + 1     if(wordCount % 2 == 0):        print()

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

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

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

  • 清單6 FixedColumnWidth2.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個字符。代碼的最后部分輸出所有“剩余”的字符。

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

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

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

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

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

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

  • 清單8 StringChars1.py

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

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

06 join()函數(shù)

另一個去掉多余空格的方法是使用join()函數(shù)

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

讀到這里,這篇“怎么理解Python中的for循環(huán)”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI