1. 程式人生 > 其它 >測試學習筆記(P51-P72教程from凡雲教育)之python基礎

測試學習筆記(P51-P72教程from凡雲教育)之python基礎

P51

程式設計基本概念

程式是一段可以由計算機執行的程式碼。

程式= 語法+演算法+資料結構

P52

New project建立時選擇現有直譯器即可;

P53

學習一門語言究竟要學什麼:

輸入輸出

資料型別

控制結構

函式定義

物件定義

檔案讀寫

異常處理

Python 執行的三種方式:

  1. 互動式直譯器種直接執行python程式碼(cmd敲python進入)
  2. 命令列的方式執行python程式碼(cmd)
  3. 用編輯器執行python程式碼(pycharm等)

P54

Python語言基礎

input()接受使用者輸入,預設返回值是字串

X=int(input(“enter your number:”))--轉型輸入為整型

print() 逗號分隔引數,預設換行顯示(end=’\n’,不想要換行可以寫成end=’’)

print(“hello”,”world”,”!”)

P55

Python種使用變數需要注意的點:

  1. Python中的變數不需要型別宣告,變數型別由賦值給它的資料型別決定;
  2. 每個變數在前都必須先被賦值,變數賦值後該變數才被建立;
  3. 等號用來賦值,等號左邊的是變數名,右邊的是儲存在變數中的值。

python保留關鍵字查詢:cmd進入直譯器,輸入keyword module 即可查詢。

Python命名規則:

  1. 以字母下劃線開頭,剩餘部分字母、數字、下劃線均可。 py檔案不要使用-符號、不要以數字開頭
  2. 大小寫敏感。使用大寫首字母可以有效避開關鍵字。
  3. 變數名不要使用關鍵字
  4. 儘量用能夠表徵變數含義的變數名(見名知意)

P56

佔位符

格式佔位符(%)是在python語言中格式輸入函式,如print()等函式中使用,其意義就是起到格式佔位的意思,表示在該位置有輸入或者輸出。

%d,整數,print("我今年%d歲了"%(18))

%f,浮點數(預設6位小數),print('%.3f'%(22.3))

%s,字串,print("hello,%s和%s"%('小明','小紅'))

%%,表示%符號本身,print("大概有%d%%"%(40))

format方法,支援不指定資料型別的佔位

print("我今年{}歲了".format(18))

print('{}'.format(22.3))

print("hello,{}和{}".format('小明','小紅'))

print("大概有{}%".format(40))

f方法更簡單

b=3.1415926

a='小蘭'

print(f"Π的值是{b},學生姓名{a}")

註釋#、三引號、

縮排,四個空格或者tab

P57

安裝python

P58

資料型別:

Number數字 string字串 tuple元組 (不可變)

List列表 Set集合 Dictionary字典 (可變)

可變資料型別:改變資料的值並不會產生一個新的物件,變數仍然指向原來的物件(地址id不變)

不可變資料型別:但是改變了資料的值之後,這個值就將變成另一個物件的資料型別,叫不可變資料型別(地址id會變)

P59

數值型資料型別

整型、浮點型、複數

型別轉換int(),float()

print(type(i))列印當前資料型別

