befehl für den betrag?

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
Cthulhu
User
Beiträge: 38
Registriert: Freitag 17. November 2006, 16:00

Freitag 24. November 2006, 13:44

hallo
ich wollt mal fragen ob es einen befehl gibt um den betrag einer tahl zu kriegen???
also dass eine zahl immer positiv ist!
(bitte keine antworten von wegen: schau ob die zahl negativ ist und mach dann mal -1)

DANKE
Python 47
User
Beiträge: 574
Registriert: Samstag 17. September 2005, 21:04

Freitag 24. November 2006, 13:54

Tja ich würd ganz einfach sagen:

schau ob die zahl negativ ist und mach dann mal -1 *SCNR*

und jetzt die Richtige Antwort:

Code: Alles auswählen

x=-12
abs(x)
x=12
abs(x)
mfg

Thomas :-)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 24. November 2006, 16:32

Wie Python Master 47 schon sagte, den Betrag gibt es mit abs(). Kann man sich auch einfach merken, denn der Betrag ist nur ein anderes Wort für den Absolutwert.

And now the fun part: Wie wärs mit einer (sinnloserweise) rekursiven Funktion, zum Bestimmen des Betrages?

Code: Alles auswählen

In [1]: def recurabs(number):
   ...:     if number >= 0:
   ...:         return number
   ...:     else:
   ...:         return recurabs(-number)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 24. November 2006, 16:58

Leonidas hat geschrieben:And now the fun part: Wie wärs mit einer (sinnloserweise) rekursiven Funktion, zum Bestimmen des Betrages?
Das geht besser:

Code: Alles auswählen

>>> import math
>>> def abs(x):
...  if x >= 0:
...   return x
...  n = math.sqrt(x ** 2)
...  return abs(type(x)(n))
... 
>>> abs(-42)
42
>>> abs(-4234.234)
4234.2340000000004
>>> abs(2323.232)
2323.232
:D
TUFKAB – the user formerly known as blackbird
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 24. November 2006, 17:00

Juhu, das erinnert mich an [wiki]Anzahl der Es in einem String[/wiki] - vielleicht sollten wir wieder so eine Seite machen? Ich steurere Meine Lösung mal bei :D
My god, it's full of CARs! | Leonidasvoice vs Modvoice
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Freitag 24. November 2006, 20:57

Mit if-Statements arbeiten ist doch langweilig :D

Code: Alles auswählen

def labs(x):
    return max(range(x+1) + range(-x+1))
Sebastian

EDIT: Die Nullen als Startwerte in Range sind doch irgendwie überflüssig...
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Freitag 24. November 2006, 21:41

Code: Alles auswählen

def string_abs(zahl):
    return float(str(zahl).replace('-',''))
:mrgreen:
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 24. November 2006, 22:09

Ich konnte nicht widerstehen [wiki]Betrag bestimmen[/wiki] anzulegen :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
merlin_emrys
User
Beiträge: 110
Registriert: Freitag 3. März 2006, 09:47

Samstag 25. November 2006, 00:39

Leonidas hat geschrieben:Ich konnte nicht widerstehen [wiki]Betrag bestimmen[/wiki] anzulegen :)
Methode 6 muss ich mir merken... :-D
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Samstag 25. November 2006, 11:36

Es geht auch mit linearer Laufzeit, allerdings nur für ints/longs

Code: Alles auswählen

def betrag(x):
  if not isinstance(x, (long,int)):
    raise TypeError("argument must be integer")
  y = 1
  while True:
    if (x+y)*(x-y) == 0:
      return y
    y += 1
r2d2
User
Beiträge: 43
Registriert: Donnerstag 2. März 2006, 23:05
Wohnort: Bielefeld

Samstag 25. November 2006, 13:09

in zeiten von web 2.0 ist es immer angebracht den user zu fragen.

Code: Alles auswählen

def web20abs(x):
    ergebnismenge = [x, x*(-1)]
    userentscheidung = ""
    print "Welche Zahl ist größer?"
    print "Geben Sie [1] für", x, "| [2] für", x*(-1), "ein."
    while True:
        if not userentscheidung in [1, 2]:
            userentscheidung = int(raw_input("?"))
        else: break
    return ergebnismenge[userentscheidung - 1]
auf wahrheitsgehalt der usermeinung wird nicht geprüft. denn: der user hat immer recht.

r2d2

Edit (Leonidas): web2.0-Diskussion in den Thread Wer oder was ist web2.0? verschoben.
äh, nimm diese schlange von meinem hals.
Antworten