為后續的自動化測試打基礎
python+requests :接口自動化
python+selenium :web自動化
python+appium :移動端自動化
python 是解釋型語言 下方代碼的錯誤不會影響上方代碼的執行
主流版本:python3
快捷鍵:ctrl+/
單行注釋:
#語句
多行注釋:
"""
語句1
語句2
"""
或
'''
語句1
語句2
'''
添加注釋的注意事項:
- 注釋并非越多越好,一目了然的代碼無需注釋
- 邏輯復雜的代碼,應當先寫注釋再編碼
- 不要用中文去翻譯 python 代碼的含義
紅色波浪線
是代碼中的錯誤,需要解決,否則會影響代碼執行
灰色波浪線
代碼規范性問題,可以正常運行
使用代碼格式化 快捷鍵:ctrl+alt+L
綠色波浪線
不影響代碼執行;間接性問題--編譯器覺得你寫的不是一個單詞
變量定義
name="軟件測試"
#變量名=數據值
變量名自定義, 要滿足
標識符命名規則標識符規則:
- 由數字, 字母, 下劃線組成
- 不能使用數字開頭
- 不能使用Python內置關鍵字
- 嚴格區分大小寫
標識符-命名習慣:(見名知意)
- 駝峰命名
- 大駝峰:每個單詞首字母大寫, 例如:
MyName- 小駝峰:第二個單詞開始首字母大寫, 例如:
myName- 下劃線命名
- 每個單詞之間使用下劃線連接, 例如:
my_name


數據類型的轉換,不會改變原數據的類型;是生成一個新數據
語法:print(數據/變量)
格式化輸出:將程序的運行結果按照一定的格式輸出
name = "小明"
age = 18
print(name + "今年" + str(age) + "歲了")
#非字符串類型的數據,還要進行類型轉換
格式化輸出-format方法實現
1:可以在任意的python版本中使用
2:字符串中需要使用變量時,用{}占位
3:將變量寫在.farmat()中,按前面占位的順序
print("name={} age={}".format(name, age))
格式化輸出-f格式化實現
1:python 3.6版本開始可以使用
2:字符串中需要使用變量時,用{}占位
3:將變量直接寫在{}中
print(f"name={name} age={age}")

語法: 變量名 = input('提示信息:') 默認字符串,即str
注意:
- 當程序執行到 input() 函數會等待用戶輸入, 因此最好給出提示信息
- input() 函數接收用戶輸入的信息后, 一般需要保存到到變量中, 方便后續使用
- input() 函數會把用戶輸入的任意數據都當做字符串處理, 需要運算時注意類型轉換
練習:
題目①:
書寫程序,制作一個加法計算器。
用戶依次輸入2個整數,系統自動進行加法運算,并打印求和結果。
x=input("請輸入第一個數:")
y=input("請輸入第二個數:")
z=int(x)+int(y)
print(f"{x}+{y}={z}")
x=input("請輸入第一個數:")
y=input("請輸入第二個數:")
z=int(x)+int(y)
print(f"{x}+{y}={z}")
轉義字符:
將兩個字符進行轉義表示一個特殊的字符
\n --->換行,回車
\t --->tab鍵;制表符
print 函數中默認有一個end=\n,所以每個print結束之后,都有換行
不想讓print換行:print("hello world",end=' ')

** 冪,次方 2**3 2的3次方 = 8
優先級:() > ** > * / // % >+ -
/除法運算得到的時浮點數float

類型不一樣不能比較大小: >,>=,<,<= (數字和字符串不能比較)

