程式一般是順序執行,if else
也是順序執行的;而迴圈(cycle)是控制程式執行流程的;
迴圈是程式的主要過程之一,對於列表的訪問,數列的計算都有很好的用途。在迭代過程中很有用,還有就是等比,等差數列和一些不是很容易求的數列都可以通過迴圈來進行求解。
python迴圈只有兩種:while , for
# while 迴圈
count = 0
while
count
< 10:
print "the count is ", count
count += 1
print '迴圈結束'
while....else
滿足執行裡面的,不滿足執行else
語句塊
for迴圈在迭代讀取方面很好用:
for
item
in iterable:
do something
例子:for迴圈只要兩句,while迴圈卻要四句
# 遍歷字串
a = 'python'
print a[0:2]
# 使用while遍歷a
i = 0
while i < len(a):
print a[i]
i += 1
#使用range()判斷是不是在範圍
k = 0
while k in range(len(a)):
print a[k]
k += 1
# 使用for迴圈遍歷a
for i in
a: print i
#使用下表讀取:
for i in range(len(a)):
print a[i]
字典是無序的,所以for讀取時候就不能通過下標進行讀取,而是通過name值讀取對應的value
#字典先找到keys()值,然後再通過key去找value
city =
for name in city.keys():
for c in city[name]:
print name, c
enumerate()函式,自動生成下表
# for 下標 ,值 in enumerate()
letter = ['a', 'b', 'c', 'd', 'e']
forindex, value in enumerate(letter):
print value, 'is', index
輸出:a is
0b is
1c is
2d is
3e is
4
同時操作兩個列表zip()函式:裡面引數是可迭代的物件:
如果各個迭代器的元素個數不一致,則按照最小的返回
list1 = ['hello', 'world', 'yes']
list2 = [1, 2, 3]
print zip(list1, list2)
print zip(list2, list1)
輸出:[('hello', 1), ('world', 2), ('yes', 3)]
[(1, 'hello'), (2, 'world'), (3, 'yes')]
不一致情況:
list1中去掉乙個元素
list1 = ['hello', 'world']
list2 = [1, 2, 3]
print zip(list1, list2)
print zip(list2, list1)
輸出:[('hello', 1), ('world', 2)]
[(1, 'hello'), (2, 'world')]
在字典中的情況:
list1 = (1, 2, 3)
dict1 =
# .keys() 獲取字典中所有的鍵值 .values()獲取字典中所有的值
print dict1.keys()
print dict1.values()
print zip(list1, dict1)
list2 = [1, 2]
zip()反向操作,把組合的數在反轉成原來的列表形式:
# 反向操作 zip(****)num1 = [2, 4, 6, 8]
num2 = [1, 3, 5, 7]
result = zip(num1, num2)
print result
print result
print zip(* result)
#輸出結果:
[(2, 1), (4, 3), (6, 5), (8, 7)]
[(2, 1), (4, 3), (6, 5), (8, 7), (10, 19)]
[(2, 4, 6, 8, 10), (1, 3, 5, 7, 19)]
for a in range(4):
print
'------------'
for b in range(3):
print b,
print
''
速度比for迴圈更高效推導式**少,執行速度快
# 把大寫英文變成小寫
print [x.lower() for x in list('abcdef')]
print [x.upper() for x in
'adbcef']
# 輸出:
['a', 'b', 'c', 'd', 'e', 'f']
['a', 'd', 'b', 'c', 'e', 'f']
# 字典的推導式
print
print
輸出:
字典的推導式:因為鍵值對存在,所以有所不同
e =
都是只對當前一層迴圈起作用;
示例:
#正常不帶break和pass的語句:
for i in range(4):
print i
for j in range(5):
# if j == 2:# break #continue
print j,
print
#輸出:00
1234
1012
3420
1234
3012
34
continue 跳過這一次迴圈:
# continue 跳過本次迴圈
for i in range(4):
print i
for j in range(5):
if j == 2:
continue
print j,
print
輸出:0
#第一層迴圈輸出01
34#第二層迴圈輸出 ,其中第二層迴圈的j==2時的布輸出了10
1342
0134
3013
4
break 跳出整個迴圈;
# continue 跳過本次迴圈
for i in range(4):
print i
for j in range(5):
if j == 2:
break
#break
print j,
print
#輸出:00
1101
2013
01
pass 是空語句保持完整性:
例子:
for i in range(10):
pass
# 保持**的完整性
for … else: else是在for迴圈正常執行完(不是通過break語句而中斷的)會執行的語句:
# 13、使用while輸出1-100內的質數 ,類似於 2,3,5,7,11,13....
x = 1
while x < 100:
tmp = x // 2
while tmp > 1:
if x % tmp == 0:
break
else:
tmp -= 1
else: # 這個else是跟while關聯的,這樣就當while都迴圈完成了以後就會執行else,用這個可以巧妙的進行列印質數,當所有
print x,
x += 1
i = 0
while
8*(2**i) < 8848130:
i += 1
else:
print i
range()
函式前開後閉;例子:
print range(10)
print range(0,10,1)
print range(10,-1,-5)
print range(10,2) # 預設步長是加一,這個裡面沒有辦法所以輸出為空
print range(-3,-1)
輸出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[10, 5, 0]
[-3, -2]
Python基礎 迴圈
要計算1 2 3,我們可以直接寫表示式 1 2 3 6要計算1 2 3 10,勉強也能寫出來。但是,要計算1 2 3 10000,直接寫表示式就不可能了。為了讓計算機能計算成千上萬次的重複運算,我們就需要迴圈語句。python的迴圈有兩種,一種是for.in迴圈,依次把list或tuple中的每個元...
python基礎 迴圈
for迴圈 a 11,22,33,44 for i in a print i 結果 11 2233 44while迴圈 i 0 while i 3 i 3為迴圈條件,當條件為真時,執行後面的迴圈體 條件為假時不執行 print i i 1結果 0 12break和continue i 0 while...
Python基礎 迴圈
目錄迴圈 練習break continue 小結 要計算1 2 3,我們可以直接寫表示式 1 2 3 6要計算1 2 3 10,勉強也能寫出來。但是,要計算1 2 3 10000,直接寫表示式就不可能了。為了讓計算機能計算成千上萬次的重複運算,我們就需要迴圈語句。python的迴圈有兩種,一種是fo...