本文目錄一覽:
- 1、軟件測試中,python判斷字符串,str函數isdigit、isdecimal、isnumeri
- 2、紅河java培訓學校告訴你python編程開發環境下的軟件測試技術?
- 3、不學會裝飾器,面試不敢說自己會Python
- 4、北大青鳥設計培訓:python編程開發環境下的軟件測試技術?
- 5、Python高階(一) – 單線程、多線程和多進程的效率對比測試
軟件測試中,python判斷字符串,str函數isdigit、isdecimal、isnumeri
num = “4” # 全角數字num.isdigit() # Truenum.isdecimal() # Truenum.isnumeric() # Truenum = b”4″ # bytenum.isdigit() # Truenum.isdecimal() # AttributeError: bytes object has no attribute isdecimalnum.isnumeric() # AttributeError: bytes object has no attribute isdecimalnum = “IV” # 羅馬數字num.isdigit() # Truenum.isdecimal() # Falsenum.isnumeric() # True#num = “四” # 漢字num.isdigit() # Falsenum.isdecimal() # Falsenum.isnumeric() # True# isdigit() 支持 全角數字,byte數字(單位元組) 羅馬數字 不支持漢字# isdecimal() 支持全角數字 , 不支持 羅馬數字 漢字 , 報錯 byte數字(單位元組)# isnumeric() 支持 全角數字 羅馬數字 漢字 報錯 byte數字(單位元組)通常使用最多的是isdecimal ,如果想了解更多可以來傳智播客軟件測試學科學習
紅河java培訓學校告訴你python編程開發環境下的軟件測試技術?
軟件測試相信大家應該都不陌生了吧,今天我們就一起來了解一下,在python編程開發環境下的軟件測試都有哪些知識點。
格式化輸出
我們有兩種大相徑庭地輸出值方法:表達式語句*和print()函數(三種方法使用文件對象的write()方法,標準文件輸出可以參考sys.stdout)。
通常需要對輸出做更多的格式控制,而不是簡單的打印空格分隔值。有兩種方法可以格式化你的輸出:一種方法是由你自己處理整個字符串,通過使用字符串切片和連接操作可以創建任何你想要的輸出形式。string類型包含一些將字符串填充到指定列寬度的有用操作。二種方法是使用str.format()方法。
標準模塊string的Template類可以替換字符串的值。(python標準模塊介紹-string:文本常量和模板)
Python有辦法將任意值轉為字符串:repr()或str()函數。
函數str()用於將值轉化為適於人閱讀的形式,而repr()轉化為供解釋器讀取的形式(如果沒有相關語法,則會發生SyntaxError異常,沒有str()會返回與repr()等同的值。很多類型,諸如數值或列表、字典這樣的結構,兩者解讀方式相同。字符串和浮點數則不同。
文件讀寫
通常,文件以text模式打開,這意味着,你從文件讀出和向文件寫入的字符串會被特定的編碼方式(類Linux默認是UTF-8,windows經常為gbk,容易導致一些IO問題)編碼。模式後面的’b’以二進制模式打開文件:數據會以位元組對象的形式讀出和寫入。IT培訓發現這種模式應該用於所有不包含文本的文件。
在文本模式下,讀取時默認會將平台有關的行結束符(Unix上是\n,Windows上是\r\n)轉換為\n。在文本模式下寫入時,默認會將出現的\n轉換成平台有關的行結束符。這種暗地裡的修改對ASCII文本文件沒有問題,但會損壞JPEG或EXE這樣的二進制文件中的數據。使用二進制模式讀寫此類文件時要特別小心。
不學會裝飾器,面試不敢說自己會Python
本文章出自【 碼同學軟件測試 】
碼同學公眾號:自動化軟件測試
碼同學抖音號: 小碼哥聊軟件測試
裝飾器
Python的裝飾器 是面試常被問到的問題之一,如果你的簡歷里描述 會Python .那麼大概率會被問到.
那麼我們應該怎麼回答這個問題呢?
這裡我從幾個角度來解釋裝飾器的作用,大家可以挑選符合自己的說法
Python中的裝飾器,本質上就是一個高階 函數 ,這裡高階函數指定就是” 一個返回值是函數的函數 ”
在python中使用裝飾器,有兩個組成部分.
①@符號調用裝飾器
②定義被裝飾的方法
範例如下:
@裝飾器名字
定義被裝飾的函數
@logger
def func():
pass
裝飾器可以在不修改函數的情況下,增加額外的功能.這是官方給 裝飾器 的定義
實際上我們會把一些業務功能之外的,附屬需求用裝飾器來實現.比如:為我們的函數添加 日誌記錄 , 性能監控器 , 埋點計數器 .大家也都知道,修改寫好的函數是非常麻煩並且容易出錯的一件事.所以很適合” 在不修改函數內部代碼的前提下,為它包裝一些額外的功能 “也就是裝飾器
staticmethod 用來修飾類中的方法,使得該方法可以直接用類名訪問,如cls.foo()。
classmethod 和staticmehod類似,區別在於staticmethod,classmethod會將class傳入被修飾的方法中
class A(object):
a = 1
def __init__ ( self ):
self .a = 2
@staticmethod
def foo1():
print A.a
@classmethod
def foo2(cls):
print “class a is” , cls.a
print “instance a is” , cls().a
免費領取 碼同學軟件測試 課程筆記+超多學習資料+完整視頻+最新面試題,可以 轉發文章 + 私信「碼同學666」獲取資料哦
property 可以將屬性的訪問和賦值用函數來實現,從而可以在函數里添加參數檢查等一些功能,同時外部使用時訪問和賦值的方式並不發生變化。注意訪問和賦值的方法名是一樣的
class A(object):
def __init__( self ):
self .__count = 0
@property
def count( self ):
return self .__count
@count .setter
def count( self , value):
if not isinstance(value, int):
raise ValueError ( ‘count must be an integer!’ )
self .__count = value
a = A()
print a.count
a.count = 1
print a.count
a.count = “a” # raise ValueError
functools.wraps 用在裝飾器的代碼里。可以把原始函數的 name 等屬性複製到wrapper()函數中,這樣就可以獲取到真實函數的 name 屬性,而不是wrapper
import functools
def log(text):
def decorator(func):
@functools.wraps (func)
def wrapper( * args, ** kw):
print ‘%s %s():’ % (text, func. __name__ )
return func( * args, ** kw)
return wrapper
return decorator
#!/anaconda3/envs/FEALPy/bin python3.7
# -*- coding: utf-8 -*-
# —
# @File: 裝飾器語法.py
# @Author: Bull
# —
# 定義裝飾器函數
# 1.簡單裝飾器範例
def logger(func):#在python里,一切都是對象
def wrapper(*args,**kw):
print(“進入裝飾器函數了”)
func(*args,**kw)#真正的函數在裝飾器重新調用
func(*args, **kw)
print(“裝飾器功能執行完畢”)
return wrapper
@logger#=logger(add)
def add(x,y):
print(‘進入被修飾的函數’)
print(f'{x}+{y}={x+y}’)
# add(1,2)
# 2.帶參數的裝飾器
def say_hello(contry):
def wrapper(func):
def second(*args,**kw):
if contry == ‘china’:
print(“來自裝飾器的『你好』”)
elif contry == ‘america’:
print(‘來自裝飾器的”hello”‘)
else:
return
func(*args,**kw)
return second
return wrapper
@say_hello(‘america’)
def american():
print(“I am from America”)
@say_hello(‘china’)
def china():
print(‘我來自中國’)
american()
print(‘*’*30)
china()
END
本文著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。
北大青鳥設計培訓:python編程開發環境下的軟件測試技術?
軟件測試相信大家應該都不陌生了吧,今天我們就一起來了解一下,在python編程開發環境下的軟件測試都有哪些知識點。
格式化輸出我們有兩種大相徑庭地輸出值方法:表達式語句*和print()函數(三種方法使用文件對象的write()方法,標準文件輸出可以參考sys.stdout)。
通常需要對輸出做更多的格式控制,而不是簡單的打印空格分隔值。
有兩種方法可以格式化你的輸出:一種方法是由你自己處理整個字符串,通過使用字符串切片和連接操作可以創建任何你想要的輸出形式。
string類型包含一些將字符串填充到指定列寬度的有用操作。
二種方法是使用str.format()方法。
標準模塊string的Template類可以替換字符串的值。
(python標準模塊介紹-string:文本常量和模板)Python有辦法將任意值轉為字符串:repr()或str()函數。
函數str()用於將值轉化為適於人閱讀的形式,而repr()轉化為供解釋器讀取的形式(如果沒有相關語法,則會發生SyntaxError異常,沒有str()會返回與repr()等同的值。
很多類型,諸如數值或列表、字典這樣的結構,兩者解讀方式相同。
字符串和浮點數則不同。
文件讀寫通常,文件以text模式打開,這意味着,你從文件讀出和向文件寫入的字符串會被特定的編碼方式(類Linux默認是UTF-8,windows經常為gbk,容易導致一些IO問題)編碼。
模式後面的’b’以二進制模式打開文件:數據會以位元組對象的形式讀出和寫入。
IT培訓發現這種模式應該用於所有不包含文本的文件。
在文本模式下,讀取時默認會將平台有關的行結束符(Unix上是\n,Windows上是\r\n)轉換為\n。
在文本模式下寫入時,默認會將出現的\n轉換成平台有關的行結束符。
這種暗地裡的修改對ASCII文本文件沒有問題,但會損壞JPEG或EXE這樣的二進制文件中的數據。
使用二進制模式讀寫此類文件時要特別小心。
Python高階(一) – 單線程、多線程和多進程的效率對比測試
多線程的目的 – 「最大限度地利用CPU資源」。每個程序執行時都會產生一個進程,而每一個進程至少要有一個主線程。對於單CPU來說(沒有開啟超線程),在同一時間只能執行一個線程,所以如果想實現多任務,那麼就只能每個進程或線程獲得一個時間片,在某個時間片內,只能一個線程執行,然後按照某種策略換其他線程執行。由於時間片很短,這樣給用戶的感覺是同時有好多線程在執行。
Python是運行在解釋器中的語言,查找資料知道,python中有一個全局鎖(GIL),在使用多線程(Thread)的情況下,不能發揮多核的優勢。而使用多進程(Multiprocess),則可以發揮多核的優勢真正地提高效率。
單線程、多線程和多進程的效率對比測試: github地址
資料顯示,如果多線程的進程是CPU密集型的,那多線程並不能有多少效率上的提升,相反還可能會因為線程的頻繁切換,導致效率下降,推薦使用多進程;如果是IO密集型,多線程進程可以利用IO阻塞等待時的空閑時間執行其他線程,提升效率。所以我們根據實驗對比不同場景的效率
| CPU密集型操作| IO密集型操作| 網絡請求密集型操作
— | — | –| —
線性操作| 69.73533328374 |17.76633326213 | 6.78833333651
多線程操作| 75.40299995740 |145.68366670609 | 1.93999997775
多進程操作| 13.97433336576 | 4.67833328247| 2.38333328565
僅個人觀點,,歡迎留言~~~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/193634.html