我使用以下代码:
if str(percentage[0]) > '70%':
关于以下输入:
82%
92%
78%
73%
100%
50%
100%
67%
但我得到以下输出:
82%
92%
78%
73%
为什么python没有评估和打印100%事件呢?我的逻辑中缺少什么东西吗?
答案 0 :(得分:4)
字符串逐字符比较:
1. 2. 3. 4.
-----------
7 0 %
1 0 0 %
您看,第一个7
比第二个字符串中的1
“更大”,因为字符0
,1
,2
,{ {1}},3
,4
,5
,6
,7
,8
按此顺序存储。
我认为最合乎逻辑的是将字符串转换为整数并进行比较:
9
答案 1 :(得分:2)
您正在比较字符串;这些是排序lexicographically,首先是第一个字符,然后只有匹配时,才会比较第二个字符。
因此,'1'
出现在'2'
之前,无论之后是什么。 '70'
大于'100'
,因为'7'
大于'1'
不要比较字符串。比较数字:
if int(percentage[0].rstrip('%')) > 70:
答案 2 :(得分:1)
字符串被排序并比较为字符串,而不是数字。
In [1]: "100%" > "70%"
Out[1]: False
In [3]: int("100%"[:-1]) > int("70%"[:-1])
Out[3]: True