日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的while和for循环

發布時間:2023/12/2 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的while和for循环 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

while語句,提供了編寫通用循環的一種方法,而for語句是用來遍歷序列對象內的元素,并對每個元素運行一個代碼塊。break,continue用在循環內,跳出整個循環或者跳出一次循環。
一、while循環
1、一般格式
格式:首行以及測試表達式,有一列或多列縮進語句的主體以及一個選用的else部分(控制權離開循環時而沒有碰到break語句時會執行)
python會一直計算開投的測試,然后執行循環主體內的語句,直到測試返回假值為止。
while <test>:
??? <statements1>
else:
??? <statements2>
2、例子
>>> while True:
...? print "Type Ctrl+C to stop!"

>>> while x:????
...???? print x,
...???? x=x[1:]
...?
diege iege ege ge e
注意 print末尾的逗號,會使所有輸出都出現在同一行。
>>> a,b=0,10?
>>> while a<b:
...???? print a,
...???? a+=1
...?
0 1 2 3 4 5 6 7 8 9
Python并沒有其他語言中所謂的"do until”循環語句,不過我們可以在循環主體底部以一個測試和break來實現類似的功能。
while??? True:
??? do something
??? if exitTest():break
3、對比shell的while語句
while 命令
do
??? 命令1
??? 命令2
done
在系統管理時常用與逐行讀取一個文件并處理。
while read line
do
??????? echo $line
done < /etc/rc.conf
shell中還有一個類似while的循環until
until 條件
do
??????? 命令1
??????? 命令2
done?
EG:
IS_ROOT=`who |grep root`
until [ "$IS_ROOT" ]
do
??????? echo 'root online'
??????? sleep 2
done?????????????

二、for循環
for循環在Python中是一個通用的序列迭代器:可以遍歷任何有序的序列對象內的元素。for語句可用于字符串,列表,元組,其他內置可迭代對象以及之后我們能夠通過類所創建的新對象。
1、一般格式
Python for循環的首行定義了一個賦值目標(或【一些目標】),以及你想遍歷的對象,首行后面是你想重復的語句塊(一般都有縮進)
for <target> in <object>:
??? <statements>
else:
??? <statements>
當ptyhon運行for循環時,會逐個將序列對象中的元素賦值給目標,然后為每個元素執行循環主體。循環主體一般使用賦值的目標來引用序列中當前的元素,就好像那事遍歷序列的游標。

for首行中用作賦值目標的變量名通常是for語句所在作用于的變量(可能是新的)。這個變量名沒有什么特別的,甚至可以在循環主體中修改。但是當控制權再次回到循環頂端時,就會自動被設成序列的下一個元素。循環之后,這個變量一般都還是引用了最近所用過的元素,也就是序列中最后的元素,除非通過一個break語句退出了循環。

for語句也支持一個選用的else塊,它的工作就像在while循環中一樣:如果循環離開時沒有碰到break語句,就會執行(也就是序列所有元素都被訪問過了)
break和continue語句也可用在for循環中,就像while循環那樣。for循環完整的格式如下:
for <target> in <object>:
??? <statements>
??? if <test>:break
??? if <test>:conitnue
else:
??? <statements>

對比shell的for循環
for? 變量名 in 列表
do
??? 命令1
??? 命令1
done

for i in 1 2 3?
do?
??????? echo $i?
don

for i in `ls -1 /root`
do?
??????? echo $i?
done

2、例子
1)基本應用
>>> x=[1,2,3,4,5]
>>> for i in x:
...???? print i
...?
1
2
3
4
5
>>> for i in x:??
...???? if i==3:break
...???? print i
...?
1
2
>>> for i in x:??????
...???? print i
...???? if i==3:break
...?
1
2
3
注意if語句的位置
> D={'name':['diege','lily','kelly'],'class':2012,'number':48}
>>> for i in D:?????
...???? print i,'=>',D[i]??
...?
number => 48
name => ['diege', 'lily', 'kelly']
class => 2012
多層
>>> for i in D:??????????????????????
...???? if type(D[i])==list:?????????
...???????????? for l in D[i]:???????
...???????????????????? print l??????
...???? else:
...???????????? print? D[i]
...?
48
diege
lily
kelly
2012
for元組賦值
首行定義了一個賦值【一些目標】
>>> T=[(1,2),(3,4),(5,6)]
>>> for (a,b) in T:
...???? print a,b
...?
1 2
3 4
5 6

for循環嵌套
遍歷一個字典(或列表)包括字典,列表,元組的的語句
D={'game':'sjgame','version':[1.0,1.1,1.2,1.3],'useid':(1000,1001,1002,1003,1004),'character':{'WS':'wushi','FS':'fashi','MS':'moshi
'},'CP':'ice'}

for i in D:
??????? if type(D[i])==list:
??????????????? for l in D[i]:
??????????????????????? print l
??????? elif type(D[i])==tuple:
??????????????? for t in D[i]:
??????????????????????? print t
??????? elif type(D[i])==dict:
???????????????? for d in D[i]:
??????????????????????? print d
??????? else:
??????????????? print?? D[i]
代替break的
>>> items=['diege',999,(3,7),1.3]
>>> tests=[(3,7),3.14]
>>> for key in tests:?
...???? for item in items:?????????????
...???????????? if key==item:??????
...???????????????????? print key,'was found'
...???????????????????? break
...???? else:
...???????????? print key,'not found!'?
...?
(3, 7) was found
3.14 not found
有點類似查找的功能。
收集兩個序列中相同元素
>>> seq1='diege'
>>> seq2='decgl'
>>> res=[]??????????????????
>>> for x in seq1:??????????
...???? if x in seq2:??????????
...???????????? res.append(x)
...?
>>>?
>>> res
['d', 'e', 'g', 'e']
準確的說是顯示seq1和seq2都用的在seq1一次順序。

3、為什么要在意“文件掃描”
循環讀取文件:while在文件結尾時使用break
>>> fl=open('/etc/rc.conf')?
>>> while True:
...???? char=fl.read(1)
...???? if not char:break
...???? print char,
MS for循環打印出來的字體正常點,呵呵。
>>> for char in open('/etc/rc.conf'):for char in open('/etc/rc.conf').read():的縮寫
...???? print char
...?

使用while按行處理
>>> fl=open('/etc/rc.conf')
>>> while True:?????????????
...???? line=fl.readline()
...???? if not line:break
...???? print line,
...?
按行讀取文件文件時,for循環是最容易編寫及執行最快的選擇
>>> for line in open('/etc/rc.conf'):#默認read()
...???? print line
...?
>>> for line in open('/etc/rc.conf').readlines():
...???? print line
...?
readlines會一次把文件載入到行字符串的列表
>>> for line in open('/etc/rc.conf').xreadlines():
...???? print line
...?
xreadlines則是按需求加載文字列,從而避免大型文件導致內存溢出。
每個步驟所讀取的數據越多,程序會員越快。

總結

以上是生活随笔為你收集整理的python的while和for循环的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。