【问题标题】:Comparing strings with numbers - Python [duplicate]将字符串与数字进行比较 - Python [重复]
【发布时间】:2016-07-08 18:54:57
【问题描述】:

我不明白为什么下面的代码会给出真假真结果。

print("3" < "4")
print("3" < "10")
print("3" < "30")

我了解第一个和第三个代码,但为什么 print("3" &lt; "10") 不给出 True 响应。

谢谢

【问题讨论】:

    标签: python string compare


    【解决方案1】:

    来自comparison 操作的python 文档:

    使用其字符的数字等价物(内置函数 ord() 的结果)按字典顺序比较字符串。

    字符比较从第一个字符开始,逐步遍历被比较的字符串,直到找到字符差异。

    您的第二条语句返回 False,因为:

    ord("3") > ord ("1")
    

    【讨论】:

      【解决方案2】:

      建议的链接会给你详细的答案。不过由于我假设你是开始编程,所以我试图用一种非常简单的方法来解释。

      对于字符串,只要你开始写:

       "ab"<"bc"
      
       "30"<"400"
      

      想象一下:

      ['a', 'b'] <['b', 'c']
      ['3', '0'] <['1', '0', '0']
      

      现在比较两个列表的第一个元素,如果它们相等,则只移动到下一个元素:

      第一个应该是 True。 第二个应该是 False。

      按照同样的逻辑试试:

      '30'<'31'
      

      它应该评估为 True。

      【讨论】:

        猜你喜欢
        • 2021-07-10
        • 1970-01-01
        • 2011-10-19
        • 2012-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-04
        相关资源
        最近更新 更多