最基础的python自动化测试(基础篇)
一、python基礎
基本概念
字符集:是一個系統支持的所有抽象字符的集合,計算機中儲存的信息都是用二進制數表示的。
字符編碼(Character Encoding):是一套法則,使用該法則能夠對自然語言的字符的一個集合(如字母表或音節表),與其他東西的一個集合(如號碼或電脈沖)進行配對。即在符號集合與數字系統之間建立對應關系,它是信息處理的一項基本技術。以計算機為基礎的信息處理系統則是利用元件(硬件)不同狀態的組合來存儲和處理信息的。元件不同狀態的組合能代表數字系統的數字,因此字符編碼就是將符號轉換為計算機可以接受的數字系統的數,稱為數字代碼。
常用的字符集合字符編碼
常見字符集名稱:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。計算機要準確的處理各種字符集文字,需要進行字符編碼,以便計算機能夠識別和存儲各種文字。
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼(定長碼),也是一種前綴碼。它可以用來表示Unicode標準中的任何字符,且其編碼中的第一個字節仍與ASCII兼容,這使得原來處理ASCII字符的軟件無須或只須做少部份修改,即可繼續使用。因此,它逐漸成為電子郵件、網頁及其他存儲或傳送文字的應用中,優先采用的編碼。互聯網工程工作小組(IETF)要求所有互聯網協議都必須支持UTF-8編碼。
有時我們看到頁面上的亂碼,可能就是字符集不一致導致的。
變量(variable)變量就是代表某個數據(值)的名稱。python是一種動態類型語言,在賦值的執行中可以綁定不同類型的值,這個過程叫做變量賦值操作,賦值同時確定了變量類型。
靜態類型語言是指在編譯時變量的數據類型即可確定的語言,多數靜態類型語言要求在使用變量之前必須聲明數據類型,某些具有類型推導能力的現代語言可能能夠部分減輕這個要求.
動態類型語言是在運行時確定數據類型的語言。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。
python中變量的定義
1、變量名可以包括字母、數字、下劃線,但是數字不能做為開頭。例如:name1是合法變量名,而1name就不可以。
2、系統關鍵字不能做變量名使用
3、除了下劃線之個,其它符號不能做為變量名使用
4、Python的變量名是區分大小寫的,例如:name和Name就是兩個變量名,而非相同變量哦。
5、中文也能定義變量名,單實際當中不這樣運用
python的數據類型
1)整型——int——數字
python有5種數字類型,最常見的就是整型int,例如:a = 123 或 b = -123 等號左邊是變量名,右邊是要賦的值
2)布爾型——bool——用符號==表示
布爾型是一種比較特殊的python數字類型,它只有True和False兩種值,它主要用來比較和判斷,所得結果叫做布爾值。例如:3==3 給出True,3==5給出False
3)字符串——str——用' '或" "表示
例如:URL='www.iplaypy.com'或者name="lijing"
4)列表——list——用[ ]符號表示
例如:num=[1,2,3,4]
5)元組——tuple——用( )符號表示
例如:('d',300)
6)字典——dict——用{ }符號表示
例如:{'name':'coco','country':'china'}
實戰演練
安裝python,安裝pycharm編碼軟件進行編碼。
1、hello world!
python中輸出函數print函數,字符串和數值類型的可以直接輸出,如下
print('hello world') print(1) 輸出內容:輸出字符串內容可以用‘’,也可以用“”,當輸出的字符串中包含‘’時,則字符串用“”;當輸出的字符串中包含“”號時,則字符串用‘’;當輸出的字符串中‘’和“”都包含時,則字符串用‘’‘ ‘’’來輸出;如下
print("你真的很'帥'!") print('你真的很"帥"!') print(''''哇!'你真的很"帥"!''')輸出內容:
輸出變量類型
x='hello world!' print(x) s=13 print(s) l=[1,2,3,'p'] print(l)格式化輸出
?輸出的內容中包含定義的參數時,
name=input('請輸入你的姓名:') time='2017年12月19日' print('%s歡迎光臨!'%name)輸出內容
%字符:標記轉換說明符的開始 ,s表示格式轉換類型為字符串,f表示十進制浮點數,d表示帶符號的十進制整數
當有兩個輸出參數的使用,在%(參數1,參數2)列出需要傳參的參數名
name=input('請輸入你的姓名:') time='2017年12月19日' print('%s歡迎光臨!'%name) print('%s歡迎光臨!時間是:%s'%(name,time))輸出內容:
+的形式進行字符串拼接:
?name=input('請輸入你的姓名:')
time='2017年12月19日'
print('%s歡迎光臨!'%name)
print(name+'歡迎光臨!')
輸出內容:
可以看到字符串拼接 + 的輸出內容與%形式的轉換是一樣的;
還有一種方式更加簡便快捷常用,{}的形式進行傳參
name=input('請輸入你的姓名:') time='2017年12月19日' print('%s歡迎光臨!'%name) print('%s歡迎光臨!時間是:%s'%(name,time)) print(name+'歡迎光臨!') print('{}歡迎光臨!時間是:{}'.format(name,time))輸出內容:
請輸入你的姓名:pei
pei歡迎光臨!
pei歡迎光臨!時間是:2017年12月19日
pei歡迎光臨!
pei歡迎光臨!時間是:2017年12月19日
當參數較多時,可能會記憶混亂出現傳參錯誤的情況,此時我們可重新定義一下傳參的內容:如下實現方法
name=input('請輸入你的姓名:') time='2017年12月19日' print('%s歡迎光臨!'%name) print('%s歡迎光臨!時間是:%s'%(name,time)) print(name+'歡迎光臨!') print('{}歡迎光臨!時間是:{}'.format(name,time)) print('{username}歡迎光臨!時間是:{localtime}'.format(username=name,localtime=time))輸出內容:
?2、條件判斷基本使用方法
語法:
? ?if 條件表達式:
? ? ? 語句塊
例子:
如果成績達到80分或以上,視為優秀。
?????? 成績達到60分到80分(不包括80分),視為及格。
?????? 成績60分以下,視為不及格。
我們輸入一個分數,用if語句判斷是否能打印出分數所屬階段:
score =input('請輸入分數:') if score >= 80:print('優秀') elif score >=60 and score<80:print('及格') else:print('不及格!')執行上面的語句,輸入分數為89,看執行結果
上述結果我們看到執行報錯了,str類型的與int類型不能進行比較;
因為score為一個輸入類型的變量,而input函數所有形式的輸入按字符串處理,如果想要得到其他類型的數據進行強制類型轉化,此處我們需要對輸入內容強制進行轉化,如下
score =int(input('請輸入分數:')) if score >= 80:print('優秀') elif score >=60 and score<80:print('及格') else:print('不及格!')?執行上述代碼,輸入分數為99,查看輸出結果
輸入分數為78,查看輸出結果
輸入分數為55,查看輸出結果
?2、for循環和while循環的基本使用方法
?for循環
for something in XXXX:
??? 語句塊
?即表示對XXXX中的每一個元素,執行某些語句塊,XXXX可以是列表,字典,元組,迭代器等等。
?如下
for x in range(10):print('test')執行查看輸出結果,輸入了10次test
while循環:
while 條件表達式1:
? ? ? 語句塊
while 循環不會迭代 list 或 tuple 的元素,而是根據表達式判斷循環是否結束。while循環會每次判斷 條件表達式1 是否為true,如果為true,則執行語句塊,否則退出循環。
例如:
count=0 while count<3:print('哈哈哈')count+=1執行看一下結果
結果輸出了3次‘哈哈哈’,每一次輸入,count+1,直到不滿足條件count<3時,退出循環。
continue和break
break:
? ?直接退出整個循環體;
continue:
? ?跳出本次循環,執行下一次循環。
?例如上邊的例子,我們加上break和continue來看一下結果
?for x?in?range(10):
print('test')
break
?執行并查看結果
我們看到for循環中添加break之后,執行一次,遇到break就退出循環了,沒有繼續循環。
在while中添加continue來試試:
count=0 while count<3:count += 1username=input('請輸入您的姓名:')if username=='小王':print('%s,歡迎光臨!'%username)breakelse:print('您好,您重新輸入!')continue else:print('您好,輸入次數過多!')?執行上述代碼,輸入姓名為:ww,查看結果
執行代碼,輸入姓名為:小王,查看結果
?其中,字符串的比較
相等:==
不等于 :=!
小于等于 :<=
大于等于:>=
?我們再來試一個猜數字的例子
Python中的random模塊用于生成隨機數。下面介紹一下random模塊中最常用的幾個函數。
random.random
random.random()用于生成一個0到1的隨機符點數: 0 <= n < 1.0
random.uniform
random.uniform的函數原型為:random.uniform(a, b),用于生成一個指定范圍內的隨機符點數,兩個參數其中一個是上限,一個是下限。如果a > b,則生成的隨機數n: a <= n <= b。如果 a <b, 則 b <= n <= a。
random.randint
random.randint()的函數原型為:random.randint(a, b),用于生成一個指定范圍內的整數。其中參數a是下限,參數b是上限,生成的隨機數n: a <= n <= b
random.randrange
random.randrange的函數原型為:random.randrange([start], stop[, step]),從指定范圍內,按指定基數遞增的集合中 獲取一個隨機數。如:random.randrange(10, 100, 2),結果相當于從[10, 12, 14, 16, ... 96, 98]序列中獲取一個隨機數。random.randrange(10, 100, 2)在結果上與 random.choice(range(10, 100, 2) 等效。
random.choice
random.choice從序列中獲取一個隨機元素。其函數原型為:random.choice(sequence)。參數sequence表示一個有序類型。這里要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬于sequence。
random.shuffle
random.shuffle的函數原型為:random.shuffle(x[, random]),用于將一個列表中的元素打亂。
random.sample
random.sample的函數原型為:random.sample(sequence, k),從指定序列中隨機獲取指定長度的片斷。sample函數不會修改原有序列。
首先需要導入random模塊
import random random_num=random.randint(1,1999) print(random_num)執行查看結果為 736 ,取了一個隨機數。
下面來寫猜數字的例子:如果7次之內猜出數字,則結束,如果錯誤,輸入超過7次后結束。
import random # 導入random模塊 random_num = random.randint(1, 500) count = 0 while count < 7:count += 1num = int(input('請輸入你猜的數字:'))if num > random_num:print('你猜的太大了')continueelif num < random_num:print('你猜的太小了')continueelse:print('恭喜你猜對了,答案是:%s'%num)break執行輸入相應的數字,查看結果
好了,今天先說到這里,后續繼續學習。
總結
以上是生活随笔為你收集整理的最基础的python自动化测试(基础篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解压密码忘记了怎么办
- 下一篇: 20N20-ASEMI低功耗场效应管20