有什么区别?
What's the difference between?
string1 = "15 > 4 "
string2 = "'15' > '4'"
print(eval(string1))
print(eval(string2))
True
False
正如标题所说。为什么同一个字符串有不同的值?
对于字符串 1,eval() 会将比较视为比较两个整数,而对于字符串 2,它会将其视为比较两个字符串。
15 > 4(整数)= 真
'15' > '4'(字符串)= 假
在比较“15”字符串和“4”字符串时,它会逐个字符地比较字符串,因此认为 15 更小,因为字符串以“1”开头,比“4”小" 当转换为它们的 Unicode 值时。
如果您要这样做:
string1 = "55 > 4 "
string2 = "'55' > '4'"
print(eval(string1))
print(eval(string2))
输出将是:
True
True
没有这些不同,因为第一个比较两个整数,而第二个比较字符串。
Python 字符串比较是使用两个字符串中的字符进行的。将两个字符串中的字符一一比较。当找到不同的字符时,就会比较它们的 Unicode 值。 Unicode 值越小的字符被认为越小。
这里 ord('1')
是 49,ord('4')
是 52,所以 49 < 52
我的意思是 '1' < '4'
所以它是 False
。
在第一种情况下,您比较的是整数。
在第二种情况下,您正在比较字符串。
由于字符串是逐个字符比较的,并且 4 大于 1,因此语句 '15' > '4'
的计算结果为 False
。
string1 = "15 > 4 "
string2 = "'15' > '4'"
print(eval(string1))
print(eval(string2))
True
False
正如标题所说。为什么同一个字符串有不同的值?
对于字符串 1,eval() 会将比较视为比较两个整数,而对于字符串 2,它会将其视为比较两个字符串。
15 > 4(整数)= 真
'15' > '4'(字符串)= 假
在比较“15”字符串和“4”字符串时,它会逐个字符地比较字符串,因此认为 15 更小,因为字符串以“1”开头,比“4”小" 当转换为它们的 Unicode 值时。
如果您要这样做:
string1 = "55 > 4 "
string2 = "'55' > '4'"
print(eval(string1))
print(eval(string2))
输出将是:
True
True
没有这些不同,因为第一个比较两个整数,而第二个比较字符串。
Python 字符串比较是使用两个字符串中的字符进行的。将两个字符串中的字符一一比较。当找到不同的字符时,就会比较它们的 Unicode 值。 Unicode 值越小的字符被认为越小。
这里 ord('1')
是 49,ord('4')
是 52,所以 49 < 52
我的意思是 '1' < '4'
所以它是 False
。
在第一种情况下,您比较的是整数。 在第二种情况下,您正在比较字符串。
由于字符串是逐个字符比较的,并且 4 大于 1,因此语句 '15' > '4'
的计算结果为 False
。