print(15//2)整除(取商的整數)

print(15%2)取餘

print(2**3)2得三次方

math庫常用方法

print(math.ceil(-4.5))# 取大於等於當前數的最小整數

print(math.fabs(-2.5))# 取當前數的絕對值

print(math.floor(-2.5))# 取小於等於當前數的最大整數

print(math.pow(2,3))# 2的3次方

print(math.sqrt(16))# 16開方

Random 模組

print(random.random())返回[0.0,1.0)之間的浮點數。

random.randint(a,b)生成一個[a,b]之間的隨機數

random.randrange(a,b)生成一個[a,b)之間的隨機數

random.uniform(a,b)生成一個[a,b]之間的隨機浮點數

random.choice([])從列表中隨機取出一個元素

random.shuffle([])打亂列表中元素的順序

random.sample([],n)從序列中隨機取出n個值

P60

字串型別

單雙三引號括起來的值或者賦值給的變數都是屬於字串型別

字串中單雙三引號不能混用

三引號一般用於程式碼註釋或保持樣式的長字串輸出

字串切片

str = '1234567890'

print(str[-5:9:1])

結果:6789

[start:end:step]

Step為正時,start要在end左邊,無論如何標序。

Step為負時,start要在end右邊,無論如何標序。

print(str[::-1]) 倒序輸出

print(str[-1:5:-1]) 0987

P61

原始字串

s=r”c:/software/npatcge”

Print(s)

P62

字串處理

print(len(s));字串長度

print(s.count(‘1’,5,len(s)))從第五位

print(s.capitalize()) 首字母大寫

print(s.find(‘1’))查詢返回序號,無則返回-1

print(s.replace(‘90’,’aa’)) 替換

print(s.split(‘5’))用5做切分,結果['1234', '67890']

print(str.index('h')),index用法通find,但沒找到字元程式會報錯

print(str.isdigit())ture 是否只包含數字,isalpha是否只包含字母

islower,字串包含字母且所有字母小寫,則true

isspace 字串只包含空格則true

istitle 字串標題化則true

lower,轉小寫

print(str.startswith('6', 5, len(str)-1))是否以指定字串開頭,返回值true/false

print(str.strip('1')) strip,預設去空白,也可指定,只能去兩邊的

‘’.join()方法,以指定符號連線後面列表的字串內容,以字串形式返回

a=[‘h’,’e’,’l’,’l’,’o’], print(‘’.join(a))

P63

列表

容器型資料型別,可以用於存放其他資料型別的資料型別

list1=[‘oh’,’my’,’god’]

list2=list1

兩個列表指向同一塊記憶體區域;

list2=list1[:] 或者 list2=list1.copy()

兩個列表指向不同的記憶體區域,但列表內容相同;

列表巢狀

list1=['a', ['b', 'c', 'd'], 'e']

print(list1[1][2])

取d的寫法

列表常用方法:

list.append(obj)列尾新增新物件

list.count(obj)統計某個元素在列表中出現的次數(巢狀列表的元素不計入)

list.extend(seq)在列表末尾一次性追加另一個序列的多個值;list1+list2效果等於list1.extend(list)

List.insert(位數,值)列表指定位置新增值

list.pop(位數)刪除指定位置的元素

list.remove(值)刪除值為指定的元素

list.reverse()把列表倒序

list.sort()、list.sort(reverse=true)排正、倒序,數值型的列表有意義

Min\max\sum對於數值型列表求和使用

list()方法:a=list(‘hello’), a=[‘h’,’e’,’l’,’l’,’o’]

List(range(start,end=None))快速生成指定範圍內數字列表

P64

元組與列表類似,區別有兩點:

  1. 用小括號 元組元素不能修改

如果元組的元素只有一個,必須要在元素後加一個逗號才會認為時元組

tuple(seq),將列表轉換成元組

P65

集合(set),無序不重複的元素集,主要用於消除重複元素

S={}

Set([])列表強轉為集合,其他型別也可強轉

add\remove\del刪除整個集合\clear清空\len

st1={'g','o','o','d'}

for item in st1:

print(item)

P66

字典,無序的物件集合,字典中的元素通過鍵來存取,鍵不重複。

字典中的鍵必須時不可變資料型別。

dic1=dic2地址相同

dic1=dic2.copy()值相同

dic.clear()清空列表

dic.fromkeys([])建立以列表值為鍵的字典

dic3= dict.fromkeys(['id','num','price'])

print(dic3)

結果

{'id': None, 'num': None, 'price': None}

dic.get(key,default=None)

取鍵的值;鍵不存在時返回none

dic1.get(key1) 等同與dic1[key],但是當key不存在時dic1[key]會拋異常

dic.update(dict2)

把的dict2鍵值對合併到dict1中

dic.keys()取鍵

print(dic1.keys())

結果dict_keys([‘’,’’,’’])

dic.values()取值

print(dic1.values())

結果dict_values([‘’,’’,’’])

dic.items()取鍵和值

print(dic1.items())

結果dict_items([(),(),()])

dic.popites()隨機刪除一個鍵值對

dic.pop(key)刪除指定鍵值對

P67

If else

P68

迴圈結構

for用於已知集合進行迴圈,如列表、集合、字典、range數字迴圈

While用於知道迴圈條件,比如大於某個值、值為真。

迴圈巢狀判斷

例1

for x in name:

if x=='wangwu':

# break 列印遇到wangwu時終止且wangwu不做列印

Continue 列印遇到wangwu時不做列印,繼續迴圈直到列表迴圈完

print(x)

例2

for x in name:

if x=='wangwu1':

print('found')

break

else:

print('notfound')

佔位符:pass

P69

函式:

內建函式,print等

模組函式,匯入模組後使用 import random;第三方模組放在lib/site-package中

自定義函式

巢狀函式(埋個裝飾器)

P70

函式引數相關

return後面的語句不執行

沒有return的函式返回值為none

改變形參得值是否會使實參值改變,取決於引數的資料型別:

引數是不可變資料型別,則不會改變

引數是可變資料型別,則會改變

位置引數(位置一一對應)

關鍵字引數(鍵值對形式,用等號連線,可以不安位置順序對應)

預設值引數(呼叫時沒有傳引數則使用預設值,預設值在函式宣告時指定)

不定長引數:

*args傳遞元組形式不定長引數;**kwargs傳遞字典型別的不定長引數,要求寫在*args之後

lst=[1,2,3,4,5]

printinfo(1,*lst)------此處*表示將lst自動解包,作為N個引數傳遞給函式

P71

想在函式給全域性變數重新賦值(=),需要在函式內使用關鍵字global 變數;讀取全域性變數不需要加;如果呼叫該變數的方法不是重新賦值,比如修改列表,可以不用加,如 list.append

如果函式內有與全域性變數重名的變數,則需要用global加以區分;

P72

編寫註冊、登入程式碼