Python 非空即真、列表生成式、三元表达式 day3
一、非空即真:
Python程序語言指定任何非0和非空(null)值為true,0 或者 null為false
s = '' if s:print('走if') else:print("走else") #走else 舉例二: username = input('username:') if username:print("用戶名是%s"%username)#若輸入名字則走if else:print("請輸入用戶名")#若不輸入用戶名則走else 舉例三: a = 0if a :print("go if") else:print("go else")#走else
二、列表生成式:
python里面[]表示一個列表,快速生成一個列表可以用range()函數(shù)來生成。
對列表里面的數(shù)據(jù)進(jìn)行運(yùn)算和操作,生成新的列表最高效快速的辦法,那就是列表生成式了。
?1、range()
一個連續(xù)的數(shù)字類型列表,比如[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],可以用range生成
b = range(1, 11) print(b) # 結(jié)果 range(1, 11)python3直接打印b會顯示range(1, 11)對象,并不是直接顯示應(yīng)該列表,如果想顯示列表,可以用list()轉(zhuǎn)下 print(type(b))#結(jié)果<class 'range'> print(list(b)) # 轉(zhuǎn)list ,輸出結(jié)果為[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2、列表生成式
(1).如果想對列表里面的數(shù)據(jù)進(jìn)行運(yùn)算后重新生成一個新的列表,如[11,22, 33?... 1010],按平常思維就是先定義一個列表c,然后for循環(huán)挨個運(yùn)算,算完了再append添加到c,最后c就是新的列表了
# 對列表數(shù)平方 b = range(1, 11) c = [] for i in b:c.append(i*i) print(c)# 結(jié)果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100](2).接下來看看用列表生成式如何去實現(xiàn)
# 對列表數(shù)平方 b = range(1, 11) c = [x*x for x in b] print(c)# 結(jié)果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100](3).列表生成式語法是固定的,[]里面for 前面是對列表里面數(shù)據(jù)的運(yùn)算操作,后面跟平常for循序一樣遍歷去讀取。運(yùn)行后會自動生成新的列表
3、帶if判斷
1.如果想對一個列表里面的數(shù)據(jù)篩選,比如:[1, 3, -3, 4, -2, 8, -7, 6],找出大于0的數(shù),按正常思維可以for循環(huán)挨個判斷,符合條件的放到新的列表
c = [1, 3, -3, 4, -2, 8, -7, 6] d = [] for i in c:if i > 0:d.append(i) # 添加到列表d print(d)# 結(jié)果:[1, 3, 4, 8, 6]2.接下來可以看看列表生成式,寫出更加簡潔優(yōu)雅的代碼,快速高效!
# 提取大于0的數(shù) c = [1, 3, -3, 4, -2, 8, -7, 6] d = [x for x in c if x > 0] print(d)# 運(yùn)行結(jié)果[1, 3, 4, 8, 6]再舉個例子:
result3 = [str(i+1).zfill(2) for i in range(1,10)] print(result3) #拆開寫等同于 result4 = [] for i in range(1,10):j = str(i+1).zfill(2)result4.append(j) print(result4) #打印結(jié)果['01', '02', '03', '04', '05', '06', '07', '08', '09']三、三元表達(dá)式
Python沒有三目運(yùn)算符(?:),但有類似的替代方案,如下:
為真時的結(jié)果 if 判定條件 else 為假時的結(jié)果
舉例:如果77大于66,輸出100,否則輸出99
a = 100 if 77 > 66 else 99 print(a) #打印結(jié)果為100 #另一個例子:題目為判斷給定身份證的性別#身份證第17位代表性別,男奇數(shù),女偶數(shù) id_card = '211105200103052312'if int(id_card[-2])%2 == 0:sex = '女' else:sex = '男' print(sex) #上面的代碼等同于下面的代碼 sex = '女' if int(id_card[-2])%2 == 0 else '男' ##先看if,如果if滿足,則為if前面的值,否則取if后面的值 print(sex)
?
轉(zhuǎn)載于:https://www.cnblogs.com/candysalty/p/10980458.html
總結(jié)
以上是生活随笔為你收集整理的Python 非空即真、列表生成式、三元表达式 day3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java-JPA:JPA
- 下一篇: https的基本原理,看完你的程序员女朋