“ banana
” <
“ orange
” 如果我在Python-3
中比较这两个字符串,它们将返回 {{1} } 。但是我看到两个字符串每个都有6个字符。
同样,当我尝试使用“ True
” <“ banana
” 时,尽管它们仍然包括在内,但仍然Orange
returns
每个6个字符。我听不懂您能帮助我以一种简单的方式来理解它们吗?
答案 0 :(得分:2)
正如我在评论中链接到的问题所指出的那样,按顺序比较了字符串。
var ctor = typeBuilder.DefineConstructor(
MethodAttributes.Public,
CallingConventions.Standard,
new Type[] { typeBuilder }
);
98 <111 ==真
print(ord('b'))
print(ord('o'))
98
111
98 <79 ==假
答案 1 :(得分:1)
这是因为基于字符串的ACSII值逐字符比较字符串。使用小写字母时,“ b”(#98)小于“ o”(#111),比较结果为True。在第二种情况下,大写字母“ O”为数字79,因此结果为False。
答案 2 :(得分:1)
它被称为“字典顺序”。它以字典包含单词的方式比较字符串。 'b'<'o'代表“香蕉” <“橙色”。
如果它是“ bbbba”和“ bbbbb”,那么它将是“ bbbba” <“ bbbbb”。 如果是“ zzz”和“ bbbb”,则应该是“ zzz”>“ bbbb”
答案 3 :(得分:1)
在比较两个字符串时,它们从第一个(最左)字符到最后一个(最右)字符逐个字符地进行比较。将每个字符按照其ASCII码进行比较,如果发现一个字符的代码较小,则该字符串被视为更小(不是以长度表示,而是以从字典的意义上来说),更大的代码也是如此,如果两个代码相同,则比较将获取每个字符串的下一个字符,然后再次对它们进行比较,依此类推。
将banana
和orange
进行比较。他们的第一个字符是b
和o
,代码分别为98
和111
,因为98 < 111
,然后是b < o
,因此是{{ 1}}。但是,banana < orange
是因为banana > Orange
自其代码b > O
起。实际上是98 > 79
。