Ich habe hier ein kleines Programm das eine Menge 'eingabe' an Zufallszahlen zwischen 0 und 20 erzeugt, in Erzeugungsreihenfolge ausgibt, danach sortiert und dann sortiert wieder ausgibt.
Ich habe zwei Probleme. Ich möchte die Ausgabe so formatieren, dass mehrere Ergebnisse, z.B. fünf Zufallszahlen in einer Reihe sind. Momentan kriege ich eine hin.
Zum Zweiten sortiert .sort() ja auch ganz gut. Nur eben zu gut. Die Ausgabe ist ungefähr:
0.5
0.8
1.03
11
12
14
17
19
2.4
5
7.5
9.9
Ihr versteht sicherlich, was ich meine. Ich hätte es aber gerne, das es von 0-20 herauf sortiert ausgegeben wird. ich habe schon sowas ausprobiert wie L.sort(0, 20) aber das funktioniert nicht.
Hier der Code
Code: Alles auswählen
import random
import pprint
L = [] # Erstellt eine Liste für die Zufallswerte
eingabe = raw_input('Geben Sie die Anzahl der Durchläufe an!')
if int(eingabe) < 10000:
i = 1
while i < int(eingabe): # Beginnt eine Schleife, die die Anzahl der Zufallszahlen bestimmt.
f = random.random() # Generiert Zufallszahl.
f = f * 20 # Multipliziert mit 20 um Zahlen zwischen 0 und 20 zu erhalten.
L.append(str(f)) # Zufallszahl wird an die Liste angehängt.
i = i+1 # Erhöht i um 1, damit die Schleife nicht endlos wird.
print ''
print 'Die unsortierten Zahlen:'
print ''
pprint.pprint(L) # Gibt die Zufallszahlen formatiert aus.
L.sort() # Sortiert die Zufallszahlen in der Liste.
print ''
print 'Hier die sortierten Zahlen:'
print ''
pprint.pprint(L)
elif int(eingabe) > 10000 and int(eingabe) < 2000001: # Überprüft, ob die Berechnung nicht zu lange dauern würden
print 'Sie haben mehr als 10000 Durchläufe angegeben.'
print 'Die Berechnungen könnten länger als eine Minute'
print 'dauern. Sind Sie sicher, das Sie das Programm'
print 'starten möchten?'
wahl = raw_input('j/n') # Fragt vorsichtshalber nach, da die Berechnung lange dauern könnte
if wahl == 'j': #Wenn Ja gewählt wird, beginne das eigentliche Programm
i = 1
while i < int(eingabe):
f = random.random()
f = f * 20
L.append(str(f))
i = i+1
print ''
print 'Die unsortierten Zahlen:'
print ''
pprint.pprint(L)
L.sort()
print ''
print 'Hier die sortierten Zahlen:'
print ''
pprint.pprint(L)
elif wahl == 'n':
print 'Das Programm wird nun beendet.'
else:
print '''Ihre gewuenschte Anzahl Durchläufe ist zu \n\
gross fuer normale Rechner. Das Programm\n\
wird nun beendet.'''