關鍵字: and or not
and:邏輯與-->只有兩個條件都為true,結果才為ture;一假為假
or :邏輯或-->只要有一個條件為true,結果就為ture;一真為真
not:邏輯非-->本來時true,加上not,變為false;
練習題:
1. 提示用戶輸入用戶姓名,并保存到變量中
2. 提示用戶輸入用戶年齡,保存到變量中,并轉換成整數
3. 提示用戶輸入用戶身高,保存到變量中,并轉換成浮點數
4. 在控制臺輸出用戶姓名、年齡、身高對應變量的數據類型
5. 按照以下格式輸出用戶信息:“姓名:xxx 年齡:xxx 身高:xxx”
6. 在控制臺輸出該用戶5年之后的年齡,格式:“張三 5 年之后的年齡是 25”
7. 在控制臺輸出該傳智教育-黑馬程序員 用戶現在是否成年,格式:“張三是否成年:True”
name=input("請輸入用戶姓名:")
age=int(input("請輸入用戶年齡:"))
height=float(input("請輸入用戶身高:"))
print(type(name),type(age),type(height))
print(f"姓名:{name}年齡:{age}身高:{height}")
print(f"{name}5年之后的年齡時{age+5}")
print(f"{name}是否成年:{age>=18}")
1.掌握if判斷語句的用法 2.掌握while循環的用法 3.掌握for循環的用法
if判斷語句基本語法
if 判斷條件 :
條件成立,做什么
#判斷年齡
#1. 定義一個整數變量記錄年齡
age=19
#2. 判斷是否滿 18 歲 (>=)
if age>=18 :
#3. 如果滿 18 歲,允許進網吧嗨皮
print("允許進去")
else 處理條件不滿足的情況
if 判斷條件 :
條件成立,做什么
else:
條件不成立,做什么
- if 和 else 語句以及各自的縮進部分共同是一個 完整的代碼塊
- else 關鍵字必須和 if 聯合使用, 不能單獨使用
#if else 判斷年齡
#1. 輸入用戶年齡
age=int(input("請輸入用戶年齡:"))
#2. 判斷是否滿 18 歲 (>=)
if age>=18 :
#3. 如果滿 18 歲,允許進網吧嗨皮
print("允許進入")
#4. 如果未滿 18 歲,提示回家寫作業
else:
print("回家寫作業")
不要忘記 if 和 else 后面的 :冒號
#練習
#1.獲取用戶輸入的用戶名信息
#2.如果用戶名信息是admin,就在控制臺輸出"歡迎admin登錄"
#3.如果用戶名信息不是admin,就在控制臺輸出"用戶名錯誤!"
name=input("請輸入用戶名")
if name=='admin':
print("歡迎admin登錄")
else:
print("用戶名錯誤!")
邏輯運算符-and
條件1 and 條件2
? 邏輯與/并且
? 兩個條件同時滿足,返回 True
? 只要有一個不滿足,就返回 False
# 1. 定義一個整數變量 age,編寫代碼判斷年齡是否正確
# 2. 要求人的年齡在 0-120 之間
age = int(input("請輸入一個年齡"))
if age>0 and age<120 :
print("正確")
else:
print("錯誤")
邏輯運算符-or
條件1 or 條件2
? 邏輯或/或者
? 兩個條件只要有一個滿足,返回 True
? 兩個條件都不滿足,返回 False
# 1. 定義兩個整數變量python_score、c_score,編寫代碼判斷成績
# 2. 要求只要有一門成績 > 60 分就算合格
python_score = int(input("請輸入python成績"))
c_score = int(input("請輸入c的成績"))
if python_score>60 or c_score>60:
print("合格")
else:
print("不合格")
邏輯運算符-not
not 條件
? 邏輯非/取反
? 如果True ,not之后為 False
? 如果False ,not之后為 True
案例一:
1. 獲取?戶輸?的?戶名和密碼
2. 判斷?戶名是 admin 并且密碼是 123456 時, 在控制臺輸出: 登錄成功!
3. 否則在控制臺輸出: 登錄信息錯誤!
name=input("請輸入用戶名")
pwd=input("請輸入密碼")
if name=='admin' and pwd== '123456':
print("登錄成功!")
else:
print("登錄信息錯誤!")
案例?:
1. 定義兩個整數變量python_score、c_score,使? input獲取成績 編寫代碼判斷成績
2. 要求只要有??成績 > 60 分就輸出合格
```上面有,自己找
案例三:
1. 獲取?戶輸?的?戶名
2. 判斷?戶名是 admin 時, 在控制臺輸出: 歡迎 admin 登錄!
3. ?戶名是 test 時, 在控制臺輸出: 歡迎 test 登錄!
4. 如果是其他信息, 在控制臺輸出: 查?此?!
name=input("請輸入用戶名")
if 條件1:
條件1滿足執行的代碼
……
elif 條件2:
條件2滿足時,執行的代碼
……
elif 條件3:
條件3滿足時,執行的代碼
……
else:
以上條件都不滿足時,執行的代碼
……
需求
1. 定義 score 變量記錄考試分數
2. 如果分數是 ?于等于 90分 顯示 優
3. 如果分數是 ?于等于 80分 并且 ?于 90分 顯示 良
4. 如果分數是 ?于等于 70分 并且 ?于 80分 顯示 中
5. 如果分數是 ?于等于 60分 并且 ?于 70分 顯示 差
6. 其它分數顯示 不及格
score = float(input("請輸入考試分數"))
if score >= 90:
print("優")
elif score >= 80:
print("良")
elif score >= 70:
print("中")
elif score >= 60:
print("差")
else:
print("不及格")
if 條件1:
條件1 滿足執行的代碼
if 條件1基礎上的條件2:
條件2 滿足時,執行的代碼
# 條件2不滿足的處理
else:
條件2 不滿足時,執行的代碼
# 條件1 不滿足的處理
else:
條件1 不滿足時,執行的代碼
需求
取款機取錢的過程, 假定 你的密碼是: 123456, 賬戶余額為 1000
1. 提示?戶輸?密碼
2. 判斷密碼是否正確
3. 密碼正確后,提示輸?取款的?額,
4. 判斷取款的?額和余額的關系
#代碼:
pwd = input("請輸入你的密碼:")
if pwd == "123456":
print("密碼正確")
money = int(input("請輸入取款金額:"))
if money <= 1000:
print("取款成功!")
else:
print("余額不足")
else:
print("密碼錯誤,請重試")
練習
需求:
假定某?站?戶名固定為 'admin', 密碼固為'123456',驗證碼 固定為 '8888'
1. 獲取?戶輸?的?戶名,密碼和驗證碼
2. 先判斷驗證碼是否正確,如果正確打印輸出驗證碼正確,再
判斷?戶名和密碼是否正確
3. 如果驗證嗎不正確,直接輸出 驗證碼不正確,請重新輸?
#代碼:
name=input("請輸入用戶名:")
pwd=input("請輸入密碼")
code=input("請輸入驗證碼")
if code=='8888':
print("驗證碼正確")
if name=='admin' and pwd=='123456':
print("登陸成功")
else:
print("賬號或者密碼不正確!")
else:
print("驗證碼不正確,請重新輸?")
綜合應用-石頭剪刀布
需求
1. 從控制臺輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3)
2. 電腦隨機出拳 —— 先假定電腦只會出石頭,完成整體代碼功能
3. 比較勝負
勝負規則:
? 石頭 勝 剪刀
? 剪刀 勝 布
? 布 勝 石頭
x = int(input("請輸入要出的拳-石頭(1)/剪刀(2)/布(3)"))
y = 1 # 暫時默認為石頭
if x == y:
print("心有靈犀,再來一盤!")
elif x == 1 and y == 2:
print("x出石頭,y出剪刀,勝利")
elif x == 1 and y == 3:
print("x出石頭,y出布,失敗")
elif x == 2 and y == 1:
print("x出剪刀,y出石頭,失敗")
elif x == 2 and y == 3:
print("x出剪刀,y出布,勝利")
elif x == 3 and y == 1:
print("x出布,y出石頭,勝利")
elif x == 3 and y == 2:
print("x出布,y出剪刀,失敗")
player = int(input("請輸入要出的拳-石頭(1)/剪刀(2)/布(3)"))
computer = 1 # 暫時默認為石頭
if ((player==1 and computer==2) or (player==2 and computer==3) or (player==3 and computer==1)):
print("噢耶!!!電腦弱爆了!!!")
elif player == computer:
print("心有靈犀,再來一盤!")
else:
print("不行,我要和你決戰到天亮!")
1. 在Python中,要使用隨機數,首先需要導入隨機數的模塊(工具包)
import random
2. 調用random模塊中的randint方法可以生成隨機數
r = random.randint(a, b) //返回[a, b]之間的整數,包含 a 和 b
random.randint(12, 20) // 生成的隨機數n: 12 <= n <= 20
random.randint(20, 20) // 結果永遠是 20
random.randint(20, 10) // 該語句是錯誤的,下限必須小于上限
import random
x = int(input("請輸入要出的拳-石頭(1)/剪刀(2)/布(3)"))
y = random.randint(1, 3)
if x == y:
print("真巧,繼續")
elif x == 1 and y == 2:
print("x出石頭,y出剪刀,勝利")
elif x == 1 and y == 3:
print("x出石頭,y出布,失敗")
elif x == 2 and y == 1:
print("x出剪刀,y出石頭,失敗")
elif x == 2 and y == 3:
print("x出剪刀,y出布,勝利")
elif x == 3 and y == 1:
print("x出布,y出石頭,勝利")
elif x == 3 and y == 2:
print("x出布,y出剪刀,失敗")
1. 循環的初始條件(計數器)
2. 循環的終?條件
while 判斷條件:
判斷條件成?執?的代碼
判斷條件成?執?的代碼
判斷條件成?執?的代碼
3. 計數器加1
打印 100 遍 "媳婦兒,我錯了"
i=1
while i<=100 :
print("媳婦兒,我錯了")
i=i+1
#循環計算
#需求: 計算0~100所有數字的累加和結果
s=0
i=0
while i<=100:
s+=i
i=i+1
print(s)
死循環 & 關鍵字break ;continue
死循環: 是由于 寫代碼的人 不小心造成 屬于bug
由于循環條件始終滿足, 程序持續執行起來不會停止的現象,稱為死循環
無限循環:是寫代碼的? 故意這么寫.
?限循環中,?般會存在?個 if 判斷語句, 當這個判斷語句的條件成?, 執? break 語句,來終?循環.
關鍵字 break:
當程序代碼執?遇到 break, break 所在的循環就會被終?執?.(終?循環)
關鍵字 continue:
當程序代碼執?遇到 continue, continue后續的代碼不執?,但是會繼續下?次的循環(結束本次循環,繼續下?次循環)
break 和 continue 只能?在循環中.
#循環版本的石頭剪刀布
import random
while True:
x = int(input("請輸入要出的拳-石頭(1)/剪刀(2)/布(3)"))
y = random.randint(1, 3)
if x==0: #輸入0,執行break;游戲結束
break
if x == y:
print("真巧,繼續")
elif x == 1 and y == 2:
print("x出石頭,y出剪刀,勝利")
elif x == 1 and y == 3:
print("x出石頭,y出布,失敗")
elif x == 2 and y == 1:
print("x出剪刀,y出石頭,失敗")
elif x == 2 and y == 3:
print("x出剪刀,y出布,勝利")
elif x == 3 and y == 1:
print("x出布,y出石頭,勝利")
elif x == 3 and y == 2:
print("x出布,y出剪刀,失敗")
語法
for 臨時變量 in 容器:
重復執行的代碼1
重復執行的代碼2
...
需求
1. 遍歷字符串 "itheima"
2. 添加邏輯判斷,遇到字母e的時候退出循環
代碼
str1='itheima'
for i in str1:
if i=='e':
break
print(i)
for指定次數的循環:range()語法
for 臨時變量 in range(循環次數):
循環內部執行的代碼
循環次數為整數類型數據
需求代碼
#用for-rang()打印 100 遍 "媳婦兒,我錯了"
for i in range(100):
print("媳婦兒,我錯了")
#i=0-99
例題
#使用for循環實現計算0~100所有數字的累加和結果
s=0
for i in range(101):
s+=i
print(s)
需求:
1. 提示用戶輸入登錄系統的用戶名和密碼
2. 校驗用戶名和密碼是否正確(正確的用戶名:admin、密碼:123456)
3. 如果用戶名和密碼都正確,打印“登錄成功!”,并結束程序
4. 如果用戶名或密碼錯誤,打印“用戶名或密碼錯誤!”,提示用戶繼續輸入用戶名和密碼登錄
5. 如果用戶輸入的用戶名為“exit”,則退出程序
while True:
name = input("請輸入用戶名")
if name == "exit":
break
pwd = input("請輸入密碼")
if name == "admin" and pwd == "123456":
print("登錄成功!")
break
else:
print("用戶名或密碼錯誤!請繼續輸入")