python處理變量交換與字符串及判斷的小妙招
兩變量交換
語法:
a, b = b, a
IPython測試
In [1]: a = 3 In [2]: b = 5 In [3]: a, b = b, a In [4]: a Out[4]: 5 In [5]: b Out[5]: 3
免去了利用一個臨時變量進(jìn)行過渡交互。
重復(fù)字符串
In [2]: 'love ' * 2
Out[2]: 'love love '
In [7]: for i in range(1, 10):
...: print('*' * i)
...:
*
**
***
****
*****
******
*******
********
*********
列表與字符串互相轉(zhuǎn)換
假如有一個列表內(nèi)容為 ['n', 'i', 'c', 'e'],然后設(shè)法變成 字符串nice
字符串 0123456789 轉(zhuǎn)成列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
語法:
''.join(['p', 'y', 't', 'h', 'o', 'n'])
IPython測試
In [6]: li = ['p', 'y', 't', 'h', 'o', 'n'] In [7]: ''.join(li) Out[7]: 'python' # 字符串轉(zhuǎn)列表 In [11]: s = '0123456789' In [12]: s = list(s) In [13]: s Out[13]: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
相對 for 循環(huán)進(jìn)行拼接是不是簡潔有效,字符串可以直接轉(zhuǎn)列表。相互轉(zhuǎn)換看看各自的 api 能不能排上用場。
多情況判空
假如一個變量可能是 '', False, None, 0, [],但都認(rèn)為這樣是 空 該如何判空呢 ?
語法:
a = ''
if a:
print('進(jìn)不來')
else:
print('空值')
IPython測試
In [20]: a = ''
In [21]: if a:
...: print('進(jìn)不來')
...: else:
...: print('空值')
...:
空值
In [22]: a = False
In [23]: if a:
...: print('進(jìn)不來')
...: else:
...: print('空值')
...:
空值
In [24]: a = None
In [25]: if a:
...: print('進(jìn)不來')
...: else:
...: print('空值')
...:
空值
In [26]: a = 0
In [27]: if a:
...: print('進(jìn)不來')
...: else:
...: print('空值')
...:
空值
In [28]: a = []
In [29]: if a:
...: print('進(jìn)不來')
...: else:
...: print('空值')
...:
空值
多值一起判斷
同時校驗多個參數(shù)不是空值或含有空值
In [30]: a = 1 In [31]: b = '' In [32]: c = True In [33]: all([a, b, c]) Out[33]: False In [34]: any([a, b, c]) Out[34]: True
- all() 是列表中所有元素都不為空為
True,反之只要有一個是 空值 則False - any() 是列表中有一個元素非空即為
True,所有元素為空才False - 注意 空值 有
'', False, None, 0, [],然后就是需要裝到一個統(tǒng)一的列表進(jìn)行all(),any()判斷
剛好可以驗證上面的多情況判空。
In [54]: li Out[54]: [True, True, True, True] In [55]: all(li) Out[55]: True In [56]: any(li) Out[56]: True
all() 驗證
# all 只要有一個是空值就False
In [62]: all([False, True, True, True])
Out[62]: False
In [66]: all(['', True, True, True])
Out[66]: False
In [66]: all([None, True, True, True])
Out[66]: False
In [66]: all([True, [], True, True])
Out[66]: False
In [66]: all([True, 0, True, True])
Out[66]: False
# all 全部非空才 True
In [76]: li
Out[76]: ['python', 3.14, [1, 2], True]
In [77]: all(li)
Out[77]: True
any() 驗證
# 所有元素為空則 False
In [82]: any([False, False, False, False])
Out[82]: False
In [83]: any([False, '', [], 0, None])
Out[83]: False
# any 只要有一個非空就為 True
In [86]: any([True, '', [], 0, None])
Out[86]: True
In [87]: any([False, '123', [], 0, None])
Out[87]: True
In [88]: any([False, '', [1, 2], 0, None])
Out[88]: True
In [89]: any([False, '', [], 1, None])
Out[89]: True
尾語
✍ 用 Code 譜寫世界,讓生活更有趣。❤️
✍ 萬水千山總是情,點贊再走行不行。❤️
✍ 碼字不易,還望各位大俠多多支持。❤️
到此這篇關(guān)于python處理變量交換與字符串及判斷的小妙招的文章就介紹到這了,更多相關(guān)python 變量交換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pyCaret效率倍增開源低代碼的python機(jī)器學(xué)習(xí)工具
這篇文章主要介紹了pyCaret一款可以使效率倍增的開源低代碼的python機(jī)器學(xué)習(xí)工具,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11
python調(diào)用Moxa PCOMM Lite通過串口Ymodem協(xié)議實現(xiàn)發(fā)送文件
這篇文章主要介紹了python調(diào)用Moxa PCOMM Lite通過串口Ymodem協(xié)議實現(xiàn)發(fā)送文件,需要的朋友可以參考下2014-08-08
python定時檢查啟動某個exe程序適合檢測exe是否掛了
定時檢查啟動某個exe程序這種情況下適合檢測某個exe程序是否掛了,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01
在實驗中需要自己構(gòu)造單獨的HTTP數(shù)據(jù)報文,而使用SOCK_STREAM進(jìn)行發(fā)送數(shù)據(jù)包,需要進(jìn)行完整的TCP交互。因此想使用原始套接字進(jìn)行編程,直接構(gòu)造數(shù)據(jù)包,并在IP層進(jìn)行發(fā)送,即采用SOCK_RAW進(jìn)行數(shù)據(jù)發(fā)送。使用SOCK_RAW的優(yōu)勢是,可以對數(shù)據(jù)包進(jìn)行完整的修改,可以處理IP層上的所有數(shù)據(jù)包,對各字段進(jìn)行修改,而不受UDP和TCP的限制。2014-02-02
Python測試函數(shù)出現(xiàn)AssertionError:None?!=?‘Janis?Joplin‘問題及解決
這篇文章主要介紹了Python測試函數(shù)出現(xiàn)AssertionError:None?!=?‘Janis?Joplin‘問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

