【问题标题】:Python3.6 |- Check if string is True or False -|Python3.6 |- 检查字符串是真还是假-|
【发布时间】:2019-01-21 20:54:55
【问题描述】:

你好!

我想检查用户输入的字符串是 True 还是 False,当用户输入 data.create {name} {value} 时我的程序会创建一个新变量,并且这个变量存储在一个名为“data”的列表中,通过一些脚本它可以获取名称和值并且可以使用type $data.{name}进行打印。

为了不产生任何问题或使程序更难,它格式化字符串,所以认为我创建了一个数据:data.create hllw Hello World,然后我在控制台上输入它:type $data.hllw,首先执行的事情是格式化程序,因为如果它在字符串中检测到$data,它会用点分隔并获取名称并检查变量是否存在于列表中。所以type $data.hllw变成type Hello World

现在,我想做一个if 命令,执行此操作:if $data.hllw == Hello World(如果 hllw var 是“Hello World”,则返回 True,否则返回 False),但我不知道这样做,我认为 eval() 可以提供帮助,但没有:if eval(args):(args = if 的参数)。

如果我尝试:

if args:
    print('True!')
else:
    print('False!')

它总是返回“真!” :(

谁能帮忙?我会很开心;)

【问题讨论】:

  • 如果你只是print(args),那里有什么?你用if args 测试的只是它是真实的。 NoneFalse、数字零、空字符串和集合都是假的,但其他一切都是真的——字符串"False"、数字-1
  • 当我打印参数时它说:“$data.hllw == Hello World”(没有格式化程序),“Hello World == Hello World”(使用格式化程序)
  • 好的,所以这显然是一个非空字符串,因此是真实的。这就是为什么您的代码会打印出True!
  • 另外:你有一些不是 Python 的其他语言的表达式($data.hllw 不是一个有效的 Python 标识符,Hello World 周围没有引号不是一个有效的 Python 字符串) ,所以我不确定您为什么认为eval 会有所帮助。您需要将其解释为……无论是什么语言。
  • 听起来您在问如何为您发明的自定义语言编写解析器和解释器。这是一个不平凡的项目,不是有人可以在 StackOverflow 答案中涵盖的内容。

标签: python if-statement terminal console python-3.6


【解决方案1】:

您的if 语句将返回False 的唯一情况是当您测试一个空字符串时。您不需要特殊功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-23
    • 2019-08-09
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 2020-12-31
    • 2016-05-10
    相关资源
    最近更新 更多