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
in der Kommandozeile:

Code: Alles auswählen

python skript.py Das ist ein kurzer Satz.

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:

Code: Alles auswählen

# -*- coding: utf-8 -*-
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.