Wie lese ich in Python aus eingegebenen Zahlen die größte Zahl (durch Programmieren) aus?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

ich würde nicht raw_input() sondern input() benutzen, dann musst du nix umwandeln.

a1 = input()
a2 = input()
a3 = input()
print a1,a2,a3

Jetzt musst du per Fallunterscheidung die Zahl finden, die größer als die beiden anderen ist. (Bzw. größer-gleich falls die nicht alle unterschiedlich sind)

Also

if a1 > a2 and a1 > a3:
print a1
elif ...

Den Rest musst du selbst machen ...

Hongi01 
Fragesteller
 22.11.2015, 13:15

Vielen Dank erstmal! kann ich in Python2 denn einfach input() verwenden? Und sind die eingegebenen Zahlen nicht noch strings?


0
Schachpapa  22.11.2015, 13:17
@Hongi01

Was spricht dagegen es einfach auszuprobieren? Programmieren lernt man nicht vom lesen oder zugucken, sondern vom machen. Nur dann machst du Fehler, die ein Fortgeschrittener nicht mehr machen würde, lernst selber wie man sie behebt und machst sie fortan nicht mehr.

0
Hongi01 
Fragesteller
 22.11.2015, 13:33
@Schachpapa

ich hab alles in mein programm eingetippt. probiere natürlich alles Mögliche. 

print "erste Zahl eingeben"

n1=raw_input("Eingabe")

print "1. Zahl:", n1

print "zweite Zahl eingeben"

 n2=raw_input("Eingabe")

print ("2.Zahl:"), n2

print "dritte Zahl eingeben"

n3=raw_input("Eingabe")

print "3.Zahl:", n3

print "Deine Zahlen:", n1,n2,n3 #random text

float(n1)

float(n2)

float(n3)

if n1>n2 and n1>n3: 

     print n1

elif n2>n1 and n2>n3: 

    print n2

elif n3>n1 and n3>n2:

     print n3

Will bloß nicht so richtig. 

elif n2>n1 and n2>n3:                               print n2

Da soll der string nicht abrufbar sein.

0
Schachpapa  22.11.2015, 13:42
@Hongi01

Ist natürlich lesbarer, wenn du so eingibst, dass es hier auch mit Zeilenumbrüchen erscheint (jetzt sieht's besser aus)

elif n3>n1 and n3>n2():

Was haben die Klammern hinter n2 zu suchen? Dadurch rufst du eine Funktion n2 auf, und wenn Python behauptet, dass es die nicht gibt, hat es recht.

0
Schachpapa  22.11.2015, 13:48
@Schachpapa

Anscheinend hast du korrigiert. Bei mir läuft dein Code. Allerdings vergleichst du Strings, d.h. "13" < "2". Wenn du Zahlen haben willst schreibst du entweder

n1 = float(raw_input("Eingabe"))

oder wandelst anschließend um

n1 = float(n1)

Nur float(n1) alleine bringt nichts, weil du dir das Ergebnis nicht merkst.

0

Den Input in eine Liste zu splitten ist schon eine gute Idee. Wenn du noch wissen möchtest, wie du eine funktion max() selbst implementieren kannst, hier ein Beispiel (leider kann ich kein Python, deshalb Pseudocode):

// Liste mit Zahlen
var z = array(2, 5, 1, 9, 5, 7, 3);

// größte zahl finden

function max(arg)
    var biggest = arg[0];
    
    // loop over the list
    for i = 1 to length(arg) do

        // if the next number is bigger,
        // set biggest to the next number
        if arg[i] > biggest then
            biggest = arg[i]
        end

    next
    
    return biggest

end

# Zahlen einlesen und in Liste splitten

a = raw_input().split()

# Auf alle Elemente der Liste die Funktion float anwenden

b = map(float,a)

# Größte Zahl ausgeben

print max(b)