1. 程式人生 > 程式設計 >在python中對於bool布林值的取反操作

在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 b

def up(b):
  if b is True:
    unique1 = "map_url"
    unique2 = "map2_url"
  else:

    unique1 = "map2_url"
    unique2 = "map_url"
  return unique1,unique2

b = True
num = 5
for i in range(num * 2):
  b = negation_bool(b)
  unique1,unique2 = up(b)
  print(unique1,unique2)
  print("+" * 50)

在python中對於bool布林值的取反操作

可以看到每次的值都是相反的。

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。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。