一 條件分支 1 python的比較操作符 2 python的條件分支語法 語法格式: if條件: 條件為(True)真執行的操作 else: 條件為假(False)執行的操作 跟其他語言的區別: if和else判斷語句後面必須要有冒號(其它語言沒有) 執行體的內容不需要用花括弧擴起來,所以必須嚴格 ...
一 條件分支
1 python的比較操作符
2 python的條件分支語法
- 語法格式:
- if條件:
- 條件為(True)真執行的操作
- else:
- 條件為假(False)執行的操作
- 跟其他語言的區別:
- if和else判斷語句後面必須要有冒號(其它語言沒有)
- 執行體的內容不需要用花括弧擴起來,所以必須嚴格保持縮進正確(其它語言需要用花括弧把每個判斷語句下要執行的內容擴起來)
二 while迴圈
1 python的while迴圈語法
- 語法格式:
- while條件:
- 條件為真(True)執行的操作
- 跟其他語言的區別:
- 判斷條件後面必須有冒號
- 執行體的內容不需要用花括弧擴起來,所以必須嚴格保持縮進正確
2 and 邏輯操作符
- 定義:python的and邏輯操作符可以將任意表達式連接在一起,並得到一個布爾類型的值
- 格式:表達式1 and 表達式2
- 表達式3 & 表達式4
- 功能:當and兩邊的表達式的值都為真時,最終的結果才為真;只要有一個表達式的值為假,最終的結果就為假
三 random模塊中的randint()函數
1 模塊的導入:import random
2 randint()函數的功能:返回一個隨機的整數
四 程式代碼及運行結果
1 程式代碼:
1 import random 2 secret = random.randint(1,10) 3 4 print("----------我愛魚C工作室----------") 5 print("本次游戲只有三次機會哦^_^") 6 temp = input("不防猜一下小甲魚現在心裡想的是那個數字:") 7 guess = int(temp) 8 count = 1 9 if guess != secret: 10 while (guess != secret) and (count <= 2): 11 temp = input("哎呀,猜錯了,請重新輸入吧:") 12 guess = int(temp) 13 if guess == secret: 14 print("我草,你是小甲魚心裡的蛔蟲嗎?!") 15 print("哼,猜中了也沒有獎勵!") 16 else: 17 if guess > secret: 18 print("哥,大了大了~~~") 19 else: 20 print("嘿,小了小了!!!") 21 count = count + 1 22 print(f"您一共猜了{count}次") 23 else: 24 print("我草,你是小甲魚心裡的蛔蟲嗎?!") 25 print("哼,猜中了也沒有獎勵!") 26 print("游戲結束,不玩啦^_^")
2 運行結果
PS E:\3_work\4_python\2_code\03_LittleTurtleStudio> python Game2.py ----------我愛魚C工作室---------- 本次游戲只有三次機會哦^_^ 不防猜一下小甲魚現在心裡想的是那個數字:8 哎呀,猜錯了,請重新輸入吧:5 嘿,小了小了!!! 您一共猜了2次 哎呀,猜錯了,請重新輸入吧:9 哥,大了大了~~~ 您一共猜了3次 游戲結束,不玩啦^_^ PS E:\3_work\4_python\2_code\03_LittleTurtleStudio> python Game2.py ----------我愛魚C工作室---------- 本次游戲只有三次機會哦^_^ 不防猜一下小甲魚現在心裡想的是那個數字:9 我草,你是小甲魚心裡的蛔蟲嗎?! 哼,猜中了也沒有獎勵! 游戲結束,不玩啦^_^ PS E:\3_work\4_python\2_code\03_LittleTurtleStudio>
五 課後作業
(一) 測試題答案
0. 請問以下代碼會列印多少次“我愛魚C!”
死迴圈,會一直列印“我愛魚C!”(嗯,這也算是永遠支持魚C的方法之一),直到崩潰或者用戶按下快捷鍵 CTRL + C(強制結束),造成死迴圈的原因是 while 後邊的條件永遠為真(True)
在 Python 看來,只有以下內容會被看作假(註意冒號括弧裡邊啥都沒有,連空格都不要有!):False、None 、0、 "、" ''、 ()、 [] 、{},其他一切都被解釋為真!
不妨試試:
while '': print('進入迴圈') print('退出迴圈')
或者
while False: print('進入迴圈') print('退出迴圈')
或者
while 0: print('進入迴圈') print('退出迴圈')
1. 請問以下代碼會列印多少次“我愛魚C!”
會列印 10 次。
2. 請寫出與 10 < cost < 50 等價的表達式
(10 < cost) and (cost < 50)
3. Python3 中,一行可以書寫多個語句嗎?
可以,語句之間用分號隔開即可,不妨試試:
>>> print('I love fishc');print('very much!')
4. Python3 中,一個語句可以分成多行書寫嗎?
可以,一行過長的語句可以使用反斜杠或者括弧分解成幾行,不妨試試:
>>> 3 > 4 and \ 1 < 2
或者
>>> ( 3 > 4 and
1 < 2 )
5. 【該題針對有C或C++基礎的朋友】請問Python的 and 操作符 和C語言的 && 操作符 有何不同?
有圖有真相(C\C++ VS Python):
VS
>
6. 聽說過“短路邏輯(short-circuit logic)”嗎?
邏輯操作符有個有趣的特性:在不需要求值的時候不進行操作。這麼說可能比較“高深”,舉個例子,表達式 x and y,需要 x 和 y 兩個變數同時為真(True)的時候,結果才為真。因此,如果當 x 變數得知是假(False)的時候,表達式就會立刻返回 False,而不用去管 y 變數的值。
這種行為被稱為短路邏輯(short-circuit logic)或者惰性求值(lazy evaluation),這種行為同樣也應用與 or 操作符,這個後邊的課程小甲魚會講到,不急。
實際上,Python 的做法是如果 x 為假,表達式會返回 x 的值(0),否則它就會返回 y 的值(例子參考樓上那題)。
(二) 動動手答案:
0. 完善第二個改進要求(為用戶提供三次機會嘗試,機會用完或者用戶猜中答案均退出迴圈)並改進視頻中小甲魚的代碼。
需要註意的地方在代碼中已經註釋!
import random times = 3 secret = random.randint(1,10) print('------------------我愛魚C工作室------------------') # 這裡先給guess賦值(賦一個絕對不等於secret的值) guess = 0 # print()預設是列印完字元串會自動添加一個換行符,end=" "參數告訴print()用空格代替換行 # 嗯,小甲魚覺得富有創意的你應該會嘗試用 end="JJ"? print("不妨猜一下小甲魚現在心裡想的是哪個數字:", end=" ") while (guess != secret) and (times > 0): temp = input() guess = int(temp) times = times - 1 # 用戶每輸入一次,可用機會就-1 if guess == secret: print("我草,你是小甲魚心裡的蛔蟲嗎?!") print("哼,猜中了也沒有獎勵!") else: if guess > secret: print("哥,大了大了~~~") else: print("嘿,小了,小了~~~") if times > 0: print("再試一次吧:", end=" ") else: print("機會用光咯T_T") print("游戲結束,不玩啦^_^")
1. 嘗試寫代碼實現以下截圖功能:
temp = input('請輸入一個整數:') number = int(temp) i = 1 while number: print(i) i = i + 1 number = number - 1
2. 嘗試寫代碼實現以下截圖功能:
temp = input('請輸入一個整數:') number = int(temp) while number: i = number - 1 while i: print(' ', end = '') i = i - 1 j = number while j: print('*', end = '') j = j - 1 print() number = number - 1