python晦澀知識點 二

2021-07-09 13:43:31 字數 2132 閱讀 8106

宣告:一些很無聊的python填空題,要是面試遇到,不要猶豫,一巴掌甩過去,然後說:「老子大老遠跑過來面試,衣服都溼了,你就給我看這個?」開玩笑啦,反正很不爽就是了

>>> x, y = ???, ???

>>> x.count(y) > len(x)

true

意思是說有沒有合適的x,y使得y在x中出現的次數大於x的長度。一般來說,字串長度為5,我們會認為最多5個字母一樣,出現5次,不會有多的。即"aaaaa".count("a")等於「aaaaa」長度

事實上x, y = "a", ""滿足題意。因為任意字串count("")等於其長度加1.

x = "任意字串"

x.count("") == len(x)+1 > len(x)

>>> x, y = ???, ???

>>> y in x and y > max(x)

true

一般來說,y in x成立,那麼y應該<=max(x).因為y in x說明y是x子集,子集小於等於全集的最大值,y==max(x)是十分好實現好理解的,y>max(x)就比較難了。解題思路在於max,max返回的是乙個元素,數量或者說長度為1,只要y長度比1大,並且某種型別比較大小時,長度參與計算,長的比短的大,如此推理,答案就出來了
x, y = "aaaaaaaaaaaaaaaaaa", "aa"

顯然y in x成立。max(x)是"a", "aa">"a", 所以 y > max(x)成立。

>>> x, y, z = ???, ???, ???

>>> x * (y * z) != (x * y) * z

true

第一反應就是y和z都是負數,yz先乘變正數,接下來就是要找合適的x,滿足x*1 != x*-1即可。很榮幸告訴你,python裡有,比如列表。[1] * n表示列表重複(翻倍)n次,但是n<=0時,當作清空列表。

x, y, z = [0,0], -1, -1

x * (y * z)結果是[0, 0], 但(x * y) * z結果是.所以不等。

這只是站在python層面解決問題,利用列表的冷門特例。下面給的答案,更有水平

x, y, z = float("nan"), 任意整數, 任意整數.

(float("nan")*2)*3 != float("nan")*(2*3)原因是rfc***,自己去看,很無聊。總之就是浮點數有個特殊值nan,tm的自己跟自己都不等

>>> x, s = ???, ???

>>> s.add(x)

>>> type(x) not in map(type, s)

true

意思是說x新增進s,但是查詢s裡面所有元素的型別,卻發現沒有x的型別。不好推理出答案,直接給答案。x, s = true, ,至於解釋看一步步結果便知
>>> x, s = true, 

>>> true in s

true

>>> 1 in s

true

>>> s.add(x)

>>> s

set([1])

>>> type(x)

< type 'bool'>

>>> map(type, s)

[< type 'int'>]

明白了沒,對於集合,是計算hash的,true和1他認為是乙個東西,所以不再把true新增進去,對於type而言,true和1是兩個型別。其實這個可以認為是python的bug,true應該和1有不同的hash值
>>> x, y = ???, ???

>>> min(x, y) != min(y, x)

true

直接來第乙個答案x, y = , 。xy是隨意兩個集合就行,min(x, y)始終返回x,至於為什麼沒找到解釋。大神可賜教

第二個答案當然是萬能的float("nan"),管你大爺的min返回啥,自個都不等,你還能不成立?

6.自身比較

>>> x = ???

>>> x < x//自己比自己小

true

同理自己大於自己,自己不等於自己,類似實現

python知識點 二

在執行python命令的時候需要攜帶的引數稱之為命令列引數 python m py.compile d demo1.py m py.compile d demo1.py就是命令列引數 python中也可以用sys內建模組的sys.ar 來獲取命令列引數 sys.ar 是命令列引數列表 舉例 pyth...

python函式知識點 二

目錄 一.函式物件 二.函式巢狀 三.命名空間與作用域 四.閉包函式 五.裝飾器 1.函式是第一類物件,即函式可以當作資料傳遞 1 可以被引用 2 可以當作引數傳遞 3 返回值可以是函式 3 可以當作容器型別的元素2.利用該特性,優雅的取代多分支的if 不然要是有很多個函式的話,就要寫很多個if e...

python知識點筆記二

1.python 中,字串變數提供了 3 種方法來刪除字串中多餘的空格和特殊字元,它們分別是 strip 刪除字串前後 左右兩側 的空格或特殊字元。lstrip 刪除字串前面 左邊 的空格或特殊字元。rstrip 刪除字串後面 右邊 的空格或特殊字元。注意,python 的 str 是不可變的 不可...