tiax hat geschrieben:ist doch egal in dem Beispiel. Wer da "import shutil;shutil.rmtree('/')" eingibt, wenn er nach ner Zahl gefragt wird, hat schon selbst Schuld
Wer das eingibt, bekommt eine Fehlermeldung und es passiert gar nichts, weil eval() nur Ausdrücke und keine Anweisungen auswertet.
Ist mal wieder typisch und nicht das erste Mal, wo vor dem bösen, bösen input() gewarnt wird und man ein Beispiel angibt, das die Bösartigkeit gar nicht zeigt, weil es nicht funktioniert. Und damit zeigt man eigentlich das Gegenteil, dass es so einfach* gar nicht ist, mittels input() Schaden anzurichten.
Sicher: Man MUSS input() nicht benutzen, aber so lange man Code schreibt, der für einen selbst gedacht ist, ist es wahrhaftig ungefährlich und gerade für Programmieranfänger, die gaaaanz am Anfang stehen (und da beginnt man z.B. im schulischen Bereich oft mit Zahlen und es dauert eine Weile, bis man zu Zeichenketten und Typumwandlungen übergeht), ist die Verwendung von input() einfach naheliegend und auch ungefährlich.
* Natürlich ist es insofern "einfach", als man es natürlich mit einer Zeile Code schaffen kann, wenn man weiß wie es geht (und ich weiß wie es geht), aber man dazu Elemente von Python einsetzen muss, die man in der Regel sonst höchst selten benötigt.