python-3.x - 使用两种可能的条件创建验证错误
问题描述
我可以创建一个带有一个条件的 if not 语句。这有效 -
if not "ABC124" in voucher:
raise forms.ValidationError("Invalid Voucher")
return voucher
这有效 -
if not "ABC124" in voucher:
raise forms.ValidationError("Invalid Voucher")
return voucher
但这不起作用-
if not "ABC124" in voucher or if not "ABC123" in voucher:
raise forms.ValidationError("Invalid Voucher")
return voucher
这不起作用 -
if not "ABC124" in voucher or not "ABC123" in voucher :
raise forms.ValidationError("Invalid Voucher")
return voucher
如何制作具有两个条件的 if 语句?
解决方案
由于德摩根定律[wiki],您需要and
用作运算符,而不是:or
if 'ABC124' not in voucher and 'ABC123' not in voucher :
raise forms.ValidationError('Invalid Voucher')
return voucher
因此,只有当凭证不包含且不'ABC124'
包含任何'ABC123'
一个时,才会引发错误。
注意:写比写 更易读。
x not in y
not x in y
推荐阅读
- c++ - 圆形段的C++区域,为什么我不能得到正确的结果?
- vba - VBA错误的数字参数用户表单代码,传输变量?
- java - 原因:找不到 com.example.exampleCombant.Appname.Database:com.example.example.appname.DataBase 在 com/Database.class 中找到
- java - 似乎无法找到为什么“'android.text.Editable android.widget.EditText.getText()' on a null object reference ”为空,我在这里缺少什么
- excel - How to count consecutive values in Excel?
- cassandra - Connecting Datastax outside Kubernetes to a Cassandra cluster in Kubernetes
- c - Free memory from data structure
- java - 将战争文件部署到 Azure 应用服务不起作用
- algorithm - 检查reuleaux三角形是否在C中的三角形/五边形/圆形内部/外部
- php - PHP CS Fixer order use statements by length in PhpStorm throwing error