Wie lese ich in Python aus eingegebenen Zahlen die größte Zahl (durch Programmieren) aus?
Moinsen liebe Leute.
Ich habe ein kleines Problem. Ich möchte ein Programm schreiben, in dem aus 3 Zahlen, die eingegeben werden, die größte angegeben wird.
Nun weiß ich bisher aber nur, dass ich mit raw_input die Zahlen erfrage. Müssen die irgendwie gespeichert werden? und wie ordne ich sie float zu? Und wie kann ich die größte auslesen lassen? Ich zerbrech mir schon die ganze zeit den Kopf daran. Hoffe auf Hilfe
3 Antworten
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 ...
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.
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.
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.
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.
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)
Vielen Dank erstmal! kann ich in Python2 denn einfach input() verwenden? Und sind die eingegebenen Zahlen nicht noch strings?