Rumah  >  Artikel  >  pembangunan bahagian belakang  >  6 contoh, 8 coretan kod, penjelasan terperinci tentang For loop dalam Python

6 contoh, 8 coretan kod, penjelasan terperinci tentang For loop dalam Python

PHPz
PHPzke hadapan
2023-04-11 19:43:172516semak imbas

Python menyokong gelung, dan sintaksnya berbeza sedikit daripada bahasa lain (seperti JavaScript atau Java). Blok kod berikut menunjukkan cara menggunakan gelung for dalam Python untuk mengulangi elemen dalam senarai:

Coretan kod di atas memisahkan tiga huruf ke dalam baris Dicetak. Anda boleh mengehadkan output kepada baris yang sama dengan menambahkan koma "," selepas pernyataan cetakan (jika terdapat banyak aksara yang ditentukan untuk dicetak, ia akan menjadi "garis dibalut"), kodnya adalah seperti berikut:

Apabila anda ingin memaparkan kandungan dalam teks dalam satu baris dan bukannya berbilang baris, anda boleh menggunakan bentuk kod di atas. Python juga menyediakan fungsi terbina dalam reversed(), yang boleh membalikkan arah gelung, contohnya:

Ambil perhatian bahawa hanya apabila saiz objek ditentukan , atau fungsi reverse traversal hanya berkesan apabila objek melaksanakan kaedah _reversed_().

01 A untuk gelung menggunakan tryexcept

StringToNums.py dalam Penyenaraian 1 menggambarkan cara menjumlahkan set integer yang ditukar daripada rentetan.

  • Menyenaraikan 1 StringToNums.py
<ol><pre class="brush:sql;toolbar:false;">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') 

Penyenaraian 1 mula-mula memulakan baris pembolehubah, jumlah dan invalidStr, dan kemudian memaparkan kandungan barisan. Seterusnya, kandungan dalam baris dibahagikan kepada perkataan, dan kemudian nilai perkataan itu terkumpul ke dalam jumlah berubah satu demi satu melalui blok kod cuba. Jika pengecualian berlaku, kandungan str semasa dilampirkan pada pembolehubah invalidStr.

Apabila pelaksanaan gelung tamat, Penyenaraian 1 mencetak jumlah perkataan berangka, diikuti dengan perkataan bukan angka. Outputnya kelihatan seperti ini:

02 Operasi Eksponen

Penyenaraian 2 Nth_exponet.py menggambarkan cara mengira set integer bagi kuasa.

  • Penyenaraian 2 Nth_exponet.py
<ol><pre class="brush:sql;toolbar:false;">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) 

Penyenaraian 2 mempunyai fungsi pwr() yang parameternya ialah nilai angka. Gelung dalam fungsi ini boleh mencetak parameter yang dinaikkan kepada kuasa 1 hingga n Nilai n berjulat dari 1 hingga maxCount+1.

Bahagian kedua kod memanggil fungsi pwr() daripada 1 kepada maxCount+1 melalui gelung for. Outputnya kelihatan seperti ini:

03 Gelung Bersarang

Penyenaraian 3 Triangular1.py menunjukkan cara mencetak baris Integer berturut-turut (bermula pada 1) di mana panjang setiap baris adalah 1 lebih besar daripada baris sebelumnya.

  • Menyenaraikan 3 Triangular1.py
<ol><pre class="brush:sql;toolbar:false;">max = 8 
for x in range(1,max+1): 
  for y in range(1,x+1): 
    print(y,'', end='') 
  print()  

Penyenaraian 3 mula-mula memulakan pembolehubah maks kepada 8, dan kemudian melepasi pembolehubah x daripada 1 to max+ 1 Laksanakan gelung. Gelung dalam mempunyai pembolehubah gelung y dengan nilai dari 1 hingga x+1, dan mencetak nilai y. Outputnya adalah seperti berikut:

04 Gunakan fungsi split() dalam gelung for

Python menyokong pelbagai operasi String yang mudah fungsi berkaitan, termasuk fungsi split() dan fungsi join(). Fungsi split() berguna apabila anda perlu tokenize (iaitu, "split") baris teks menjadi perkataan dan kemudian gunakan gelung for untuk melelaran melalui perkataan.

