比较这些字符串时
book_1 = "A Wrinkle in Time"
book_2 = "A Brief History of Time"
book_1 <=> book_2 #=> 1
我得到1
令我感到困惑,因为doc说:
如果字符串长度不同,并且字符串在比较最短长度时相等,则认为较长的字符串大于较短的字符串。
示例代码:
"abcdef" <=> "abcde" #=> 1
"abcdef" <=> "abcdef" #=> 0
"abcdef" <=> "abcdefg" #=> -1
"abcdef" <=> "ABCDEF" #=> 1
答案不应该是-1
,因为右边的字符串更长了吗?
答案 0 :(得分:3)
这是您案件中的关键:
并且在与最短长度进行比较时字符串相等
字符串A Wrinkle in Time
和A Brief History of Time
完全不相同,它们开始在第3个符号(W
来自Wrinkle
vs B
来自{{{ 1}})和Brief
&gt; W
你获得B
,即第一个字符串大于第二个字符串。
答案 1 :(得分:1)
你误解了。它是1
,因为book_1
3 rd 字符W
大于3 rd 字符B
{ {1}}。这就是为什么即使它们的长度不同,但和字符串相等,直到最短的长度不能保持。 - 这符合记录。
book2
和-1
时, "abcdef"
就是答案。现在看,左手字符串字符与较长字符的字符"abcdefg"
相同。然后右手字符串包含更多字符,这使得"abcdef"
的输出为"abcdef" <=> "abcdefg"
。 - 这符合记录。
答案 2 :(得分:0)
found = false
while found == False:
print("Guess the hidden number between 1 and 100")
guess = int(input("Enter your guess:\n")
if guess==67:
print("Correct Well Done")
found = True
elif guess<67:
print("Your guess is too low. Try again.")
else guess>67:
print("Your guess is too high. Try again.")
在您的示例中,字符串对于较短字符串的整个长度都不相同。 Ruby的排序将比较第二个索引的字符&#34; W&#34; &LT; =&GT; &#34; B&#34;在这种情况下&#34; B&#34;小于&#34; W&#34;。