在python中對于bool布爾值的取反操作
背景
根據公司業務的需求,需要做一個對于mysql數據庫的大批量更新。腳本嘛也是干干單單。使用了redis的隊列做緩存,可以異步并發的多任務進行更新。
有點難受的地方在于,請求訪問時,因為一些網速,速率之內的原因,導致正常的數據會請求失敗。處理的方法呢,就是多請求幾次。
不過,麻煩的地方在于,每次重新請求,都要講原來get,和put的key轉換。手動更換起來麻煩的一批。
所以就想做一個自動的轉換小demo。
成熟的代碼應該學會自己照顧自己。
自動轉換的機制是: 每一次請求,判斷bool值,依據bool值分別賦值,每次請求之前或者請求完成之后,需要修改Bool值。
這就涉及到今天的重點了,bool值的取反。
b = True
a = bool(1-b)
bool()函數中的1-bool值 就是取bool值的反值了。
實驗的代碼如下:
def negation_bool(b): b = bool(1 - b) return bdef up(b): if b is True: unique1 = 'map_url' unique2 = 'map2_url' else: unique1 = 'map2_url' unique2 = 'map_url' return unique1, unique2b = Truenum = 5for i in range(num * 2): b = negation_bool(b) unique1, unique2 = up(b) print(unique1, unique2) print('+' * 50)
可以看到每次的值都是相反的。
bool值的取反操作,可以用來做一些有規律行的修改變量操作。例如代碼啟動的指示變量,代碼中關鍵的值等等。
我們的原則就是,能自動的絕不手動,能一鍵啟動的,絕不會做多余的操作。
補充:Python中bool類型轉換
在python中,以下數值會被認為是False:
1、為0的數字,包括0,0.0
2、空字符串,包括”,”“
3、表示空值的None
4、空集合,包括(),[],{}
其他的值都認為是True。
None是python中的一個特殊值,表示什么都沒有,它和0、空字符、False、空集合都不一樣。
bool(‘False’)的結果是True,因為‘False’是一個不為空的字符串,當被轉換成bool類型之后,就得到True。
bool(’ ‘)的結果是True,一個空格也不能算作空字符串。
bool(”)才是False。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章:
