if/else

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
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

Hallo,
warum kann ich in ug. Beispiel das else nicht weglassen?

Code: Alles auswählen

Ngk=2.5
if Ngk>0:
    fuu=raw_input('Normalkraft=positiv [J/n] !?')
    if fuu=='n':
        Ngkn=-Ngk
    else:
        Ngkn=Ngk    
Ned=Ngkn
print 'Ned=%0.2f kN' % Ned
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

wenn

Code: Alles auswählen

Ngk=2.5
if Ngk>0:
    fuu=raw_input('Normalkraft=positiv [J/n] !?')
    if fuu=='n':
        Ngkn=-Ngk
        Ngkn=Ngk    
Ned=Ngkn
print 'Ned=%0.2f kN' % Ned
wird im Falle von fuu!='n' Ngkn gar nicht gesetzt. Wenn

Code: Alles auswählen

Ngk=2.5
if Ngk>0:
    fuu=raw_input('Normalkraft=positiv [J/n] !?')
    if fuu=='n':
        Ngkn=-Ngk
    Ngkn=Ngk    
Ned=Ngkn
print 'Ned=%0.2f kN' % Ned
ist Ngkn unabhängig von fuu immer gleich Ngk.

Beantwortet das Deine Frage?

Gruß,
Christian

PS Was willst Du eigentlich erreichen? Der Code sieht etwas umständlich aus.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

*kopfkratz* Sieht nach Web 2.0 aus, der User entscheidet ob Werte positiv sind XD Konnt ich mir einfach nicht verkneifen, tut mir leid ._.

Code: Alles auswählen

normalkraft = 2.5
if normalkraft < 0:
    normalkraft *= -1
print 'Ned = %0.2f kM' % normalkraft
Oder hab ich's falsch verstanden?

Edit: Außerdem! PEP8 Alarm
Zuletzt geändert von BlackVivi am Freitag 7. Dezember 2007, 10:03, insgesamt 1-mal geändert.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

nicht ganz:
eigentlich wollte ich so tun wie unten, aber dann ist Ngkn immer negativ, auch wenn ich j oder J eingebe.

Code: Alles auswählen

Ngk=2.5
if Ngk>0:
    fuu=raw_input('Normalkraft=positiv [J/n] !?')
    if fuu=='n':
        Ngkn=-Ngk
#    else:
#        Ngkn=Ngk    
Ned=Ngkn
print 'Ned=%0.2f kN' % Ned
[/code]

EDIT:
der user soll entscheiden ob j oder n, wenn n dann vorzeichen ändern, wenn j soll alles bleiben wie es ist.
mathi
User
Beiträge: 314
Registriert: Dienstag 27. November 2007, 14:30

ich habs jetzt so:

Code: Alles auswählen

Ngk=2.5
if Ngk>0:
    fuu=raw_input('Normalkraft=positiv [J/n] !?')
    if fuu=='n':
        Ngk*=-1
    
Ned=Ngk
print 'Ned=%0.2f kN' % Ned
Warum geht das jetzt ?? Ich begreif das noch nicht!

Edit:
OOOOOO Mann, ich bin so blind : Ned = Ngk (Ngkn) -> da war der Fehler!!
Zuletzt geändert von mathi am Freitag 7. Dezember 2007, 10:11, insgesamt 2-mal geändert.
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Achso, ich hab dich echt nicht verstanden oO Ich würd's eher so machen!

Code: Alles auswählen

ngk = 2.5
positiv = raw_input("Zahl negativ oder positiv? [J, n]").upper()
if positiv == "N":
    ngkn = -abs(ngk)
else:
    ngkn = abs(ngk)
print "blabla", ngkn
Edit: Hast du vielleicht ein großes N eingegeben?

Edit2: Boah, was'n mit mir los >_>
Antworten