不能锻炼如何比较数字方程中的两个字符串小数

时间:2018-04-08 18:05:23

标签: python python-2.7

Python 2.7.9

我从AWS Billing报告中提取了两个字符串

e.g。 1.14和2.75

我正在逐行解析一个字符串并将这些值放入var中(它们出现在“最大”一词之后和最后一个逗号之前的设置位置。

e.g。

from decimal import *
for line in output.split('\n'):
        top_answer = 0
        if "Maximum" in line:
                ext = line.strip()[10:-1]
                ans = Decimal(ext)
                print(ext,top_answer)
                if ans > top_answer:
                        top_answer = ans
print(top_answer)

输出结果为:

('1.46',0) ('1.37',0) ('1.3',0) 0

我尝试使用浮动(这是可怕的并且不起作用),我尝试比较字符串,但这显然不起作用。我现在是小数,但真的很挣扎。我尝试的所有内容都会返回ext> top_answer,而不是。

关于如何做到这一点的任何想法,几乎我用过的所有其他语言都要容易得多。

BTW我是家庭自动化快乐的兼职程序员,所以不要给我太多时间关于我的编程懒惰:)

感谢。

1 个答案:

答案 0 :(得分:1)

您正在将top_answer重置为0

from decimal import *
for line in output.split('\n'):
        top_answer = 0                  # set to zero on each begin of line
        if "Maximum" in line:
                ext = line.strip()[10:-1]
                ans = Decimal(ext)
                print(ext,top_answer)
                if ans > top_answer:
                    # whatever, top_answer will be replaced by 0 anyway.

您应该在循环之前放置top_answer=0 output中的最后一行不包含任何“最大值” - 但top_answer将重置为0 - 所以你只能为它获得零。

在python 2.x中你不需要括号arount print btw - 这就是为什么你得到像输出一样的“元组”