python-3.x 为什么print('a '>' b ')为假而print('a'>'A')为真?

quhf5bfb  于 2022-12-20  发布在  Python
关注(0)|答案(5)|浏览(253)

当我们执行程序print('a' > 'b')时,它给出的答案是False。
当我们执行程序print('a' > 'A')时,它给出的答案是True。
请帮我详细解释一下。

o0lyfsai

o0lyfsai1#

当使用<>比较字符时,它将其转换为整数。
根据ASCII Table

含义:

  • a为97位小数
  • B为十进制98
  • A是十进制65
  • B是十进制66
    因此:

print('a' > 'b')为假,因为print(97 > 98)

然后:

print('a' > 'A')为真,因为print(97 > 65)

jm81lzqq

jm81lzqq2#

请检查字符的ascii代码。

您也可以使用python进行检查

>>> ord('a')
97
>>> ord('b')
98
>>> ord('A')
65

同样,可获得相反结果:

>>> chr(97)
'a'
>>> chr(98)
'b'
>>> chr(65)
'A'
rvpgvaaj

rvpgvaaj3#

首先,看一下ASCII table,您可以在其中找到所有标准字符的数字Map。
您是否看到了“a”、“b”和“A”的
“a”== 97
“B”== 98
“A”== 65
这就是为什么 *('a'〉'b')为假 * 而 *('a'〉'A')为真 *。

ttcibm8c

ttcibm8c4#

这是因为在ASCII (American Standard Code For Information Interchange) CHART上,字母“a”等于97(十进制值),而字母“b”等于98(十进制值)。
因此,当你输入print('a' > 'b')时,Python会比较前面提到的十进制值,并回复"FALSE",因为在幕后,它只是比较字面上的97 to 98,同样的,print('a' > 'A')也是这样,它会比较97 to 65;您将获得"TRUE."的原因

ssgvzors

ssgvzors5#

计算机只能理解数字。因此,每个字符都有一个数字等价物。请参阅更多信息:https://www.asciitable.com/。A=65、B=66、a=97、b=98的十进制等效值
很明显,A〈B,B〈C,A〉A "

相关问题