def ck1_db(x):
result = select col1 from tab1 where col1=x
return result
def ck2_db(x):
result = select col1 from tab2 where col1=x
return result
很多类似的函数,一直到
def ckn_db(x):
result = select col1 from tabn where col1=x
return result
if ... :
...
else:
ck1_in_db = ck1_db(a) #调动函数,查询数据库
if len(ck1_in_db.index) != 0 如果数据库返回的有值,则进行下面的
...
else:
ck2_in_db = ck2_db(a)
if len(ck2_in_db.index) != 0
...
但如果有很多这样的if else逻辑,缩进会越来越多。我想要以下的效果, 赋值和判断相等想写在elif的一行上:
if ... :
...
elif len((ck1_in_db = ck1_db(a)).index) != 0: 当然这有语法错误,但是否有写在一行的写法?
...
elif len((ck2_in_db = ck2_db(a)).index) != 0:
...
...
elif len((ckn_in_db = ckn_db(a)).index) != 0:
...
else:
...
python3.8+版本新增一个“海象运算符” ==》 【:=】 “冒号”连接一个“等于”
举个例子:
s = 'abcd'
if (n:=len(s))>2: print(n)
另外python3.10.0版本新增了 match-case 分支结构可以取代多个elif的条件结构
例如:
match err:
case 1: print(1)
case 2: print(2)
case _: print(err)