python übung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
needphython
User
Beiträge: 11
Registriert: Samstag 10. Mai 2014, 14:56

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?
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

in der Kommandozeile:

Code: Alles auswählen

python skript.py Das ist ein kurzer Satz.
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Die Aufgabe ließe sich mit einer leeren Python-Datei und Sirius3s Hinweis korrekt lösen ;)
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
needphython
User
Beiträge: 11
Registriert: Samstag 10. Mai 2014, 14:56

aso jetzt weiß ich was die kommandozeile ist
needphython
User
Beiträge: 11
Registriert: Samstag 10. Mai 2014, 14:56

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;
Zuletzt geändert von Anonymous am Sonntag 18. Mai 2014, 13:40, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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.
Antworten