Wenn zuerst.... dann....

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.
maverick2012
User
Beiträge: 11
Registriert: Donnerstag 19. August 2010, 07:04

Hallo

wo finde ich den "formellen Ausdrück" in Python 3.1 für "wenn zuerst erreicht, dann gehe zu" :K

Danke für die Auskunft!
BlackJack

@maverick2012: Könntest Du mal ein Beispiel nennen? Grundsätzlich wird es wohl auf ``if`` hinauslaufen. "Dann gehe zu" lässt den Wunsch nach einem ``GOTO`` vermuten -- das gibt's in Python nicht. Von so etwas haben sich die meisten modernen Programmiersprachen verabschiedet. In Python 2.x gibt's `goto` noch als Aprilscherz in einem Modul implementiert von einem Drittanbieter. Aber halt nicht für ernsthafte Programme.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Generell konstruiert man bedingte Anweisungen ja mit `if ... then`. MIr ist nicht ganz klar, was du mit "wenn zuerst" meinst. Kannst du hier mal konkreter werden?
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Für mich klingt das nach einem Auszug aus einer mehr oder minder umgangsprachlichen Beschreibung eines Algorithmus'. Ich vermute, ohne den Rest der Aufgabe zu kennen, daß man diesen Abschnitt auch mit einer 'while' - Schleife lösen könnte.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Pekh:

Das würde ich eher mit "wenn erreicht ... dann" übersetzen. Zumindest entspräche dies der Umsetzung von `while not`, da Python ja kein `until`-Statement hat.
Zuletzt geändert von snafu am Donnerstag 19. August 2010, 08:37, insgesamt 1-mal geändert.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

@snafu: Ja, du hast vermutlich recht.
maverick2012
User
Beiträge: 11
Registriert: Donnerstag 19. August 2010, 07:04

Vielen Dank für die Antworten,

konkretes Beispiel:

Angenommen ich beziehe mich auf ein Zahlenfeld 1,2,3,4,5,6,7,8,9,10:

Start bei 5:
Wenn die 4 als erstes erreicht wird >> dann gehe zur 6
Sollte die 6 als erstes erreicht werden >> dann gehe zur 4
ansonsten bleibe bei der 5:

Alles weitere würde ich dann in einer Schleife laufen lassen:

Mir geht es eigendlich um den "Ausdruck" "als erstes"!

Danke
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Du mußt das Feld von vorne durchgehen und mit den Suchwerten vergleichen. Hast du einen Treffer, ist der jeweilige Wert logischerweise der "Erste".
BlackJack

@maverick2012: Das fröhliche Raten geht weiter. Ich habe jedenfalls nicht verstanden was in dem Beispiel gefragt ist. Was bedeutet "Start bei 5"? Was "x als erstes erreicht"? Wie sieht der Zustand aus und wie wird der verändert, dass man irgendwie Zahlen "erreichen" kann!? Das ist alles viel zu abstrakt beschrieben als das man etwas konkretes sagen könnte.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Mir geht es eigendlich um den "Ausdruck" "als erstes"!
Diesen Ausdruck gibt es in Python nicht (gibt's das überhaupt in einer nicht-esoterischen Programmiersprrache? ;-))

Wenn ich mich am Ratespiel beteiligen wollte würde ich auf "switch...case" tippen - gibt es aber in Python auch nicht. :-)

Wie BlackJack schon sagt: beschreibt dein Problem mal konkret und nicht so abstrakt oder poste ein Code-Schnipsel.

Gruß, noisefloor
maverick2012
User
Beiträge: 11
Registriert: Donnerstag 19. August 2010, 07:04

Hallo

den Code-Schippsel kann ich leider nicht zusenden, da ich keinen habe;
wie würde es aussehen, wenn ich in einer Skala von 1 bis 10, einfach mit (min) und (max) bezeichne ?

Wenn das (min) zuerst erreicht wird, dann gehe zu (max);
Und wenn (max) zuerst erreicht wird, dann gehe zu min;

