1 Python簡介
- python應用用途:寫代碼幫你測試、網絡爬蟲、數據分析、web開發、人工智能、自動化運維、自動化測試、嵌入式開發、黑客
- python特點:第三方庫特別多,安裝后即可使用。所以python上手比較容易(eg.xpin模塊,將中文轉換成拼音)
- 自動化測試主流開發語言:java、python(自動化測試開發語言與被測系統的開發語言沒有關系)。python不是腳本語言。腳本語言是比較單一
- 主流開發語言:java、python、php、ruby 開發語言分為:
- 編譯型語言:編譯型語言,在運行代碼之前,首先將源代碼編譯生成機器語言,再由機器運行機器碼(二進制)。eg. c/c++/c#。
- 解釋型語言:相對於編譯型語言存在的,源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行。運行效率沒有編譯型語言快。eg. Python/JavaScript /ruby/Perl /Shell等都是解釋型語言。
- Python版本:2.x 及3.x,現在基本用3.x
2 Python安裝
- 下載安裝包,windows下直接傻瓜式安裝
- 配置環境變量:python.exe路徑
- python執行:
- pycharm工具:可以自動補全命令,推薦使用。
-
- pycharm交互式:快速運行。可用於調試。
-
- 交互式編輯工具:自帶的Idle.exe。特點:輸入代碼后回車,自動執行。沒有自動補全功能,不好用。了解即可。
- 命令行模式:cmd輸入Python,直接編輯代碼。缺點也是不能自動被全命令,不好用。
3 Pycharm常用設置
3.1pycharm常用快捷鍵
-
Ctrl+Shift+F10 運行當前的頁面
Ctrl + / 注釋(取消注釋)選擇的行 (加#號單行注釋,加3個單引號前后括起來實現多行注釋)
Ctrl+Shift+F 高級查找
Shift + Enter 開始新行
TAB Shift+TAB 縮進/取消縮進所選擇的行
Ctrl + Y 刪除當前插入符所在的行
Ctrl + D 復制當前行、或者選擇的塊
Ctrl + Shift + J 合並行
Delete 刪除到字符結尾
Backspace 刪除到字符的開始
Ctrl + NumPad+/- 展開或者收縮代碼塊
Ctrl + Shift + NumPad+ 展開所有的代碼塊
標簽頁右鍵→Split Vertically 分屏顯示
3.2pycharm常用調試
- 在代碼行號處單擊,打斷點
- 右鍵debug
- 按如下按鈕執行下一步(或按F8),檢查變量值及執行的代碼行
4 Python基礎
4.1 python語法
- tab縮進:Python以縮進來區分代碼塊。只要有冒號":",下一行代碼要加上縮進(可參考條件判斷案例)
- 分號:python在代碼末尾可以不需要加分號";"
- 等號:判斷符號中,需要使用2個等號”==“
- 百分號:格式化用如%s,如果想表示百分號,每打一個百分號,需要2個百分號,如打印%%,需要寫%%%%
4.2 數據類型
- int()--整型、str()--字符串、float()--小數、list--數組
4.2.1 int
a // b 表示用a除以b,把小數位舍掉
- 數據類型轉換:
1 # input默認都是string類型,整型數字需要通過int(xxx)進行轉換 2 age = input ('請輸入年齡:') 3 print ('1',type(age)) 4 age = int (age) 5 print ('2',type(age))
1 # 運行結果如下: 2 請輸入年齡:20 3 1 <class 'str'> 4 2 <class 'int'>
4.2.2 string
- string格式化:
1 # 格式化字符串:登錄成功提示 2 import datetime 3 user = 'zr' 4 today = datetime.date.today() 5 today = str(today) 6 #1、+: 使用+號拼接,不推薦使用 7 msg1 = '歡迎光臨'+user+',今天的日期是:'+today 8 # 2、%s: 推薦使用,使用%s等占位。%s:格式化為字符串 9 msg2 = '歡迎光臨%s,今天的日期是:%s\n' %(user,today) 10 # 3、format:推薦使用,使用{}占位。在參數值較多的情況下更直觀,不需要按順序賦值 11 msg3 = '歡迎光臨{name},今天的日期是:{date}\n'.format(date=today,name=user) 12 sql = 'insert into {} value {}:'.format('a1,','b2') # {}內可以為空,這種方式format是按順序賦值 13 d = {'name':'小黑','sex':'女'} 14 # 4、fomat_map: 與format的區別是format_map的參數是字典 15 words='名字:{name},性別:{sex}'.format_map(d) 16 print ('1=====',msg1) #print后自動換行 17 print ('2=====',msg2*3) #打印3遍,需要加\手動換行 18 print ('3=====',msg3) 19 print('4=====',sql) 20 print('5=====',words)
1 1===== 歡迎光臨zr,今天的日期是:2018-08-24 2 2===== 歡迎光臨zr,今天的日期是:2018-08-24 3 歡迎光臨zr,今天的日期是:2018-08-24 4 歡迎光臨zr,今天的日期是:2018-08-24 5 6 3===== 歡迎光臨zr,今天的日期是:2018-08-24 7 8 4===== insert into a1, value b2: 9 5===== 名字:小黑,性別:女
4.2.3 float
- int、float格式化:
1 # 格式化數字:年齡分數提示 2 age = input('請輸入年齡:') 3 age1 = int (age) 4 score = input ('請輸入分數:') 5 score1 = float(score) 6 msg1 = '年齡是:%d,分數是:%.3f'%(age1,score1) # %d: 格式化成整型;%.2f :格式化為2位小數 7 msg2 = '年齡是:%s,分數是:%s'%(age1,score1) # %s:可以顯示字符串、數字 8 print (msg1) 9 print (msg2)
1 # 運行結果如下: 2 請輸入年齡:20 3 請輸入分數:90.61 4 年齡是:20,分數是:90.610 5 年齡是:20,分數是:90.61
4.2.3 list(列表)
-
List(列表) 是 Python 中使用最頻繁的數據類型。列表是寫在方括號([ ])之間、用逗號分隔開的元素列表。
列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套)。
- 特點:
1、List寫在方括號之間,元素用逗號隔開,下標從0開始。
2、和字符串一樣,list可以被索引和切片。
3、List可以使用+操作符進行拼接。
4、List中的元素是可以改變的。
- 定義數組:
- 一維數組:listname = ['value1','value2','valuen']
- 二維數組:listname =[ [10,11,12],[20,21,22]],元素20的下標為listname[1][0]
- 三維數組:listname =[[10,11,12],[20,21,22,23,[31,32,33],5],3],元素32的下標為listname[1][4][1]
4.2.4 dictionary(字典)
- 字典(dictionary)是Python中另一個非常有用的內置數據類型。列表是有序的對象集合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
- 字典是一種映射類型,字典用"{ }"標識,它是一個無序的鍵(key) : 值(value)對集合。鍵(key)必須使用不可變類型。在同一個字典中,鍵(key)必須是唯一的。
- 特點:
1、字典是一種映射類型,它的元素是鍵值對。
2、字典的關鍵字必須為不可變類型,且不能重復。
3、創建空字典使用 { }。
4.3 變量
-
變量是存儲在內存中的值。
- 定義變量:格式為key = value ,不需要聲明數據類型,python會自動識別數據類型。變量名只能是 字母、數字或下划線的任意組合。變量名的第一個字符不能是數字。
- 批量定義變量:a,b,c,d=1,2,3,4 a=b=c=d=1
-
以下關鍵字不能聲明為變量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
- 單引號與雙引號的使用:
- 變量值中只包含單引號時,外部要用雙引號括起來。
1 print ("I'm zr")
-
- 變量值中只包含雙引號時,外部要用單引號括起來。
1 print ('肉肉長得很”帥”')
-
- 變量值中包含單引號及雙引號時,外部要用3個單引號括起來。
1 print ('''I'm zr,肉肉長得很”帥”''')
-
- 3個單引號或者3個雙引號括起來,也可以實現多行注釋的效果
1 ''' 2 import random 3 num = random.randint(1,100) #隨機產生的數字 4 print(num) 5 #代碼都是從上到下運行 6 count = 0 7 while count<7: 8 count+=1 9 guess = input('請輸入一個數字:') 10 guess = int(guess) #轉成int類型 11 if guess>num: 12 print('猜大了') 13 elif guess==num: 14 print('恭喜你,猜對了') 15 break 16 else: 17 print('猜小了') 18 else: 19 print('錯誤次數過多') 20 '''
- 輸入輸出:
1 # 輸入輸出(只要是Input輸入的,都是string類型) 2 name = input('請輸入你的名字'); 3 print (name);
4.4 條件判斷
- 格式:if xxx: code elif xxx: code elif xxx:code else: code
- 非空即真(if not username or not passwd or not cpasswd: xxxxx #username或passwd或cpasswd為空)
- 非零即真 (if i: xxxxx # i非0)
- 常用的條件判斷符號:
- 等於 ==
- 大於 >
- 小於 <
- 大於等於 >=
- 小於等於 <=
- 不等於 !=,不能寫<>
- 且 and,不能寫&&
- 或 or
- 常用的運算符
- count +=1 (count = count+1)
- count -=1 (count = count-1)
- count *=1 (count = count*1)
- count /=2 (count =count/2)
- 基本嵌套條件判斷:
1 # if else 2 name = input ('請輸入名字:') 3 if name == "肉肉": 4 print ('你最帥!') 5 elif name == "小敏兒": 6 print ('你最美!') 7 else: 8 print ('哈哈哈!')
- 嵌套條件判斷:
1 # 嵌套條件判斷 2 name = input ('請輸入名字:') 3 age = input ('請輸入年齡:') 4 age = int (age) 5 if name == "肉肉": 6 print ('你最帥!') 7 if age > 30: 8 print (age,'成熟魅力男!!') 9 elif name == "小敏兒": 10 print ('你最美!') 11 else: 12 print ('哈哈哈!')
4.5 循環
- break:立即結束循環,不管循環有沒有完成
- continue:結束本次循環,繼續進行下一次循環
- Python中的for、while循環都有一個可選的else分支(類似if語句和try語句那樣),在循環迭代正常完成之后執行。換句話說,如果我們不是除正常以外的其他方式退出循環,那么else分支將被執行。也就是在循環體內沒有break語句、沒有return語句,或者沒有異常出現。--引用https://www.cnblogs.com/gengcx/p/6707017.html
4.5.1 while 循環
- while循環,要帶上計數器,如果使用continue,計數器不會累計,可能會產生死循環
- while + break
1 # while循環:猜數字游戲 2 import random 3 num = random.randint(1,100) # 隨機產生一個1~100的數字 4 count = 0 5 while count < 3: 6 guess = input ('請輸入你猜的數字:') 7 guess = int (guess); 8 if guess == num: 9 print ('猜中了') 10 break #立即結束循環 11 elif guess > num: 12 print ('猜大了') 13 else: 14 print ('猜小了') 15 count = count +1 16 else: #循環正常結束后,會執行 17 print ('GAME OVER,LOSED!!')
1 # 運行結果如下: 2 請輸入你猜的數字:8 3 猜小了 4 請輸入你猜的數字:30 5 猜小了 6 請輸入你猜的數字:56 7 猜大了 8 GAME OVER,LOSED!!
-
while + continue
1 # while循環猜數字游戲 2 import random #運行順序1 3 num = random.randint(1,100) #運行順序2 ,假設num=51 4 count = 0 #運行順序3 5 while count < 3: #運行順序4、11 6 guess = input ('請輸入你猜的數字:') #運行順序5,輸入guess=91 7 guess = int (guess); #運行順序6 8 if guess == num: #運行順序7 9 print ('猜中了') 10 break #立即結束循環 11 elif guess > num: #運行順序8 12 print ('猜大了') #運行順序9 13 continue #運行順序10,不執行count = count +1,直接跳出本次循環,循環一直到猜中了break 14 else: 15 print ('猜小了') 16 continue 17 count = count +1 18 else: #循環正常結束后,會執行 19 print ('GAME OVER,LOSED!!')
4.5.2 for循環
- python的for循環,不需要計數器,與while不同的是,使用continue,count也會累計,不會死循環
1 # for循環:猜數字游戲 2 for i in range(3): 3 guess = input ('請輸入你猜的數字:') 4 guess = int (guess); 5 if guess == num: 6 print ('猜中了') 7 break #立即結束循環 8 elif guess > num: 9 print ('猜大了') 10 else: 11 print ('猜小了') 12 else: #循環正常結束后,會執行 13 print ('GAME OVER,LOSED!!')
注冊小程序練習
寫一個登陸的小程序
username = tanailing
passwd = 123456
1、輸入賬號密碼,輸入正確就登陸成功,
提示歡迎xxxx登陸,今天的日期是多少
2、最多輸入錯誤3次
賬號/密碼錯誤,請重新登陸
3、如果失敗測試超過3次,提示,失敗次數過多
4、要校驗輸入是否為空,如果輸入為空,你要提示賬號./密碼不能為空
什么都不輸入和輸入一個空格多個空格都算空。
輸入為空也算操作錯誤一次

1 # for循環:登錄 2 import datetime 3 4 username = 'tanailing' 5 passwd = '123456' 6 today = datetime.date.today() 7 times = 3 8 for i in range(3): 9 name = input("請輸入您的賬號:") # 輸入賬號 10 passw = input("請輸入您的密碼:") # 輸入密碼 11 if name.strip() == username: # 輸入的用戶名正確的情況 12 if passw.strip() == passwd: # 輸入的密碼正確的情況 13 print('%s歡迎您登錄!'\ 14 '今天是 %s ' % (name, today)) 15 break 16 elif passw.strip() == '': # 輸入的密碼為空的情況 17 times -= 1 # 可實施次數減1 18 print("賬號/密碼不能為空!") 19 print('您還有 %s 次機會' % (times)) 20 21 else: # 輸入的密碼錯誤或者其他的情況 22 times -= 1 # 可實施次數減1 23 print("賬號/密碼錯誤,請重新登陸!") 24 print('您還有 %s 次機會' % (times)) 25 elif name.strip() == '': # 輸入的用戶名為空的情況 26 times -= 1 # 可實施次數減1 27 print("賬號/密碼不能為空!") 28 print('您還有 %s 次機會' % (times)) 29 else: # 輸入的用戶名錯誤或者其他的情況 30 times -= 1 # 可實施次數減1 31 print("賬號/密碼錯誤,請重新登陸!") 32 print('您還有 %s 次機會' % (times)) 33 else: # 實施錯誤次數>3的情況 34 print("錯誤次數過多!賬號已鎖定!請稍后再試!")

1 # while 循環:登錄 2 import datetime 3 count = 0 4 username = 'tanailing' 5 passwd = '123456' 6 times = 3 7 today = datetime.date.today() 8 while count < 3: 9 name = input('請輸入您的賬號:') # 輸入賬號 10 passw =input('請輸入您的密碼:') # 輸入密碼 11 if name.strip() == username and passw.strip() == passwd: # 輸入的賬號和密碼都匹配的情況 12 print('%s歡迎您登錄!今天是 %s ' % (name, today)) 13 break # 跳出當前所有循環 14 elif name.strip() == '' or passw.strip() == '': # 輸入的賬號或者密碼任意一個為空的情況 15 print('賬號/密碼不能為空!') 16 times -= 1 # 可實施次數減1 17 count += 1 # 循環計數器加1 18 print('您還有 %s 次機會' % (times)) 19 continue 20 elif name.strip() != username or passw.strip() != passwd: # 輸入的賬號或者密碼任意一個不匹配的情況 21 print('賬號/密碼錯誤,請重新登陸!') 22 times -= 1 # 可實施次數減1 23 count += 1 # 循環計數器加1 24 print('您還有 %s 次機會' % (times) ) 25 continue 26 else: # 實施錯誤次數>3的情況 27 print("錯誤次數過多!賬號已鎖定!請稍后再試!")