python迴圈語句之while迴圈
2022-05-09由 小小知識屋 發表于 漁業
while語句如何構成死迴圈
3。2 迴圈結構
在現實的生活中,有許多的場景是不斷重複做一些事情。比如人的吃飯和睡覺就是最直觀的例子。在程式設計中如果想計算
1+2+3+……+n的值是多少,也就是計算機要重複不斷累加計算,就要用到迴圈語句,在Python中提供了兩種迴圈語句,分別是while迴圈和for迴圈。
3-2-1while迴圈
while迴圈是首先判斷迴圈條件,滿足條件則執行迴圈體語句,再判斷迴圈條件……。。一直到迴圈條件不滿足則執行迴圈體下面的語句。
使用格式為:
while 條件表示式:
條件為真執行迴圈體語句塊
請注意迴圈一般要有迴圈的終止條件,否則會進入死迴圈。只有在特殊的應用中會特別設定條件為
True來實現無限迴圈。
例
3-2-1-1 輸入下面的程式碼,分析產生的結果
【參考程式碼】
01
#程式設計實現:計算1+2+3+4+。。。。。+1000的和
02
#全部寫出來,但是不是太合理。都是重複的加的操作。
03
#迴圈:解決重複的操作過程
04
#第一個:while迴圈
05
‘’‘
06
迴圈前面的語句
(0)
07
while(判斷條件(1)):
08
——
滿足條件,執行迴圈語句。
(2)
09
迴圈後面的語句。
(3)
10
執行:
0-1(真)-2-1(真)-2-1(真)-2……1(假)-3
11
’‘’
12
i=
1
;
13
s=
0
;
14
while
(i<=
1000
):
15
——
s=s+i;
16
——
i=i+
1
;
17
(
“這是迴圈後面的語句。”
)
18
(
“1+2+3+。。。1000的和是:”
,s)
19
#迴圈需要注意的問題:迴圈在一般情況下,需要有迴圈終止的條件。
20
#如果沒有終止條件,會進入死迴圈。
21
#break語句:跳出迴圈,執行迴圈後面的語句
22
#程式設計實現:輸出我們的輸入,當輸入為“0”,跳出迴圈。
23
while
(
True
):
24
——
i=
input
()
25
——
(i)
26
——
if
i==
“0”
:
27
————
break
28
(
“迴圈後面的語句”
)
29
#程式設計實現:計算1+2+3+4+。。。。。+1000的奇數和與偶數和
30
#偶數:除以2,餘數為0。否則就是奇數。
31
i=
1
;
32
#奇數和
33
sodd=
0
;
34
#偶數和
35
seven=
0
;
36
while
(i<=
1000
):
37
——
if
i%
2
==
0
:
38
————
seven=seven+i
39
——
else
:
40
————
sodd=sodd+i
41
——
i=i+
1
;
42
(
“這是迴圈後面的語句。”
)
43
(
“1+2+3+。。。1000的奇數和是:”
,sodd)
44
(
“1+2+3+。。。1000的偶數和是:”
,seven)
45
(
“1+2+3+。。。1000的和是:”
,sodd+seven)
【執行結果】
這是迴圈後面的語句。
1+2+3+。。。1000的和是: 500500
123
123
abc
abc
迴圈後面的語句
這是迴圈後面的語句。
1+2+3+。。。1000的奇數和是: 250000
1+2+3+。。。1000的偶數和是: 250500
1+2+3+。。。1000的和是: 500500
3-2-1-2 輸入下面的程式碼,分析產生的結果
【參考程式碼】
01
#while迴圈的巢狀使用
02
# 程式設計實現:列印如下的星號(要求使用while實現)
03
‘’‘
04
**********
05
**********
06
**********
07
**********
08
**********
09
**********
10
**********
11
**********
12
’‘’
13
#while列印第一行
14
#i控制一行中字元的迴圈
15
i=
1
16
#j控制迴圈的行數
17
j=
1
18
while
(j<=
8
):
19
——
i=
1
20
——
while
(i<=
10
):
21
————
(
“*”
,end=
‘’
)
22
————
i=i+
1
23
——
(
“
\r
”
)
24
——
j=j+
1
25
#程式設計實現:列印如下的星號(要求使用while實現)
26
‘’‘
27
*
28
**
29
***
30
****
31
*****
32
******
33
*******
34
********
35
’‘’
36
#i控制一行中字元的迴圈
37
i=
1
38
#j控制迴圈的行數
39
j=
1
40
while
(j<=
8
):
41
——
i=
1
42
——
while
(i<=j):
43
————
(
“*”
,end=
‘’
)
44
————
i=i+
1
45
——
(
“
\r
”
)
46
——
j=j+
1
47
48
#程式設計實現:將上面的對稱輸出。
49
#i控制一行中字元的迴圈
50
i=
1
51
#j控制迴圈的行數
52
j=
1
53
while
(j<=
8
):
54
——
i=
1
55
——
while
(i<=
8
-j):
56
————
(
“ ”
,end=
‘’
)
57
————
i=i+
1
58
——
i=
1
59
——
while
(i<=j):
60
————
(
“*”
,end=
‘’
)
61
————
i=i+
1
62
——
i=
1
63
——
while
(i<=j):
64
————
(
“*”
,end=
‘’
)
65
————
i=i+
1
66
——
(
“
\r
”
)
67
——
j=j+
1
68
#程式設計實現:給上圖新增一個樹幹,形成一顆松樹。
69
#16個星號,4個星號的樹幹,最左邊還要6個空格。
70
#i控制一行中字元的迴圈
71
i=
1
72
#j控制迴圈的行數
73
j=
1
74
while
(j<=
8
):
75
——
i=
1
76
——
while
(i<=
6
):
77
————
(
“ ”
,end=
‘’
)
78
————
i=i+
1
79
——
i=
1
80
——
while
(i<=
4
):
81
————
(
“*”
,end=
‘’
)
82
————
i=i+
1
83
——
(
“
\r
”
)
84
——
j=j+
1
85
‘’‘
86
當我們要輸出一個平面結構的時候,我們需要用迴圈的巢狀來完成
87
思考:
88
(
1)每一行如何輸出
89
(
2)要輸出多少行
90
(
3)每行輸出同行數的關係(迴圈變數的變化情況)
91
’‘’
【執行結果】
**********
**********
**********
**********
**********
**********
**********
**********
*
**
***
****
*****
******
*******
********
**
****
******
********
**********
************
**************
****************
****
****
****
****
****
****
****
****