Python argv“假,假”被识别为真

如何解决Python argv“假,假”被识别为真

我使用以下行运行我的程序

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.2/jquery.validate.min.js" integrity="sha512-UdIMMlVx0heynClOIFSyOrPggomfhBKJE28LKl8yR3ghkgugPnG6iLfRfHwushZl1MOPSY6TsuBDGPK2X4zYKg==" crossorigin="anonymous"></script>
<script src="http://igorescobar.github.io/jQuery-Mask-Plugin/js/jquery.mask.min.js"></script>

function ValidateCreditCardNumber() 
        {
            var ccNum = document.getElementById("creditcard").value;
            var visaRegEx = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;
            var mastercardRegEx = /^(?:5[1-5][0-9]{14})$/;
            var amexpRegEx = /^(?:3[47][0-9]{13})$/;
            var discovregEx = /^(?:6(?:011|5[0-9][0-9])[0-9]{12})$/;
            var isValid = false;

            if (visaRegEx.test(ccNum)) 
            {
                isValid = true;
            } else if(mastercardRegEx.test(ccNum)) 
            {
                isValid = true;
            } else if(amexpRegEx.test(ccNum)) 
            {
                isValid = true;
            } else if(discovregEx.test(ccNum)) 
            {
                isValid = true;
            }

            if(isValid) 
            {
                alert("Thank You!");
            } else 
            {
                alert("Please provide a valid Visa number!");
            }
        }

但我的程序将 python ***.py --if_normalize False 变量识别为 if_normalize

True

它打印 if_normalize is True

我通过了 'False,false,-1' 但它仍然识别为 def parse_args(): parser = argparse.ArgumentParser() parser.add_argument("--work-path",required=True,type=str) parser.add_argument("--seed",default=42,type=int,help="Random seed") parser.add_argument("--batch-size",default=128,type=int) parser.add_argument("--attack",default='no',type=str) parser.add_argument("--gpu",default=2,type=int) parser.add_argument('--if_normalize',default=False,type=bool) return parser.parse_args() args = parse_args() print(args)

解决方法

因为它只是通过 'TEST %%' 运行输入,而 boolbool('False'),因为任何非空字符串都是真实的。

您通常会使用标志来代替:

True

parser.add_argument('--if-normalize',action='store_true') 操作意味着默认为 store_true,如果存在标志,则将其设置为 False。 IE。你会像这样使用它:

True
,

您应该更改为以下内容:

parser.add_argument('--if_normalize',action='store_true')

当您在调用脚本时将其添加到命令行参数时,这会将参数 if_normalize 设置为 True

您可以参考 docs 并确切了解它的作用。

,

https://docs.python.org/3/library/argparse.html#type

不推荐将 bool() 函数用作类型转换器。它所做的只是将空字符串转换为 False,将非空字符串转换为 True。这通常不是我们想要的。

最近扩展了此 type 部分以试图消除一些常见的误解,包括对 bool(内置)函数的这种滥用。

您可以编写自己的函数来解析大量“是/否”字词。开发人员拒绝这样做,因为替代方案太多,尤其是在包含非英语可能性的情况下。

store_true Action 足以满足大多数用途。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?