首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"3“< "4”为真,"3“< "10”为假。为什么?

"3“< "4”为真,"3“< "10”为假。为什么?
EN

Stack Overflow用户
提问于 2014-08-22 14:24:12
回答 4查看 148关注 0票数 2
代码语言:javascript
运行
复制
print("3" < "10") #This prints False
print("3" < "4") #This prints True

如何比较字符串内的数字,为什么其中一个是真,另一个是假的,而在可能中毒的情况下,比较字符串内的数字时两者都应该是真?

我在做progamarcadegames.com练习时遇到了这种情况,我正在使用python3.3.3shell

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-22 14:26:54

您正在比较字符串;这些字符串是排序的词典学

由于'1'在ASCII标准中的出现早于'3',所以字符串'10''3'之前排序,并且被认为更低,就像‘'10'’将根据字母'R‘之前的字母'M’进行排序,而'jco‘则在’ASCII标准‘中大写字母后面排列,所以’jco‘将在'Martijn’之后排序。

如果要将值进行数值比较,则将其转换为整数。

票数 10
EN

Stack Overflow用户

发布于 2014-08-22 14:26:58

在这个问题上,正如你自己说的那样,你在比较两个字符串。每个字符串将根据1中的10小于3的每个字符的ASCII值进行比较。

代码语言:javascript
运行
复制
>>> ord('1')
49
>>> ord('3')
51
>>> ord('4')
52

如果需要将字符串转换为可以使用int(str)的数字

代码语言:javascript
运行
复制
>>> print(int("3") < int("10"))
True
>>> print(int("3") < int("4"))
True
>>> 

否则,您将比较字符串值。

票数 2
EN

Stack Overflow用户

发布于 2014-08-22 14:27:17

在字符串中,比较工作从左到右,一个字符一个字符,如果正在比较的字符相同,则下一个字符将被比较。

例如:

"1“的评价将小于"3”

此外,由于同样的原因,"01000“将小于"1”。

要将它们作为数字进行比较,必须将它们转换为数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25449289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档