【问题标题】:Why is print('a' > 'b') False and print('a' > 'A') True?为什么 print('a' > 'b') 为假而 print('a' > 'A') 为真?
【发布时间】:2020-05-04 23:20:48
【问题描述】:

当我们执行程序 print('a' > 'b') 时,它给出的答案是 False。

当我们执行程序 print('a' > 'A') 时,它给出的答案是 True。

请帮我详细解释一下。

【问题讨论】:

  • “a”大于“A”可能看起来很奇怪,但这是出于历史原因。非常早期的数据编码只支持大写字母,几十年后添加了小写字母。请参阅(例如)en.wikipedia.org/wiki/Teleprinter

标签: python-3.x output ascii


【解决方案1】:

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

根据ASCII Table

意思:

  • a 是十进制的 97
  • b 是十进制的 98
  • A 是十进制的 65
  • B 是十进制的 66

为此:

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

然后:

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

【讨论】:

    【解决方案2】:

    请检查字符的ASCII码。

    你也可以用python检查一下

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

    同样,反过来也可以得到

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

    【讨论】:

      【解决方案3】:

      首先,查看ASCII table,您可以在其中找到所有标准字符的数字映射。

      您是否看到'a'、'b'和'A'的值

      'a' == 97

      'b' == 98

      'A' == 65

      这就是为什么 ('a' > 'b') 为假('a' > 'A') 为真

      【讨论】:

        【解决方案4】:

        这是因为在ASCII (American Standard Code For Information Interchange) CHART 上,字母“a”等于 97(十进制值),而字母“b”等于 98(十进制值)。

        因此,当您输入 print('a' > 'b') 时,Python 会比较上述十进制值并回复 "FALSE",因为实际上只是比较字面意义上的 97 to 98print('a' > 'A') 也是如此,它将比较 97 to 65;为什么你会得到"TRUE."

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-30
          • 2014-03-29
          • 1970-01-01
          • 2010-12-08
          • 2011-05-30
          • 2021-10-06
          相关资源
          最近更新 更多