当前位置: 首页 > 面试题库 >

为什么4 <'3'在Python 2中返回True?

国盛
2023-03-14
问题内容

为什么在Python 2中4 < '3'返回True

是因为当我在数字周围加上单引号时,Python会将其视为字符串并且字符串大于数字吗?


问题答案:

是的,任何数字都将小于Python 2中的任何字符串(包括空字符串)。

在Python
3中,您无法进行任意比较。你会得到一个TypeError


eryksun的评论链接中:

if (PyNumber_Check(v))
    vname = "";
else
    vname = v->ob_type->tp_name;
if (PyNumber_Check(w))
    wname = "";
else
    wname = w->ob_type->tp_name;
c = strcmp(vname, wname);

因此,至少在最新版本的CPython 2.x中,将比较类型名称,并使用空字符串代替任何数字类型的类型名称。



 类似资料:
  • 问题内容: 我在jsfiddle.net上玩,我很好奇为什么返回true? 这样: 但这不是: 这个怪癖有用吗? 问题答案: 操作顺序导致在javascript中解释为产生,并且true计为1,导致其返回true。 这也是为什么返回false,返回true,为什么将其解释为,从而导致的原因。

  • 问题内容: 即使正则表达式应返回true,程序也不会退出。代码有什么问题? 问题答案: 仅当整个字符串与正则表达式匹配时才返回。在你的情况下,你的正则表达式仅代表 一个 字符不是,或。 我怀疑您要检查字符串是否包含您在正则表达式中描述的这些特殊字符之一。在这种情况下,请将您的正则表达式括起来,以使正则表达式匹配整个字符串。哦,您不必逃脱character class内部。

  • 为什么比快?我使用的是CPython 3.5.2。 我试着改变我提升的幂,看看它是怎么做的,例如,如果我提升x的10或16的幂,它会从30跳到35,但如果我提升10.0作为浮动,它只是在24.1~4左右移动。 我想这和浮点转换和2次方有关,但我真的不知道。

  • 我很熟悉在JavaScript中是“怪异的”,即总是返回,如本文所述。因此,不应进行比较来检查,而应使用isNaN(..)取而代之的是。 所以我惊讶地发现 这似乎不一致。为什么会有这种行为? 它是怎么工作的?方法是否专门检查?

  • 我有点困惑php函数布尔瓦尔是如何工作的。考虑以下几点

  • 在R中,返回FALSE和返回“numeric”,而返回TRUE和返回“integer”。为什么不返回true? 要确定x1是否包含整数值,我需要使用。有更简单的方法吗? 可以返回数组,例如有序因子。不应该返回c(“numeric”,“integer”)吗?