Python 編程中 while 語句用於循環執行程序,即在某條件下,循環執行某段程序,以處理需要重複處理的相同任務。其基本形式為:
<code>while
判斷條件(condition): 執行語句(statements)……/<code>
執行語句可以是單個語句或語句塊。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。
當判斷條件假 false 時,循環結束。
執行流程圖如下:
Gif 演示 Python while 語句執行過程
複雜一點:
實例
#!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"
運行實例 »
以上代碼執行輸出結果:
<code>The
count
is
:0
The
count
is
:1
The
count
is
:2
The
count
is
:3
The
count
is
:4
The
count
is
:5
The
count
is
:6
The
count
is
:7
The
count
is
:8
Good
bye!/<code>
while 語句時還有另外兩個重要的命令 continue,break 來跳過循環,continue 用於跳過該次循環,break 則是用於退出循環,此外"判斷條件"還可以是個常值,表示循環必定成立,具體用法如下:
# continue 和 break 用法 i = 1 while i < 10: i += 1 if i%2 > 0: # 非雙數時跳過輸出 continue print i # 輸出雙數2、4、6、8、10 i = 1 while 1: # 循環條件為1必定成立 print i # 輸出1~10 i += 1 if i > 10: # 當i大於10時跳出循環 break
無限循環
如果條件判斷語句永遠為 true,循環將會無限的執行下去,如下實例:
實例
#!/usr/bin/python # -*- coding: UTF-8 -*- var = 1 while var == 1 : # 該條件永遠為true,循環將無限執行下去 num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!"
以上實例輸出結果:
<code>Enter
a number :20
You
entered: 20
Enter
a number :29
You
entered: 29
Enter
a number :3
You
entered: 3
Enter
a number between :Traceback (most recent call last):
File
"test.py", line 5, in
num
=raw_input("Enter a number :")
KeyboardInterrupt
/<code>
注意:以上的無限循環你可以使用 CTRL+C 來中斷循環。
循環使用 else 語句
在 python 中,while … else 在循環條件為 false 時執行 else 語句塊:
實例
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"
以上實例輸出結果為:
<code>0
is
less
than
5
1
is
less
than
5
2
is
less
than
5
3
is
less
than
5
4
is
less
than
5
5
is
not
less
than
5
/<code>
簡單語句組
類似 if 語句的語法,如果你的 while 循環體中只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:
實例
#!/usr/bin/python flag = 1 while (flag): print 'Given flag is really true!' print "Good bye!"
注意:以上的無限循環你可以使用 CTRL+C 來中斷循環。
學習筆記:
猜大小的遊戲
<code> import randoms
=int
(random.uniform(1
,10
))m
=int
(input('輸入整數:'
))while
m
!=s
:if
m
>s
:'大了'
)m
=int
(input('輸入整數:'
))if
m
s
:'小了'
)m
=int
(input('輸入整數:'
))if
m
==s
:'OK'
)break
;/<code>
猜拳小遊戲
<code>import
randomwhile
1
: s = int(random.randint(1
,3
))if
s ==1
: ind ="石頭"
elif
s ==2
: ind ="剪子"
elif
s ==3
: ind ="布"
m = raw_input('輸入 石頭、剪子、布,輸入"end"結束遊戲:'
) blist = ['石頭'
,"剪子"
,"布"
]if
(mnot
in
blist)and
(m !='end'
):"輸入錯誤,請重新輸入!"
elif
(mnot
in
blist)and
(m =='end'
):"\n遊戲退出中..."
break
elif
m == ind :"電腦出了: "
+ ind +",平局!"
elif
(m =='石頭'
and
ind =='剪子'
)or
(m =='剪子'
and
ind =='布'
)or
(m =='布'
and
ind =='石頭'
):"電腦出了: "
+ ind +",你贏了!"
elif
(m =='石頭'
and
ind =='布'
)or
(m =='剪子'
and
ind =='石頭'
)or
(m =='布'
and
ind =='剪子'
):"電腦出了: "
+ ind +",你輸了!"
/<code>
測試結果:
<code>輸入 石頭、剪子、布,輸入"end
"結束遊戲:石頭 電腦出了: 石頭,平局! 輸入 石頭、剪子、布,輸入"
end
"結束遊戲:石頭 電腦出了: 剪子,你贏了! 輸入 石頭、剪子、布,輸入"
end
"結束遊戲:
/<code>
十進制轉二進制
<code> denum = input("輸入十進制數:"
)"(10)"
, binnum = []while
denum >0
: binnum.append(str(denum %2
)) denum//
=2
'= '
,while
len(binnum)>0
:import
sys sys.stdout.write(binnum.pop()) /<code>
Pyhton 去除字符串首尾的空格:
<code>def
trim
(s)
:while
s[:1
] ==' '
: s = s[1
:]while
s[-1
:] ==' '
: s = s[:-1
]return
s str =' Runoob '
print(trim(str))/<code>
while循環 - 九九乘法表
<code> i = 1while
i : j = 1while
j:"*"
, i ," = "
, i * j ,' '
,if
i == j :break
j += 1if
j >= 10:break
"\n"
i += 1if
i >= 10:break
/<code>