python while語句,如何使while接受多個條件

時間 2021-09-08 04:24:34

1樓:網際網路

1、while迴圈語句

迭代(iteration)意味著反覆執行相同的**塊。實現迭代的程式設計結構稱為迴圈(loop)。

假設有一項任務,要在螢幕上輸出從1到100的數字。僅僅使用之前討論過的知識,可能會寫出如下**:

print(1)

print(2)

print(3)

# 此處省略print(4) ~ print(99)

print(100)

這樣做非常麻煩,也不聰明。學會程式設計的好處之一就是可以方便地處理重複工作。python中的迴圈可以分為while迴圈和for迴圈兩種。

與if語句類似,while語句同樣首先判斷布林表示式,如果為真,那麼繼續執行迴圈體;如果為假,那麼跳出迴圈體。while迴圈的語法格式如下:

while 表示式:

迴圈體使用while迴圈來完成從1到100的輸出任務:

>>> n = 1   # 因為從1開始列印,所以先將n賦值為1

>>> while n <= 100:   # 每次都判斷n的值是否小於等於100

...     print(n)   # 列印n的值

...     n = n + 1   # 每次將n的值增加1,以便列印2、3、4……

1 23 498 99

100while迴圈總是不斷地判斷條件是否滿足,直到條件不滿足才跳出迴圈。利用這個特性,可以編寫一個“猜數字”的遊戲。先由一個人輸入一個數字(自然數),這個數作為謎底。

再由另外一個人猜,如果猜的數字比謎底大,那麼列印“猜大了”; 如果猜的數字比謎底小,那麼列印“猜小了”;直到猜的數字與謎底相等為止,列印“恭喜,猜對了!”。**示例如下:

answer = int(input('請輸入謎底數字:'))

number = int(input('請輸入您要猜的數字:'))

while number != answer:   # 如果number不等於answer,即猜錯了,那麼進入迴圈

if number > answer:   # 如果猜的數字大於謎底

print('猜大了!')

else:   # 如果猜的數字小於謎底

print('猜小了!')

number = int(input('請繼續輸入您要猜的數字:'))

print('恭喜,猜對了!')   # 如果跳出迴圈,那麼說明猜對了

建議將這個程式使用指令碼模式執行,輸入資料,測試執行結果:

請輸入謎底數字:77

請輸入您要猜的數字:20

猜小了!

請繼續輸入您要猜的數字:90

猜大了!

請繼續輸入您要猜的數字:80

猜大了!

請繼續輸入您要猜的數字:77

恭喜,猜對了!

2、小心死迴圈

死迴圈是指程式在流程控制中一直重複執行某一段**,無法依靠自身的控制終止迴圈。初學者很容易不小心寫出死迴圈。例如,在前文使用while迴圈完成從1到100的輸出任務中,如果將最後一行**“n = n + 1”刪掉,那麼該迴圈就變成了死迴圈。

這是因為n的值不會增加,從而會一直滿足“n <= 100”的條件無法跳出迴圈。試著執行如下**:

>>> n = 1

>>> while n < 100:

...     print(n)

1 11 11 11 1當敲下最後一個回車鍵時,程式會在螢幕上不停地列印1,直到強制關閉程式視窗,或者按ctrl+c鍵終止程式。死迴圈可能會使電腦崩潰或者造成其他與預期不符的後果,因此,在使用while迴圈時要格外小心,看看是否有能夠滿足條件跳出迴圈的“出口”。

需要指出的是,有些應用場景下需要使用死迴圈(例如,作業系統最外層是死迴圈,保證電腦一直執行),也就是說寫出死迴圈不一定是錯的,但應該僅當清楚自己在做什麼時,才寫死迴圈。

2樓:日time寸

一個等號是賦值語句,兩個等號是判斷兩個變數是否相等所以應該是x==1

然後,or是邏輯運算子,or左側和右側至少有一個為true則為true,例如false or true為true

要判斷i為1或為2,必須要使用兩個表示式進行判斷,二者再相或所以應該是while i==1 or i==2

3樓:

while i == 1 or i == 2:

如何判斷英語句子時態,如何判斷英語句子時態

默默她狠傷 判斷從句所屬型別 英語中存在三類從句 定語從句 狀語從句和名詞性從句。判斷方法在於 看從句在整個句子中充當什麼成分。充當定語就是定語從句,充當狀語就是狀語從句,充當主語就是主語從句。在這一步驟中又存在一些方法 1 一般來說,只要使用在名詞或代詞後面的從句都是定語從句 2 放在介詞和動詞後...

如何在sql中用alter table語句修改表中的列名

傳奇勇者 應該是sp rename 表名.原列名 新列名 標點符號也不能錯,另外有約束列不能修改 補充 sql 提供了sp rename改名,alter table可以修改 增加 刪除列屬性,但不能更改列名,除非是刪除這個列,重新建乙個列,這樣的話資料就會丟失。這個題目的邏輯有問題。 exec sp...

求C 語言如何使用if語句

這個程式可以直接執行,你可以自己再改進一下 include using namespace std int main cout system pause include include int main else if c 2 else if c 3 else if 判斷條件 else 後續語句 i...