01浮點數運算
◆ 題目
判斷浮點數的運行結果是否相等:

◆ 題目決議:
本題考查的是計算機的浮點運算知識點,
不僅是python語言,其他的編程語言也面臨同樣的問題:
在進行浮點運算的時候,10 進制表示方式會丟掉它的精度,造成運算結果與實際結果不符合,
這是由于底層 CPU 和運算標準通過自己的浮點單位去執行算術時的特征決定的,看似有窮的小數, 在計算機的二進制表示里卻是無窮的,
所以在進行高進度浮點運算的時候一定要注意,尤其是自動化測驗程序中需要進行斷言非常容易出錯,
◆ 題目答案:
斷言失敗,拋出 AssertionError 錯誤,
◆ 解決方案:
使用Decimal模塊:

Decimal() 可以維持浮點數的精度,在金融領域和測驗領域等精度要求高的行業有非常大的作用,
但是一定要注意: Decimal() 傳的引數一定要是字串型別,如果是資料型別會再次丟掉精度,

02 串列的扁平化和降維
◆ 題目
有一個二維串列,降成普通的一維的,
比如說華測高級班都會有學員分組,我們想通過分組資訊去獲取所有的學員名稱,

◆ 方法一
最簡單的方式可以通過for回圈的方式一一提取:

◆ 方法二
但是在面試的時候可能會加一些限制,比如讓你用一行代碼實作,這個時候就需要對python基礎有進一步的理解了,
比如說使用sum函式:

非常簡單就實作了同樣的功能,
sum函式為什么可以做到呢?先看一個簡單的例子:

得到的結果是6,
也就是說,sum函式會把一個串列里面的每個元素相加,
但是sum函式還可以有第二個引數:開始值,默認為0,所以上述程序其實可以寫成:

依據同樣的道理,可以對串列進行降維操作:
精選2019大廠軟體測驗面試題
◆ 方法三
通過串列推導式也可以方便的解決:

03 多重繼承

多重繼承經常用來出面試題,
在這個考題中,C類的父類A和B都實作了run方法,那在C的物件里到底是優先呼叫哪一個呢?
答案是:a running
◆ 菱形問題

他們的繼承關系圖可以簡化如下,這個問題又稱為菱形問題或者鉆石問題:
答案是:c running
如果我們不讓C類繼承A呢?

他們的繼承關系圖可以簡化如下,可以簡稱為v型問題:

答案會變成a running
◆ 題目決議
具體原因是 python 的繼承會遵循特定的順序,優先級排在前面的,子類會優先使用,
怎么快速查看這種繼承順序呢?通過D.__mro__去查看
比如在菱形問題上,d的順序是這樣的:
(, , , , )
D 排在最前面,如果 D 定義了 run 方法,就會被優先使用,然后是 B, 然后是C, 然后是 A, 最后是 object 基類,
而在V行問題上,d的順序又變成了這樣:
(, , , , )
A和C互換了順序,造成2個題目的答案不一致,
結束語:感謝各位測驗員的閱讀,希望大家新年都能獲得一份高薪的offer,需要更多Python自動化測驗視頻學習資料的可以加群 313782132 私信我哦,
最后:
凡事要趁早,特別是技術行業,一定要提升技術功底,豐富自動化專案實戰經驗,這對于你未來幾年職業規劃,以及測驗技術掌握的深度非常有幫助,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238943.html
標籤:其他
上一篇:適用于企業的API管理平臺
