python/django-数字比较(>;)不起作用

python/django-数字比较(>;)不起作用,python,django,Python,Django,这真的很奇怪。我有一个django程序,我从视图中调用这个py文件。该文件将从excel中读取,并找到给定数字(目标)的正确数字索引 它不断地告诉我“目标号码超出范围”,而它不应该这样做,所以我打印了这些号码 for target in target_list: print target, df[pin_num][end], df[pin_num][0] if target > df[pin_num][end] or target < df[pin_num][0]:

这真的很奇怪。我有一个django程序,我从视图中调用这个py文件。该文件将从excel中读取,并找到给定数字(目标)的正确数字索引

它不断地告诉我“目标号码超出范围”,而它不应该这样做,所以我打印了这些号码

for target in target_list:
    print target, df[pin_num][end], df[pin_num][0]
    if target > df[pin_num][end] or target < df[pin_num][0]:
        print target, df[pin_num][end], df[pin_num][0]
        print target > df[pin_num][end]
        print target < df[pin_num][0]
        return "Target Number out of Range"
目标列表中的目标的
:
打印目标,df[pin_num][end],df[pin_num][0]
如果目标>df[pin_num][end]或目标df[针数][结束]
打印目标
控制台(使用pycharm)显示:

23925.85 24472.9 23876.0

23925.85 24472.9 23876.0

真的

假的

目标号码超出范围


这怎么可能发生?23925.85明显小于24472.9。。。我已经打印出了所有需要比较的内容。

因此,正如评论中提到的@Rawing,我补充道

打印类型(目标)、类型(df[pin_num][end])、类型(df[pin_num][0])

它显示目标是一个字符串

所以我补充说:

    target=float(target)

这就解决了我的问题。

所以在评论中提到@Rawing,我补充道

打印类型(目标)、类型(df[pin_num][end])、类型(df[pin_num][0])

它显示目标是一个字符串

所以我补充说:

    target=float(target)

这就解决了我的问题。

你确定它们都是数字吗?也许其中一些实际上是字符串。@即使绘制字符串也不会返回上述结果
'24…'
在词典学上大于
'23…'
,除非第一个空格中有前导空格string@pwnsauce字符数不重要绘图的要点是,如果
target
是字符串,但
df
的内容是浮点数,那么(假设这是Python 2)目标将被视为更大的目标。@DanielRoseman啊,是的,很可能是这样的,那么你确定它们都是数字吗?也许其中一些实际上是字符串。@即使绘制字符串也不会返回上述结果
'24…'
在词典学上大于
'23…'
,除非第一个空格中有前导空格string@pwnsauce字符数不重要绘图的要点是,如果
target
是字符串,但
df
的内容是浮点数,那么(假设这是Python 2)“目标将被视为更大的目标。@DanielRoseman啊,是的,那很可能是这样。”