2014-09-02 3 views
1

Моя проблема в том, что у меня есть цикл for, проверяющий строку, и я хочу найти максимальное число в этой строке, но по какой-то причине он иногда меняет max_ouput на меньшее число. например, если max_output = 254607 и номер его проверки равен 92186, он сделает 92186 новым max_output, даже если он не больше. код я использую:Найти максимальный вывод чисел

def max_power(data): 
     max_output = 0 
     lines = data.split('\n') 

     for line in lines: 
      digits=line.split(',')[-9] 
      if digits > max_output: 
      max_output = digits 
    print max_output 

Это набор данных, я работаю с: http://pastebin.com/1UpzeAgD

+0

стороны: если бы вы использовали Python 3, вы увидели бы полезное сообщение об ошибке - 'TypeError: unorderable типов: ул ()> int() '- который указал бы на проблему. – DSM

ответ

1

Похоже, что вы сравниваете строку «254607» с строкой «92186» строка comaprision работ символ по характеру и остановится, как только он примет решение «9»> «2».

Попробуйте

if int(digits) > int(max_output): 

Просто нужно Int() как

+0

Да почти его 'if int (цифры)> int (max_output); – user3491814

+0

tyty не понимал, что это было так просто хаха – user3491814

Смежные вопросы