[转载] python中的for循环对象和循环退出
參考鏈接: Python中循環(huán)
流程控制-if條件? ?
?判斷條件,1位true,0是flesh,成立時true,不成立flesh,not取反?
?if? 1;? ?
? ? print 'hello python'
? ? print 'true'?
? ?not取反,匹配取反,表示取非1大于2的正確關系,也就是說取1大于2的不正確證明的結果?
?if? ?not 1 > 2 and? 1 == 1;? ? ? ?
? ? print 'hello python'
? ? ?print 'true'?
?if? 1 > 2;?
? ? print 'hello python'
? ? ?print 'true'
else:? ? ? ? ? ? 第一條件1大于2不成立,則執(zhí)行else里的條件
? ? print 'jia'? ? ? ? ? ??
print 'mei'? ? ? ? 這里的print與if是同行的,是單獨的一個主進程?
?if中執(zhí)行一個輸入數(shù)字的話,需要聲明這個數(shù)字是int類型(數(shù)值類型) ,不聲明的話會被認為是一個字符串,不會被識別為數(shù)值?
?#!/usr/bin/python
ss = int(raw_input("please a num: "))
if ss >= 90:
? ? print 'A or very good'
elif ss >= 80:
? ? print 'B or good'
elif ss >= 70:
? ? print 'C or pass'
else:
? ? print 'D'?
?if 對輸入的字符進行匹配判斷,匹配yes/no,或錯誤繼續(xù)輸入下列說明:將raw_input 賦值給yn,yn通過函數(shù)將字符統(tǒng)一為一個格式,if? yn? ==? '條件'? 來匹配是否符合,符合并輸出或執(zhí)行某些語法語句,這里也出現(xiàn)了if--elif--else的用法if yn == ‘條件’? ? 一個=是給變量賦值。兩個==才表示條件的判斷比較or? 表示鏈接多個判斷條件,也可以使用and來表示其他(關于字符的方法)*.lower表示把所獲取的大寫字符都變?yōu)樾懽址麃硖幚?.upper表示將小寫字符轉為大寫,取數(shù)值的大寫字符?
?#!/usr/bin/python
yesno = raw_input("Please input [Yes/No]: ")
yesno = yesno.lower()
if yesno == 'y' or yesno == 'yes':
? ? print "programe is runing..."
elif yesno == 'n' or yesno == 'no':
? ? print "programe is exit"
else:
? ? print "please input [Yes/No]"?
?流程控制-for循環(huán)for循環(huán)可以使用在序列里,可以在python中遍歷序列這里介紹一個函數(shù)range函數(shù)用來遍歷一個范圍內的所有數(shù)字,輸出的結果為一個列表類型的數(shù)據(jù),可以針對結果做奇偶數(shù)選擇,如從0開始選擇數(shù)值間隔為2的數(shù)值,這樣取值的全部都會是偶數(shù)數(shù)值range(10)這個函數(shù)是用來遍歷一個范圍內的所有數(shù)字,遍歷數(shù)值從0開始,會輸出0-9共十個數(shù)字,如?
?In [1]: range(10)
Out[1]:?
[0,
?1,
?2,
?3,
?4,
?5,
?6,
?7,
?8,
?9,]?
?range取值間隔數(shù)字(字符步長間隔的數(shù)值),如range取值從0開始的每隔兩個長度間隔的數(shù)字:?
?In [6]: range(0,10,2)
Out[6]: [0, 2, 4, 6, 8]?
?for循環(huán)?
?python的for循環(huán)可以針對列表、數(shù)組類型的數(shù)據(jù)進行遍歷,把遍歷出來的數(shù)值進行處理(這里是把遍歷做個相加或者3次方相乘)使用print打印出一個變量可以讓輸出結果不換行顯示,在打印變量名后加上一個逗號將xrange函數(shù)遍歷的數(shù)值給予一個列表中,然后使用for循環(huán)對列表進行遍歷,將遍歷出來的數(shù)值全部相加得出結果?
?#!/usr/bin/python
a=xrange(101)
sum=0
for i in a :
? ? sum = sum + i
print sum?
?for循環(huán)將函數(shù)遍歷結果進行奇偶判斷,且將的出來的偶數(shù)進行3次方相乘,print出for循環(huán)變量的結果,print變量后加逗號表示將結果輸出到一行內并以空格顯示(去除掉換行符)?
?[root@localhost shell]# cat 1.py?
#!/usr/bin/python
for i in [i**3 for i in range(0,11) if i % 2 !=0 ]:
? ? print i,
[root@localhost shell]# python 1.py?
1 27 125 343 729?
?range函數(shù)和xrange函數(shù)的區(qū)別range函數(shù)是將一個范圍內的數(shù)值打印出來并存儲到內存當中,所打印出來的數(shù)值存儲為一個列表,這個列表會占用內存資源。調用時會從內存中去讀取并釋放xrange輸出的數(shù)值則是一個引用的對象,它不是把遍歷結果輸出并保存到內存,而是在需要使用該數(shù)值時才會去遍歷這個范圍段的數(shù)值,和range不同的是,xrange不會輸出信息。xrange是一個object,只有在讀取xrange的數(shù)據(jù)時才會執(zhí)行它里面的值?
?xrange的幫助信息?
?In [7]: help(xrange)
Help on class xrange in module __builtin__:
class xrange(object)
?| xrange(stop) -> xrange object
?| xrange(start, stop[, step]) -> xrange object
?|??
?| Like range(), but instead of returning a list, returns an object that
?| generates the numbers in the range on demand. For looping, this is?
?| slightly faster than range() and more memory efficient.
?|??
?| Methods defined here:
?|??
?| __getattribute__(...)
?| x.__getattribute__('name') <==> x.name
?|??
?| __getitem__(...)
?| x.__getitem__(y) <==> x[y]
?|??
?| __iter__(...)
?| x.__iter__() <==> iter(x)
?|??
?| __len__(...)
?| x.__len__() <==> len(x)
?|??
?| __reduce__(...)
?|??
?| __repr__(...)
?| x.__repr__() <==> repr(x)
?|??
?| __reversed__(...)
?| Returns a reverse iterator.
?|??
?| ----------------------------------------------------------------------
?| Data and other attributes defined here:
?|??
?| __new__ = <built-in method __new__ of type object>
?| T.__new__(S, ...) -> a new object with type S, a subtype of T
(END)?
?xrange是將數(shù)值存儲到object里,只有在調用或for遍歷時才會取出數(shù)值,不調用時則不會產生列表存儲不占用內存資源?
?for循環(huán)字典?
?遍歷序列:將序列中各個元素取出來直接從序列取值通過索引來取值迭代,指重復執(zhí)行一個指令首先創(chuàng)建一個測試使用的字典?
?In [12]: nico = {'a':1,'b':2,'c':3}
In [13]: type(nico)
Out[13]: dict
In [14]: nico.fromkeys('abcdefg',1001)
Out[14]: {'a': 1001, 'b': 1001, 'c': 1001, 'd': 1001, 'e': 1001, 'f': 1001, 'g': 1001}?
?遍歷字典中的數(shù)值?
?In [15]: for i in nico:
? ? ...: print i, nico [i]
? ? ...:? ? ?
a 1
c 3
b 2?
?遍歷字典并添加一個格式化的輸出?
?In [18]: for i in nico:
? ? ...: print "%s -- %s" % (i, nico[i])
? ? ...:? ? ?
a -- 1
c -- 3
b -- 2?
?python循環(huán)輸出乘法口訣表使用for嵌套的方式在for循環(huán)中再套用一個for循環(huán),外層for循環(huán)遍歷出1-9的數(shù)字,內層循環(huán)遍歷出外層循環(huán)+1的數(shù)字,print條件中使用兩層for循環(huán)得出的輸出值相乘的出結果,再以格式化輸出顯示?
?[root@localhost shell]# vim chen.py?
#!/usr/bin/python
for f in xrange(1,10):
? ? for j in xrange(1,f+1):
? ? ? ? print "%sx%s=%s" % (j, f, j*f),
? ? print?
?for循環(huán)退出?
?python的for循環(huán)退出也是和shell里的三個退出參數(shù)用法一致,分別是break、continue和exit(終止本循環(huán)內容、終止這次循環(huán)和直接退出這個腳本)for循環(huán)的else輸出else中可以使用continue結束本次循環(huán)進入下次循環(huán),break則是結束本次循環(huán)輸出最后一次循環(huán)輸出,exit結束這個循環(huán)及整個腳本并輸出最后內容如這種腳本?
?[root@localhost shell]# vim else.py?
#!/usr/bin/python
import time
for i in xrange(10):
? ? if i == 3:
? ? ? ? continue
? ? elif i == 5:
? ? ? ?break
? ? elif i == 6:
? ? ? ? pass
? ? elif i == 8:
? ? ? ?sys.exit()
? ? print i
else:
? ? print 'bilibili'
print 'bilibili'?
?第一次if判斷i等于不等于3,循環(huán)到等于3時結束本次循環(huán),直接進入下次循環(huán),等于3這次循環(huán)不會輸入任何結果,當i等于5時,結束這次循環(huán)不再循環(huán)下去及輸出結果了。如后面的? i等于6、i等于8都不會去循環(huán)了,并執(zhí)行和for循環(huán)等行的print出來的內容。執(zhí)行出來的結果?
?[root@localhost shell]# python else.py?
0
1
2
4
bilibili?
?將腳本的break中斷循環(huán)注釋或刪除(即在i等于5時不終止循環(huán)),再次測試執(zhí)行結果,查看是否能夠輸出else中的內容只有當for循環(huán)中的數(shù)值執(zhí)行完成后才能夠執(zhí)行等行else中的輸出或執(zhí)行如果在某以匹配條件中存在break或sys.exit()的退出操作,整個腳本就會被終止,exit是退出整個腳本,后面的語句直接不執(zhí)行了,break是退出循環(huán)并會向下繼續(xù)執(zhí)行非for內的語句?
?[root@localhost shell]# cat else.py?
#!/usr/bin/python
import time
import sys
for i in xrange(10):
? ? if i == 3:
? ? ? ? continue
? ? elif i == 6:
? ? ? ? pass
? ? elif i == 8:
? ? ? ? ?pass
? ? print i
else:
? ? print 'bilibili'
print 'bilibili'?
?下面是摘抄的練習腳本for循環(huán)腳本示例,練習腳本?
?#!/usr/bin/python
#coding:utf-8
import sys
import random
n=random.randint(1,20)
for i in xrange(1,7):
? ? m=int(raw_input("請輸入你的數(shù)字: "))
? ? if m==n:
? ? ? ? print"恭喜你猜對了"
? ? ? ? sys.exit()
? ? elif m<n and (6-i)==0:
? ? ? ? print"沒機會啦!!!!!!"
? ? elif m<n:
? ? ? ? print"猜小了哦!\n請繼續(xù)猜"
? ? ? ? print"你還有%s次機會" % (6-i)
? ? elif m>n and (6-i)==0:
? ? ? ? print"沒機會啦!!!!!!"
? ? elif m>n:
? ? ? ? print"猜大了哦!\n請繼續(xù)猜"
? ? ? ? print"你還有%s次機會" % (6-i)
else:
? ? print"正確答案是:%s" %n
? ? print "答題超過限制,你輸了!"
?
轉載于:https://blog.51cto.com/8844414/2287861
總結
以上是生活随笔為你收集整理的[转载] python中的for循环对象和循环退出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CBT的完整形式是什么?
- 下一篇: 开源软件和自由软件_自由和开源软件的经济