现在我有
if request.POST['superPoints'].count('.') == False:
然后它继续其他代码。但是如果我加入
if request.POST['cashTexts'].count('.') and request.POST['superPoints']('.') == False:
无论在两种形式中输入什么,它总是转到else:语句。因此,当你试图计算两件事时,其他不是False的东西会出现并扰乱流程吗?为什么不将这些陈述联合起来呢?
编辑:
如果我这样做,它可以工作:
if request.POST['cashTexts'].count('.') == False:
所以我不认为这是其中一个领域的问题。
编辑::如果我将它们设置为它就可以工作!=真。不确定为什么,但我一定得到了除了假的东西。
答案 0 :(得分:2)
尝试:
if not request.POST['cashTexts'].count('.') and not request.POST['superPoints']:
我认为你的问题与运营商优先权有关。
你在做:
test1 and test2 == False
这转换为:
test1 and (test2 == False)
与以下内容相同:
test1 == True and test2 == False
答案 1 :(得分:2)
在Python中测试真实性的首选方法是:
if obj:
pass
而不是:
if obj == True:
pass
类似于虚假:
if not obj:
pass
而不是:
if obj == False:
pass
此外,.count()
string方法返回子字符串的出现次数。如果您只想测试字符串中的字符是否至少一次,请使用:
if '.' in mystr:
pass
如果要测试字符串中是否没有字符,请使用:
if '.' not in mystr:
pass
因此,如果您想测试其中一个字段中是否没有点,请执行以下操作:
if '.' not in request.POST['cashTexts'] and '.' not in request.POST['superPoints']:
pass