Seite 1 von 1
python übung
Verfasst: Sonntag 18. Mai 2014, 12:47
von needphython
ich bin gerade dabei folgende aufg. zu machen:
"Dem Skript soll in der Kommandozeile ein Satz mit 5 Wörtern übergeben werden"
ich habe die aufg. so gelöst
import sys
variabel = sys.argv[0]
wort1 = sys.argv[1]
wort2 = sys.argv[2]
wort3 = sys.argv[3]
wort3 = sys.argv[4]
wort3 = sys.argv[5]
print len(sys.argv)
wo gebe ich jetzt die wörter ein, damit das programm die wörter findet?
Re: python übung
Verfasst: Sonntag 18. Mai 2014, 12:56
von Sirius3
Re: python übung
Verfasst: Sonntag 18. Mai 2014, 13:12
von bwbg
Die Aufgabe ließe sich mit einer leeren Python-Datei und Sirius3s Hinweis korrekt lösen

Re: python übung
Verfasst: Sonntag 18. Mai 2014, 13:21
von needphython
aso jetzt weiß ich was die kommandozeile ist
Re: python übung
Verfasst: Sonntag 18. Mai 2014, 13:30
von needphython
ich habe ein problem bei der nächsten aufgabe:
"Werden mehr oder weniger Wörter übergeben, so soll eine entsprechende Nachricht ausgegeben und das Programm verlassen werden.
(Hinweis: mit dem Befehl “exit” wird ein Programm sofort beendet.)"
meine lösung:
Code: Alles auswählen
import sys
variabel = sys.argv[0]
wort1 = sys.argv[1]
wort2 = sys.argv[2]
wort3 = sys.argv[3]
wort3 = sys.argv[4]
wort3 = sys.argv[5]
print len(sys.argv)
if len(sys.argv) >6:
print zu viele Wörter
exit
if len(sys.argv)<6:
print zu wenige Wörter
exit
das klappt aber nicht. ich bekomme folgende fehlermeldung:
syntaxerror: Non-ASCII character `\xf6` in file C:... finger2.py on line 10, but no encoding declared;
Re: python übung
Verfasst: Sonntag 18. Mai 2014, 13:49
von Leonidas
Du musst ein Encoding angeben, also etwa ganz am Anfang:
utf-8 halt dann passend durch das Encoding ersetzen, welches du nutzt. Und außerdem kann ``print`` Strings ausgeben, nicht zufälliges Zeug was dahinter steht, also wirst du deine Ausgabe in einen String packen müssen.
Re: python übung
Verfasst: Sonntag 18. Mai 2014, 13:50
von BlackJack
@needphython: Die Fehlermeldung hast Du doch jetzt selber erfunden, beziehungsweise so halb abgeschrieben. `syntaxerror` steht da sicher nicht *so*. Und die Fehlermeldung ist länger und enthält einen Verweis auf ein PEP das man dazu vielleicht mal lesen könnte.
Die Aufgabenstellung behauptet `exit` sei ein Befehl — das ist falsch, das ist eine Funktion, und man sollte sie auch aus dem `sys`-Modul importieren. Denn das die momentan bei CPython ”einfach so” vorhanden ist, das ist nicht dokumentiert und damit auch nichts worauf man sich verlassen sollte. Andererseits sollte man mit `exit()` sowieso sparsam umgehen und ich sehe nicht dass man das für diese Aufgabe tatsächlich braucht. Die lässt sich problemlos ohne lösen.
Es steht übrigens soweit ich das sehe nirgends, dass Du die fünf Wörter an durchnummerierte Namen binden sollst. Das ist schlechter Programmierstil und ausserdem machst Du das auch noch falsch, denn man würde, wenn schon, dann doch auch fünf verschiedene Variablen erwarten und nicht nur drei.