Drill, список и слайс нужны на случай, если у числа не окажется дробной части. Тогда результат сплита будет состоять не из двух, а из одного элемента и при распаковке его присвоением на две переменные будет ошибка. В моём коде я добавляю справа список с нулём и в результате получается два или три эелемента, которые я тут же урезаю до гарантированно двух. Это позволяет безопасно присвоить пару в две переменные.
antonwx, если делать это во float, то не лучше. Дело в том, что некоторые десятичные дроби просто невозможно представить конечной дробью в двоичной системе счисления. Получится примерно как 1/3: в троичной системе счисления это будет равно 0.1 (ноль целых одна третья), а в десятичной это будет 0.33333(3) - бесконечная периодичная дробь. Так же и с двоичной системой счисления: 0.1+0.05 -> 0.15000000000000002. Что бы такое округлить правильно, придётся снова преобразовываться к строке и вы придёте к тому, от чего уходили.
Это, кстати, не только в питоне так. Хотя в питоне есть специальный тип для таких случаев, но это уже совсем другая история.
Сергей Паньков,
Это уже додумывание доп. условий ))
А по условию задачи:
1. число до точки - рубли, после точки - копейки. (например: 56.00)
2. На картинке представлен пример, как ДОЛЖЕН выглядеть ввод пользователя.
Drill, если речь об академической задаче в вакууме, то согласен, можно было обойтись сплитом без ухищрений. Но на собеседовании у меня бы параноики, которые позаботятся о возможном отсутствии дробной части получат лишний балл в карму.
Сам факт, что ты подумал об этом и знаешь как это учесть - это куда важнее, чем просто удовлетворить условие задачи. Хотя простое решение без перестраховки безусловно должно быть принято.
Тут, кстати, не всем был понятен даже приём с добавлением элемента и слайсом. Значит такое решение в учебных целях тоже полезно как дополнение к простому.
Guerro69, тут будет проблема, если дробной части не окажется. Можно подстелить соломки на этот счет. Для этого можно заюзать лайфхак как в моём решении