Ein "Schüler" ist eine Person - keine Zahl. Deswegen sprach ich die Semantik an. Das mag Dir pedantisch vorkommen, es ist jedoch einfacher die Dinge nach dem zu benennen, was sie darstellen. Oft verwenden Leute - damit die Bezeichner nicht ewig lang werden - einfach ein 'n', stehend für 'number', als Präfix für Zahlen. Das wäre dann z. B. 'nstudents'. Du kannst das auch anders sehen oder anders umsetzen, aber, Amen ich sage Dir: Wenn Du Monate nach dem Schreiben einiger tausend Zeilen wieder auf Deinen Code schaust, wirst Du Probleme bekommen, wenn die Bezeichner, die Du verwendest, nicht so weit wie möglich für sich selbst sprechen.
Bzgl. der "großen" Bedeutung der Einrückung in Python: Sorry, da sind die Anführungsstriche unangebracht und das hat auch nix mit Pedantik zu tun - da fehlt auch alle Ironie
. Die Einrückung ist Teil der Syntax und damit werden wir Forumsteilnehmer den Code so lesen wie der Interpreter und nur manchmal so kreativ sein können den OPs zu sagen, dass hier ein Problem liegt.
Das mit 'input' vs. 'raw_input' hat man schon versucht Dir zu erklären - es gibt aber auch 1001 Threads in denen das hier im Forum beackert wird. Alternativ kannst Du auf Python 3.x umsteigen.
HTH
Christian