廖雪峰Python習題集 列表生成式

2021-08-10 04:32:43 字數 585 閱讀 5549

如果list中既包含字串,又包含整數,由於非字串型別沒有lower()方法,所以列表生成式會報錯:

>>> [s.lower() for s in l]

traceback (most recent call last):

file "", line 1, in file "", line 1, in attributeerror: 'int' object has no attribute 'lower'

使用內建的isinstance函式可以判斷乙個變數是不是字串:

>>> x = 'abc'

>>> y = 123

>>> isinstance(x, str)

true

>>> isinstance(y, str)

false

請修改列表生成式,通過新增if語句保證列表生成式能正確地執行:

>>>[s.lower() for s in l if isinstance(s,str)]

執行結果如下圖所示:

廖雪峰Python習題集 條件判斷

小明身高1.75,體重80.5kg.請根據bmi公式 體重除以身高的平方 幫小明計算他的bmi指數,並根據bmi指數 低於18.5 過輕 18.5 25 正常 25 28 過重 28 32 肥胖 高於32 嚴重肥胖 用 if elif判斷並列印結果 coding utf 8 height 17.5 ...

Python習題集(四)

如果乙個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如 153 1 3 5 3 3 3,因此 153 就是乙個水仙花數 那麼問題來了,求1000以內的水仙花數 3位數 int轉字串序列,獲取到每一位數 呼叫math.pow函式求立方和 三個數字立方和相加 lists for i in ...

Python習題集(十二)

請寫乙個函式find odd,引數是1個列表,請返回該列表 現奇數次的元素 比如 find odd 1,1,2,2,5,2,4,4,1,2,5 1 find odd 20,1,1,2,2,3,3,5,5,4,20,4,5 5 find odd 10 10 迴圈列表 呼叫列表內建統計函式計算當前元素出...