while 迴圈 及 and or not 練習
一 while 迴圈
語法:
while 條件:
結果
如果條件為真,則直接執行結果,然後再次判斷條件,直到條件是假,停止迴圈
結束迴圈:
1.改變條件
2.break
二 流程控制 break 和 continue
1.break:立刻跳出迴圈,打斷的意思
2.continue :停止本次迴圈,繼續執行下一次迴圈
三 邏輯運算
1.and 兩端都為真 才是真 和 or 相反
2.or 一端為真 則為真 非0 即它
3. not 非 非真即假,非假即真
運算順序:
() > not > and > or
1.判斷下面邏輯語句的 True False
print(1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # 輸出是 True print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 )# 輸出是 False
2.求出下面邏輯語句的值
print(8 or 3 and 4 or 2 and 0 or 9 and 7) #輸出結果是 8 print(0 or 2 and 3 and 4 or 6 and 0 or 3) #輸出結果是 4
3.下列結果是什麼
print(6 or 2 > 1) # 輸出結果是 6 print(3 or 2 > 1) # 輸出結果是 3 print(0 or 5 < 4) # 輸出結果是 False print(5 < 4 or 3) # 輸出結果是 3 print(2 > 1 or6) # 輸出結果是 True print(3 and 2 > 1) # 輸出結果是 True print(0 and 3 > 1) # 輸出結果是 0 print(2 > 1 and 3) # 輸出結果是 3 print(3 > 1 and 0) # 輸出結果是 0 print(3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2) # 輸出結果是2
4、while迴圈語句基本結構?
while 條件:
迴圈體
else: 迴圈正常結束後會執行這裡
5、利用while語句寫出猜大小的遊戲:
設定一個理想數字比如:66,讓使用者輸入數字,如果比66大,則顯示猜測
的結果大了;如果比66小,則顯示猜測的結果小了;只有等於66,顯示猜測結果
正確,然後退出迴圈。
s = 66 while True: num = int(input("輸入一個你猜的數字:")) if num > s: print("大了") elif num < s: print("小了") else: print("恭喜你猜對了") break
6、在5題的基礎上進行升級:
給使用者三次猜測機會,如果三次之內猜測對了,則顯示猜測正確,退出循
環,如果三次之內沒有猜測正確,則⾃動退出迴圈,並顯示‘太笨了你....’。
count = 1 while count <= 3: num = int(input("輸入一個你猜的數字吧:")) if num > 66: print("大了,大了,再小點") elif num < 66: print("小了,小了,再大點") count += 1 else: print("這個都猜不出來,太笨了吧....")
7.使用while迴圈輸入 1 2 3 4 5 6 8 9 10
### 寫法 1
count = 1 while count <= 10: if count == 7: count += 1 print(count) else: print(count) count += 1
## 寫法 2 count = 1 while count < 11: if count == 7: count += 1 continue else: print(count) count += 1
## 寫法 3 count = 1 while count <= 10: if count != 7: print(count) count += 1
8.求1-100的所有數的和
sum = 0 count = 1 while count <= 100: sum += count count += 1 print(sum)
9.輸出 1-100 內的所有奇數
## 第一種寫法 count = 1 while count <= 100: if count % 2 == 1: print(count) count += 1 # 第二種寫法 count = 1 while count <= 100: print(count) count += 2
10.輸出 1-100 內的所有偶數
# 寫法 1 count = 2 while count <= 100: print(count) count += 2 ## 寫法 2 count = 1 while count <= 100: if count % 2 == 0: print(count) count += 1
11.求1-2+3-4+5 ... 99的所有數的和.
# 寫法 1 sum = 0 count = 1 while count < 100: if count % 2 == 1: sum += count count += 1 else: sum -= count count += 1 print(sum) ## 寫法 2 sum = 0 count = 1 while count < 100: if count % 2 == 1: sum += count else: sum -= count count += 1 print(sum)
### 看上面程式碼 注意看,差別在什麼地方,為什麼會出現這樣的 結果???
12.使用者登陸(三次輸錯機會)且每次輸錯誤時顯示剩餘錯誤次數(提示:使用字串格式)
count = 1 while count <= 3: username = input("輸入你的賬號:") password = input("輸入你的密碼:") if username == "alex" and password == "123456": print("登陸成功") else: print("登入失敗,你還有%s次機會" % (3 - count)) print(f"登入失敗,你還有{3 - count}次機會") count += 1
13. 使用者輸入一個數. 判斷這個數是否是個質數(升級題).
num = int(input("輸入你要判斷的數字:")) if num == 1: print("這個我也不知道了") else: count = 2 while count < num - 1: if num % count == 0: print("這個不是質數") break count += 1 else: print("恭喜你,找到了一個質數")
#### 迴圈 判斷, 主動 退出
while 1:
num = int(input("輸入你要判斷的數字,輸入0退出:"))
if num == 0:
print("退出中...")
break
elif num == 1:
print("我也不知道這個是不是,因為質數定義在大於1的基礎上的")
else:
count = 2
while count <= num - 1:
if num % count == 0:
print("不是質數")
break
count += 1
else:
print("恭喜你找到了一個質數,再見了,朋友")
break
14. 輸入一個廣告標語. 判斷這個廣告是否合法. 根據最新的廣告法來判斷. 廣
告法內容過多. 我們就判斷是否包含'最', '第一', '稀缺', '國家級'等字樣. 如果包
含. 提示, 廣告不合法
例如, 1. 老男孩python世界第一. ==> 不合法
2. 今年過年不收禮啊. 收禮只收腦白金. ==> 合法
while True: content = input("輸入你的廣告語,輸入Q退出:") if content.upper() == "Q": print("退出啦,再見...") break elif "最" in content or "第一" in content or "稀缺" in content or "國家級" in content: print("不合法,請重新輸入") continue else: print("廣告合法") break
14. 輸入一個數. 判斷這個數是幾位數(用演算法實現)(升級題)
num = int(input("輸入一個你要判斷的數字:")) count = 0 while num >= 1: num //= 10 count += 1 print(count)