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我是家庭自动化快乐的兼职程序员,所以不要给我太多时间关于我的编程懒惰:)
感谢。
答案 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 - 这就是为什么你得到像输出一样的“元组”