1. Небольшие отличия в значениях могут быть из-за float, в финансовой аналитике, например, я вообще стараюсь его не использовать, потому что даже при операциях с небольшими числами могут вылезать какие-нибудь хвосты из стотысячных, причем совершенно внезапно.
Вот пример и объяснение таких проблем
Но может быть и не в этом дело, конечно, в данном случае.
2. Имеется в виду list.append()? У вас тут не массивы, а списки. Я правильно понял, что нужно сохранять в списке значения, которые получаются в цикле "while i < N:"?