Fungsi join() ialah bertentangan dengan fungsi split(), ia "menyertai" dua atau lebih perkataan ke dalam satu baris. Anda boleh mengalih keluar ruang tambahan dengan mudah dalam ayat dengan menggunakan fungsi split() dan kemudian memanggil fungsi join() supaya hanya terdapat satu ruang antara setiap perkataan dalam baris teks.

1. Gunakan fungsi split() untuk perbandingan perkataan

Compare2.py dalam Penyenaraian 4 menggambarkan cara membandingkan setiap perkataan dalam rentetan teks dengan perkataan lain melalui fungsi split() Compare.

  • Penyenaraian 4 Bandingkan2.py
<ol><pre class="brush:sql;toolbar:false;">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') 

Penyenaraian 4 Gunakan fungsi split() untuk membandingkan setiap perkataan dalam rentetan x dengan perkataan abc untuk perbandingan. Jika perkataan sepadan dengan tepat, pembolehubah yang sama ditambah dengan 1 jika tidak, perbandingan tidak peka huruf besar-besaran dicuba, dan jika terdapat padanan, pembolehubah padanan huruf besar-besaran ditambah.

Keluaran Penyenaraian 4 kelihatan seperti ini:

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

清单5 的FixedColumnCount1.py 说明了如何打印一组设定固定宽度的字符串。

  • 清单5 FixedColumnCount1.py
<ol><pre class="brush:sql;toolbar:false;">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,然后执行两个for循环。第一个for循环对str1的每个单词进行左对齐打印,第二个for循环对str1的每个单词进行右对齐打印。在每个循环中当wordCount是偶数的时候就输出一次换行,这样每打印两个连续的单词之后就换行。清单5的输出如下所示:

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

清单6 的FixedColumnWidth1.py说明了如何打印固定宽度的文本。

  • 清单6 FixedColumnWidth1.py
<ol><pre class="brush:sql;toolbar:false;">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的值。之后通过循环打印rowCount行,每行包含columnWidth个字符。代码的最后部分输出所有“剩余”的字符。清单6的输出如下所示:

4. 使用split()函数比较文本字符串

清单7 的CompareStrings1.py说明了如何判断一个文本字符串中的单词是否出现在另一个文本字符串中。

  • 清单7 CompareStrings1.py
<ol><pre class="brush:sql;toolbar:false;">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(并输出相应打印信息)。

清单7的后半部分通过一个循环遍历字符串text1中的每个单词,并判断其是否出现在text2中。如果发现有匹配失败的情况,就设置变量subStr为False,并通过break语句跳出循环,提前终止for循环的执行。最后根据变量subStr的值打印对应的信息。清单7的输出如下所示:

05 用基础的for循环显示字符串中的字符

清单8 的StringChars1.py说明了如何打印一个文本字符串中的字符。

  • 清单8 StringChars1.py
<ol><pre class="brush:sql;toolbar:false;">text = 'abcdef' 
for ch in text: 
   print('char:',ch,'ord value:',ord(ch)) 
print 

清单8 的代码简单直接地通过一个for循环遍历字符串text并打印它的每个字符以及字符的ord值(ASCII 码)。清单8 的输出如下所示:

06 join()函数

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

split()函数将一个文本字符串“分割”为一系列的单词,同时去掉多余的空格。接下来join()函数使用一个空格作为分隔符将字符串text1中的单词连接在一起。上述代码的最后部分使用字符串XYZ替换空格作为分隔符,执行相同的连接操作。上述代码的输出如下:

关于作者:奥斯瓦尔德·坎佩萨托(OswaldCampesato),专门研究深度学习、Java、Android和TensorFlow。他是25本书的作者/合著者。

本文摘编自《机器学习入门:Python语言实现》,经出版方授权发布。(ISBN:9787111695240)

 

Atas ialah kandungan terperinci 6 contoh, 8 coretan kod, penjelasan terperinci tentang For loop dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam