Python 如何根据一个变量匹配不等于或等于

2017-10-14 23:25:10 +08:00
 litter123

例如 mode=0 时,语句为

if(a==1)

mode=1 时,语句为

if(a!=1)

除了把整一段重新写过外,还有其他更简便的方法吗?

4378 次点击
所在节点    优惠信息
10 条回复
lwbjing
2017-10-14 23:33:00 +08:00
节点啊…
把两个条件的值根据 mode 判断后存起来用
cdwyd
2017-10-14 23:36:27 +08:00
没看很明白
if mode == 0 and a == 1:
pass
if mode == 1 and a != 1:
pass
187j3x1
2017-10-14 23:37:35 +08:00
{
1: func_one,
0: func_zero,
}
amai
2017-10-14 23:38:33 +08:00
不是太理解你的意思,你是要做取反还是要做与运算?
litter123
2017-10-14 23:42:25 +08:00
@cdwyd emm......,我的表述能力有点问题。如果我要改的话,是要改成以下这样的,不知道有没有更好的修改方法。

if mode==0:
if(a==1):
xxxxxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxxx

else if mode==1:
if(a!=-1):
xxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxxx
感觉我这样要把代码写两遍,不知道有没有更好的方法
ipwx
2017-10-14 23:52:06 +08:00
什么鬼,你脑抽了吗?

if (mode == 0 and a == 1) or (mode == 1 and a != -1)
Arnie97
2017-10-14 23:54:51 +08:00
你的意思是异或么
if mode ^ (a == 1):
amai
2017-10-15 00:05:37 +08:00
@litter123 你表达的还是有问题,你不妨放出修改前和预期修改后

根据你 2 次的举例,很让人不明白你是要取反还是具体的数值判断
if(a!=-1): #这里- 1 是具体的数值判断,并不是取反 这里很容易让人误解因为你 2 次说的有出入
如果说为了简写?可以写成 与 判断

如果是代码复用方面的问题就是你说的写 2 遍,可以考虑抽东西出来提高代码复用率
takeoffyoung
2017-10-15 00:10:26 +08:00
写两遍的地方,你搞成一个函数啊
litter123
2017-10-15 00:44:37 +08:00
@ipwx 噗,想想我好像真的脑抽了,23333

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX