kann sich mal bitte mal jemand meine Lösung nasehen und kritisieren?
Bin noch absoluter Python-Neuling und froh über jede Anregung - DANKE!!!
Code: Alles auswählen
#-------------------------------------------------------------------------------
# Name: main.py
# Purpose: Testen und Rumspielen mit Listen
#
# Author: dor_neue
#
# Created: 27.06.2008
# Copyright: (c) ************* 2008
# Licence: ************
#-------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
def ListErstellen ():
Liste = []
ListenName = raw_input("Bitte geben Sie den Namen der List ein: ")
ListenLaenge = input(u"Bitte geben Sie nun die Länge der Liste ein: ")
return ListenName, ListenLaenge, Liste
def ListeBefuellen (ListenLaenge, Liste):
print "Bitte geben Sie nun die", ListenLaenge, "Werte ein!"
for Element in range(ListenLaenge):
Liste.append(raw_input(u"Bitte geben Sie den Wert für das " + str(Element) + ". Element ein: "))
return Liste
def ListeAusgeben (ListenName, ListenLaenge, Liste):
print "Die Liste", ListenName, u"wird nun vollständig ausgegeben:"
print Liste
print u"Die Liste enthält", len(Liste), "Elemente",
print ""
print "Die Liste gibt nun jeden Wert einzeln aus:"
for Element in Liste:
print Element
return
def main ():
ListenName, ListenLaenge, Liste = ListErstellen()
Liste = ListeBefuellen(ListenLaenge, Liste)
ListeAusgeben(ListenName, ListenLaenge, Liste)
print "*" * 15,
print "Programmabschluss",
print "*" * 15
if __name__ == '__main__':
main()
Gleich noch eine Frage hinterher - warum muss ich jeden String den ich ausgebe als Unicode machen (vorangestelltes u) damit Umlaute richtig ausgegeben werden können?
Warum sind bei mir alle Elemente in der Liste ebenfalls Unicode-Strings?
Es wird ja immer vom Arbeiten mit dem Befehl input abgeraten. Ist aber eine Abfrage mit raw_input und anschließendem int() nicht das gleiche? Kann doch genauso zu exceptions führen wie schon input selber - oder?
Wann wird eigentlich festgelegt, dass __name__ = '__main__' ist? Bekommt das Script, das gestartet wird automatisch diesen Namen und alle importierten heißen dann anders? Wenn ja wie?
Ist es üblicher in Python mehrere Werte gleichzeitig zurückzugeben oder sollte man diese eher in einer Liste "verpacken" (z.B. in einem Dict)?
Fallen Euch sonst großartig gravierende Fehler auf?
Vielen Dank für Eure Hilfe - aber nur durch Fragen wird man klug...