Ich möchte nur diesen Weg formel in Python 3 als Code beschreiben!

Besten Dank!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Diese Funktion gibt es so sicherlich nicht, da musst du schon selber etwas basteln. Es existieren die min- und max-Funktion, außerdem haben Listen eine index-Methode. Dann fehlt nur noch eine kleine Schleife.

Sebastian
Das Leben ist wie ein Tennisball.
Pascal
User
Beiträge: 271
Registriert: Samstag 4. April 2009, 22:18

maverick2012 hat geschrieben: Start bei 5:
Wenn die 4 als erstes erreicht wird >> dann gehe zur 6
Sollte die 6 als erstes erreicht werden >> dann gehe zur 4
ansonsten bleibe bei der 5:
In welche Richtung soll es den gehen?
Und wenn du bei 5 startest und nix veränderst, dann wirst du immer bei 5 bleiben?
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Also ich verstehe es auch nicht. Kannst du bitte mal den größeren Kontext beschreiben?
BlackJack

@maverick2012: Um Dich mal wörtlich zu zitieren:
wie würde es aussehen, wenn ich in einer Skala von 1 bis 10, einfach mit (min) und (max) bezeichne ?
Das ist kein vollständiger deutscher Satz. Wenn du *was* in dieser Skala bezeichnest? Und was meinst Du mit "Wenn das A zuerst erreicht wird, dann gehe zu B"? Was bedeutet "erreichen" hier? Hast Du einen Wert der an einen Namen gebunden ist? Verändert der sich? Wodurch verändert der sich?

Vielleicht solltest Du echt mal ganz konkret sagen was Du willst. Du wirst ja nicht morgens aufgewacht sein, mit der Frage wie man irgendwas völlig zusammenhangloses, abstraktes formal in Python beschreibt!? Was und warum willst Du *genau*, *konkret* machen!?
maverick2012
User
Beiträge: 11
Registriert: Donnerstag 19. August 2010, 07:04

:K
Bis jetzt habe ich Leider noch kein Konzept, werde mir bis morgen etwas überlegen!

Gruß
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Öhm, du musst doch irgend eine Problemstellung oder Aufgabe haben, durch die du auf das Problem gestoßen bist...
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

ich glaube er will eine Zahlenreihe immer wieder wiederholen sprich z.B. von 2 - 7 und dann bei 7 wieder mit 2 weiter machen, mit der Möglichkeit sowohl aufwärts wie abwärts zu gehen.

Code: Alles auswählen

up = False
value = 3
maximum = 7
minimum = 2
while(True):
    print value
    if up:
        value += 1
        if value > maximum:
            value = minimum
    else:
        value -= 1
        if value < minimum:
            value = maximum
maverick2012
User
Beiträge: 11
Registriert: Donnerstag 19. August 2010, 07:04

Hallo,

Habe endlich etwas für meine Ansprüche gefunden:
Das gleiche sollte ich auch mit den (min) Elementen machen können, sobald ich das "raw_input A", "raw_input B", "raw_input C" und "raw_input D" eingegeben habe!

Code: Alles auswählen

max = list[0]
merke dir die erste Zahl in list als aktuelle größte Zahl

Code: Alles auswählen

i = 1

Code: Alles auswählen

while i < len(list):
gehe der Reihe nach durch die 2-te bis letzte Zahl in list

Code: Alles auswählen

if liste[i] > max:

Code: Alles auswählen

max = liste[i]
ist die aktuelle Zahl größer als die bisherige größte (max), dann merke dir die aktuelle als die neue größte Zahl

Code: Alles auswählen

i = i + 1
am Ende ist der gespeicherte Wert von max die größte Zahl in list

Hoffe es hilft euch weiter :wink:

Danke nochmals für die Unterstützung :wink:
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

dann sag doch du willst von einer Liste von Zahlen die grösste und die kleinste Zahl.

Code: Alles auswählen

In [433]: max(range(0,4))
Out[433]: 3

In [434]: min(range(0,4))
Out[434]: 0
Antworten