?
1.課程之前
1.1 復(fù)習(xí)和反饋
數(shù)據(jù)類型轉(zhuǎn)換: 數(shù)據(jù)本來(lái)的類型不是我們計(jì)算使用想要的類型
int() 將其他類型轉(zhuǎn)換為 int 類型(小數(shù), 整數(shù)類型的字符串)
float() 將其他類型轉(zhuǎn)換為 float 類型(整數(shù), 數(shù)字類型的字符串)
str() 將其他類型轉(zhuǎn)換為 str 類型(任意類型)?
函數(shù): 作用 語(yǔ)法
type(變量) 可以獲取變量的數(shù)據(jù)類型
input() 獲取鍵盤(pán)的輸入
變量 = input(‘提示性信息’) # 提示性信息可以隨便寫(xiě),目的是讓別人知道要做什么事
1.2 作業(yè)
# 書(shū)寫(xiě)代碼
# 獲取用戶輸入的數(shù)字,類型是 str
num1 = input('請(qǐng)輸入第一個(gè)數(shù)字:')
num2 = input('請(qǐng)輸入第二個(gè)數(shù)字:')
# 求和, 需要將 str類型轉(zhuǎn)換為數(shù)字類型
num = int(num1) + int(num2)
# 打印求和的結(jié)果
print(num)
1.3 今日內(nèi)容
- 字符串格式化的補(bǔ)充
- 運(yùn)算符
- 判斷語(yǔ)句 if elif else
- 循環(huán)語(yǔ)句基礎(chǔ)while
1.4 字符串格式化的補(bǔ)充
字符串.format() 可以在任意版本中使用?
1. 在需要使用 變量的地方使用 {} 占位
2. '{}, {}, ...'.format(變量, 變量, ...)
# 定義變量 姓名 年齡 身高
name = '小明' # 可以使用 input 輸入
age = 18 # 可以使用 input 輸入
height = 1.71 # 可以使用 input 輸入
stu_num = 1 # 學(xué)號(hào)
num = 90 # 及格率
# print('我的名字是 xx, 年齡是 xx, 身高是 xx m, 學(xué)號(hào) xx, 本次考試的及格率為 xx%')
print(f'我的名字是 {name}, 年齡是 {age}, 身高是 {height} m, 學(xué)號(hào) {stu_num}, 本次考試的及格率為 {num}%')
# 一般不會(huì)有這樣的需求
print(f'我的名字是 {name}, 年齡是 {age}, 身高是 {height:.3f} m, 學(xué)號(hào) {stu_num:06d}, 本次考試的及格率為 {num}%')
# 字符串.format()
print('我的名字是 {}, 年齡是 {}, 身高是 {} m, 學(xué)號(hào) {}, 本次考試的及格率為 {}%'.format(name, age, height, stu_num, num))
print('我的名字是 {}, 年齡是 {}, 身高是 {:.3f} m, 學(xué)號(hào) {:06d}, 本次考試的及格率為 {}%'.format(name, age, height, stu_num, num))
1.5 運(yùn)算符
1.5.1 邏輯運(yùn)算符
邏輯運(yùn)算符 可以連接多個(gè)條件, 在判斷和循環(huán)中使用
and 邏輯與 和,并且 and 連接兩個(gè)條件,都必須為 True, 整體結(jié)果才為 True, 即一假為假 (當(dāng)?shù)谝粋€(gè)條件為 False 的時(shí)候,第二個(gè)條件就不再判
or 邏輯或 或者 or 連接的兩個(gè)條件, 只要有一個(gè)條件為 True , 整體結(jié)果就為 True, 即 一真為真 (當(dāng)?shù)谝粋€(gè)條件為 True的時(shí)候,第二個(gè)條件就不再判斷)
not 邏輯非 取反 not 后邊的條件, 如果本來(lái)是 True,變?yōu)?False, 本來(lái)是 False,變?yōu)?True
1.5.2 賦值運(yùn)算符
賦值運(yùn)算符 =, 作用就是將等號(hào)右邊的值保存到等號(hào)左邊的變量中
復(fù)合賦值運(yùn)算符(將算術(shù)運(yùn)算符和賦值運(yùn)算符進(jìn)行結(jié)合)
+= -= *= /= //= %=
a += b ===> a = a + b
1.5.3 運(yùn)算符優(yōu)先
不需要刻意去記憶優(yōu)先級(jí),因?yàn)榭梢允褂?() 改變優(yōu)先級(jí)別
2.判斷
日常生活中說(shuō)的 如果 … 否則 … ,這個(gè)就是判斷,在程序代碼中需要使用 if(如果) elif(如果) else(否則) 三個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn)
在代碼中有判斷語(yǔ)句, 待會(huì)不會(huì)全部執(zhí)行, 會(huì)有一部分不會(huì)執(zhí)行
2.1 if 的基本結(jié)構(gòu)
即 只有 如果的情況, 如果的條件成立, 會(huì)執(zhí)行的代碼,會(huì)做的事
2.1.1 基本語(yǔ)法
if 判斷條件:
書(shū)寫(xiě)條件成立(真),執(zhí)行的代碼
書(shū)寫(xiě)條件成立(真),執(zhí)行的代碼
頂格書(shū)寫(xiě),沒(méi)有縮進(jìn)的代碼,和 if無(wú)關(guān), 不管條件是否成立,都會(huì)執(zhí)行
# 1. if 是一個(gè)關(guān)鍵字, 和后續(xù)的判斷條件之間需要一個(gè)空格
# 2. 判斷條件后邊需要一個(gè)冒號(hào),不要少了
# 3. 冒號(hào)之后,回車(chē),代碼需要縮進(jìn), 在 pycharm 中會(huì)自動(dòng)進(jìn)行縮進(jìn), 一般是 4 個(gè)空格 或者 一個(gè) tab 鍵
# 4. 所有在 if 代碼下方的縮進(jìn)中書(shū)寫(xiě)的代碼,屬于 if 語(yǔ)句的代碼塊, 判斷條件為 True 的時(shí)候會(huì)執(zhí)行
# 5. if 代碼塊中的代碼,要么都執(zhí)行,要么都不執(zhí)行
# 6. if 代碼塊結(jié)束之后, 代碼要頂格書(shū)寫(xiě)(不再有縮進(jìn)), 表示是和 if 無(wú)關(guān)的代碼
2.1.2 代碼案例
1. 使用 input 獲取用戶的年齡
2. 判斷年齡是否滿足 18 歲
3. 如果年齡大于等于(滿足)18 歲, 輸出 '滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了'
# 1. 使用 input 獲取用戶的年齡, 類型是 str
age = input('請(qǐng)輸入你的年齡:')
# 2. 判斷年齡是否滿足 18 歲
if int(age) >= 18: # 字符串和 int 類型不能比大小, 先類型轉(zhuǎn)換,再比大小
# 3. 如果年齡大于等于(滿足)18 歲, 輸出 '滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了'
print('滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了')
print('我和 if 判斷沒(méi)有關(guān)系,不管怎樣,都會(huì)執(zhí)行')
2.1.3 練習(xí)
1. 獲取用戶輸入的用戶名信息
2. 如果用戶名信息是 admin, 就在控制臺(tái)輸出出來(lái)
# 1. 獲取用戶輸入的用戶名信息
name = input('請(qǐng)輸入你的用戶名:')
# 2. 如果用戶名信息是 admin, 就在控制臺(tái)輸出出來(lái)
if name == 'admin':
print('歡迎 admin')
if else 結(jié)構(gòu)
2.2 if else 結(jié)構(gòu)
如果 條件成立 做什么事 否則(條件不成立) 做另一件事
2.2.1 基本語(yǔ)法
if 判斷條件:
書(shū)寫(xiě)條件成立(真),執(zhí)行的代碼
書(shū)寫(xiě)條件成立(真),執(zhí)行的代碼
else:
書(shū)寫(xiě)條件不成立(假), 執(zhí)行的代碼
書(shū)寫(xiě)條件不成立(假), 執(zhí)行的代碼
# 1. else 是關(guān)鍵字, 后邊需要冒號(hào)
# 2. 冒號(hào)之后回車(chē),同樣需要縮進(jìn)
# 3. 處于 else 代碼下方縮進(jìn)中的內(nèi)容,屬于 else 的代碼塊
# 4. if 和 else 的代碼塊, 只會(huì)執(zhí)行其中的一個(gè)
# 5. else 需要結(jié)合 if 使用
# 6. if else 之間不能有其他頂格書(shū)寫(xiě)的內(nèi)容(不提 elif)
2.2.2 代碼案例
1. 使用 input 獲取用戶的年齡
2. 判斷年齡是否滿足 18 歲
3. 如果年齡大于等于(滿足)18 歲, 輸出 '滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了'
4. 如果不滿足, 輸出 '不滿 18 歲,回去寫(xiě)作業(yè)吧'
# 1. 使用 input 獲取用戶的年齡, 類型是 str
age = input('請(qǐng)輸入你的年齡:')
# 2. 判斷年齡是否滿足 18 歲
if int(age) >= 18: # 字符串和 int 類型不能比大小, 先類型轉(zhuǎn)換,再比大小
# 3. 如果年齡大于等于(滿足)18 歲, 輸出 '滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了'
print('滿 18 歲了,可以進(jìn)入網(wǎng)吧為所欲為了')
# 4. 如果不滿足, 輸出 '不滿 18 歲,回去寫(xiě)作業(yè)吧'
else:
print('不滿 18 歲,回去寫(xiě)作業(yè)吧')
2.2.3 練習(xí)
1. 獲取用戶輸入的用戶名信息
2. 如果用戶名信息是 admin, 就在控制臺(tái)輸出出來(lái)
3. 如果用戶名信息不是 admin, 就在控制臺(tái)輸出"用戶名錯(cuò)誤!"
# 1. 獲取用戶輸入的用戶名信息
name = input('請(qǐng)輸入你的用戶名:')
# 2. 如果用戶名信息是 admin, 就在控制臺(tái)輸出出來(lái)
if name == 'admin':
print('歡迎 admin')
# 3. 如果用戶名信息不是 admin, 就在控制臺(tái)輸出"用戶名錯(cuò)誤!"
else:
print('用戶名錯(cuò)誤!')
2.3 if 和邏輯運(yùn)算符結(jié)合使用
2.3.1 案例一
1. 獲取用戶輸入的用戶名和密碼
2. 判斷用戶名是 admin 并且密碼是 123456 時(shí), 在控制臺(tái)輸出: 登錄成功!
3. 否則在控制臺(tái)輸出: 登錄信息錯(cuò)誤!
# 1. 獲取用戶輸入的用戶名和密碼
name = input('請(qǐng)輸入用戶名:')
pwd = input('請(qǐng)輸入密碼:')
# 2. 判斷用戶名是 admin 并且密碼是 123456 時(shí), 在控制臺(tái)輸出: 登錄成功!
if name == 'admin' and pwd == '123456':
print('登錄成功!')
# 3. 否則在控制臺(tái)輸出: 登錄信息錯(cuò)誤!
else:
print('登錄信息錯(cuò)誤!')
2.3.2 案例二
1. 獲取用戶輸入的用戶名
2. 判斷用戶名是 admin 時(shí), 在控制臺(tái)輸出: 歡迎 admin 登錄!
3. 用戶名是 test 時(shí), 在控制臺(tái)輸出: 歡迎 test 登錄!
4. 如果是其他信息, 在控制臺(tái)輸出: 查無(wú)此人!
# 1. 獲取用戶輸入的用戶名
username = input('請(qǐng)輸入用戶名:')
# 2. 判斷用戶名是 admin 時(shí), 在控制臺(tái)輸出: 歡迎 admin 登錄!
# 3. 用戶名是 test 時(shí), 在控制臺(tái)輸出: 歡迎 test 登錄!
if username == 'admin' or username == 'test':
print(f'歡迎 {username} 登錄!')
# 4. 如果是其他信息, 在控制臺(tái)輸出: 查無(wú)此人!
else:
print('查無(wú)此人!')
# username == 'admin' 或者 'test'(一直 True, 空字符串是 False)
if username == 'admin' or 'test':
pass # pass 關(guān)鍵字, 占位,
2.4 if elif else 結(jié)構(gòu)
如果某個(gè)判斷條件有多個(gè), 此時(shí)建議使用 if elif else 結(jié)構(gòu)來(lái)實(shí)現(xiàn)
2.4.1 語(yǔ)法
if 判斷條件1:
判斷條件1成立,執(zhí)行的代碼
elif 判斷條件2: # 只有判斷條件1不成立,才會(huì)判斷 判斷條件2
判斷條件2成立執(zhí)行的代碼
else:
以上條件都不成立,執(zhí)行的代碼
# 1. elif 也是關(guān)鍵字,后邊和判斷條件之間需要一個(gè)空格,判斷條件之后需要冒號(hào)
# 2. 冒號(hào)之后回車(chē)需要縮進(jìn), 處在這個(gè)縮進(jìn)中的的代碼表示是 elif 的代碼塊
# 3. 在一個(gè) if判斷中,可以有很多個(gè) elif
# 4. 只有 if 的條件不成立,才會(huì)去判斷 elif 的條件
# 5. 在一個(gè)if 中, 如果有多個(gè) elif , 只要有一個(gè)條件成立,后續(xù)的所有都不再判斷
# 6. if elif else 結(jié)構(gòu), 和 if 的縮進(jìn)相同的只能是 elif 和 else,如果是其他的,就表示 這個(gè)判斷結(jié)構(gòu)結(jié)束了
if 判斷條件1:
執(zhí)行的代碼
if 判斷條件2:
執(zhí)行的代碼
if 判斷條件3:
執(zhí)行的代碼
# 多個(gè) if 的結(jié)構(gòu), 每個(gè) if 都會(huì)進(jìn)行判斷,之間沒(méi)有關(guān)聯(lián)系
2.4.2 案例
1. 定義 score 變量記錄考試分?jǐn)?shù)
2. 如果分?jǐn)?shù)是大于等于90分應(yīng)該顯示優(yōu)
3. 如果分?jǐn)?shù)是大于等于80分并且小于90分應(yīng)該顯示良
4. 如果分?jǐn)?shù)是大于等于70分并且小于80分應(yīng)該顯示中
5. 如果分?jǐn)?shù)是大于等于60分并且小于70分應(yīng)該顯示差
6. 其它分?jǐn)?shù)顯示不及格
2.4.2.1 elif 實(shí)現(xiàn)
# 1. 定義 score 變量記錄考試分?jǐn)?shù)
score = int(input('請(qǐng)輸入你的分?jǐn)?shù)')) # int float
# 2. 如果分?jǐn)?shù)是大于等于90分應(yīng)該顯示優(yōu)
if score >= 90:
print('優(yōu)')
# 3. 如果分?jǐn)?shù)是大于等于80分并且小于90分應(yīng)該顯示良
elif (score >= 80) and score < 90:
print('良')
# 4. 如果分?jǐn)?shù)是大于等于70分并且小于80分應(yīng)該顯示中
# and score < 80 可以不寫(xiě)的, 原因只有上邊一個(gè)判斷條件不成立(一定滿足 score<80),才會(huì)執(zhí)行這個(gè)
elif score >= 70:
print('中')
# 5. 如果分?jǐn)?shù)是大于等于60分并且小于70分應(yīng)該顯示差
elif score >= 60:
print('差')
# 6. 其它分?jǐn)?shù)顯示不及格
else:
print('不及格')
2.4.2.2 多個(gè)if實(shí)現(xiàn)
# 1. 定義 score 變量記錄考試分?jǐn)?shù)
score = int(input('請(qǐng)輸入你的分?jǐn)?shù)')) # int float
# 2. 如果分?jǐn)?shù)是大于等于90分應(yīng)該顯示優(yōu)
if score >= 90:
print('優(yōu)')
# 3. 如果分?jǐn)?shù)是大于等于80分并且小于90分應(yīng)該顯示良
if (score >= 80) and score < 90:
print('良')
# 4. 如果分?jǐn)?shù)是大于等于70分并且小于80分應(yīng)該顯示中
if (score >= 70) and score < 80:
print('中')
# 5. 如果分?jǐn)?shù)是大于等于60分并且小于70分應(yīng)該顯示差
if (score >= 60) and score < 70:
print('差')
# 6. 其它分?jǐn)?shù)顯示不及格
if score < 60:
print('不及格')
?
2.5 Debug 調(diào)試代碼
debug 在代碼中出現(xiàn)問(wèn)題錯(cuò)誤(bug), 可以使用 debug 來(lái)調(diào)試代碼,查找錯(cuò)誤.
我們使用 debug 主要用來(lái) 查看代碼的執(zhí)行步驟
2.5.1 打斷點(diǎn)
在 pycharm 中, 代碼和行號(hào)之間進(jìn)行點(diǎn)擊, 出現(xiàn)小紅點(diǎn)即打斷點(diǎn), 再次點(diǎn)擊小紅點(diǎn)會(huì)取消斷點(diǎn)
?
斷點(diǎn)的位置,一般來(lái)說(shuō)會(huì)在代碼的第一行(在程序運(yùn)行的時(shí)候,想要在什么地方停下來(lái))
?
注意點(diǎn): 可能會(huì)出現(xiàn)的 bug(pycharm 軟件的問(wèn)題): 代碼中只有一個(gè)斷點(diǎn)的時(shí)候不能 debug 調(diào)試查看代碼執(zhí)行過(guò)程, 解決方案,在代碼其他任意地方多加一個(gè)斷點(diǎn)
右鍵 debug 運(yùn)行代碼
??
單步執(zhí)行代碼
2.6 if 嵌套
if 嵌套, 是指在一個(gè) if(elif else) 中嵌套另一個(gè) if.
使用場(chǎng)景: 判斷條件存在遞進(jìn)關(guān)系(只有第一個(gè)條件滿足了,才會(huì)判斷第二個(gè)條件)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-757849.html
if 判斷條件1:
判斷條件1成立,執(zhí)行的代碼
if 判斷條件2:
判斷條件2成立,執(zhí)行的代碼
else:
判斷條件2不成立,執(zhí)行的代碼
else:
判斷條件1不成立,執(zhí)行的代碼
2.6.1 代碼案例
取款機(jī)取錢(qián)的過(guò)程, 假定 你的密碼是: 123456, 賬戶余額為 1000
1. 提示用戶輸入密碼
2. 判斷密碼是否正確
3. 密碼正確后,提示輸入取款的金額,
4. 判斷取款的金額和余額的關(guān)系
# 取款機(jī)取錢(qián)的過(guò)程, 假定 你的密碼是: 123456, 賬戶余額為 1000
pwd = '123456' # 可以預(yù)先定義變量,也可以在判斷的時(shí)候直接使用
money = 1000 # 可以預(yù)先定義變量,也可以在判斷的時(shí)候直接使用
# 1. 提示用戶輸入密碼
password = input('請(qǐng)輸入密碼:')
# 2. 判斷密碼是否正確
if password == pwd:
print('密碼正確,登錄成功')
# 3. 密碼正確后,提示輸入取款的金額,
get_money = int(input('請(qǐng)輸入要取款的金額:'))
# 4. 判斷取款的金額和余額的關(guān)系
if money >= get_money:
print('取款成功')
else:
print('余額不足')
else:
print('密碼有誤,請(qǐng)?jiān)俅螄L試')
2.6.2 練習(xí)
假定某網(wǎng)站用戶名固定為 'admin', 密碼固定為'123456', 驗(yàn)證碼 固定為 '8888'
1. 獲取用戶輸入的用戶名,密碼和驗(yàn)證碼
2. 先判斷驗(yàn)證碼是否正確,如果正確打印輸出驗(yàn)證碼正確,再判斷用戶名和密碼是否正確
3. 如果驗(yàn)證嗎不正確,直接輸出 驗(yàn)證碼不正確,請(qǐng)重新輸入
# 假定某網(wǎng)站用戶名固定為 'admin', 密碼固定為'123456', 驗(yàn)證碼 固定為 '8888'
# 1. 獲取用戶輸入的用戶名,密碼和驗(yàn)證碼
username = input('請(qǐng)輸入用戶名:')
pwd = input('請(qǐng)輸入密碼:')
code = input('請(qǐng)輸入驗(yàn)證碼:')
# 2. 先判斷驗(yàn)證碼是否正確,如果正確打印輸出驗(yàn)證碼正確,再判斷用戶名和密碼是否正確
if code == '8888':
print('驗(yàn)證碼正確')
# 再判斷用戶名和密碼是否正確
if username == 'admin' and pwd == '123456':
print('用戶名密碼正確,登錄成功')
else:
print('用戶名或者密碼錯(cuò)誤,請(qǐng)?jiān)俅螄L試')
# 3. 如果驗(yàn)證嗎不正確,直接輸出 驗(yàn)證碼不正確,請(qǐng)重新輸入
else:
print('驗(yàn)證碼不正確')
2.6.3 案例: 猜拳游戲
剪刀 石頭 布
剪刀 贏 布
石頭 贏 剪刀
布 贏 石頭
2.6.3.1案例的步驟:
1. 自己出拳(石頭(1)/剪刀(2)/布(3)) input (player)
2. 電腦隨機(jī)出拳 (使用隨機(jī)數(shù)模塊(工具)完成) (computer)
3. 判斷輸贏
3.1 玩家勝利
3.1.1 player==1 and computer == 2
or
3.1.2 player==2 and computer == 3
or
3.1.3 player==3 and computer == 1
3.2 平局 player == computer
3.3 玩家輸了 else
2.6.3.2 隨機(jī)出拳
案例中需要電腦隨機(jī)出拳,即隨機(jī)出 1 2 3
在 Python 中想要隨機(jī)獲得整數(shù)數(shù)字可以使用如下方法
# 1. 導(dǎo)入隨機(jī)數(shù)工具包
import random
# 2. 使用工具包中的工具產(chǎn)生指定范圍內(nèi)的數(shù)字
random.randint(a, b) # 產(chǎn)生[a, b] 之間的隨機(jī)整數(shù),包含 a b 的
import random # 這行代碼習(xí)慣性的放在第一行
num = random.randint(1, 3)
print(num)
2.6.3.3 代碼
import random
# 1. 自己出拳(石頭(1)/剪刀(2)/布(3)) input (player)
player = int(input('請(qǐng)出拳石頭(1)/剪刀(2)/布(3):')) # 不要忘了類型轉(zhuǎn)換
# 2. 電腦隨機(jī)出拳 (使用隨機(jī)數(shù)模塊(工具)完成) (computer)
computer = random.randint(1, 3)
# 3. 判斷輸贏
# 3.1 玩家勝利
if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
print('恭喜你獲得勝利')
# 3.2 平局 player == computer
elif player == computer:
print('平局')
# 3.3 玩家輸了 else
else:
print('輸了, 不要放棄, 再來(lái)一局')
?
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-757849.html
到了這里,關(guān)于10天玩轉(zhuǎn)Python第2天:python判斷語(yǔ)句基礎(chǔ)示例全面詳解與代碼練習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!