Generell sollte auf input() verzichten und stattdessen raw_input() benutzen. input() ist im Prinzip nichts anderes als eval(raw_input()) und deswegen nicht ungefährlicher als eval selbst. Siehe Thema Sicherheit#Input
Oft möchte man, dass ein bestimmter Datentyp eingegeben wird. Hier ein paar Beispiele:
Zahleneingabe
1 def zahl_eingabe():
2 while True:
3 eingabe = raw_input("Bitte eine Ganzzahl eingeben: ")
4 try:
5 zahl = int(eingabe)
6 except ValueError:
7 print "Fehler: Eingabe ist keine Ganzzahl."
8 else:
9 return zahl
10
11 zahl = zahl_eingabe()
12 print "Die eingegebene Zahl ist:", zahl
Benötigt man eine Fließkommazahl, kann man natürlich int() durch ein float() ersetzen und den Text entsprechend anpassen
Programmschleife mit weiter (ja/nein)
Ein Programm in einer Schleife laufen zu lassen, kann man z.B. so realisieren:
1 def main():
2 print "Das Hauptprogramm..."
3
4 while True:
5 main()
6 eingabe = raw_input("\nNoch mal? (j/n)")
7 if not eingabe.lower().startswith("j"):
8 print "Ende."
9 break