Zufällige Zahl in Python?

...komplette Frage anzeigen

6 Antworten

Die anderen Antworten scheinen mir recht naiv zu sein, bzw. "riechen" sehr nach Anfängerniveau. :)

Eine wirklich clevere Implementierung sieht so aus:

from random import choice as c
l = list(set(range(2,13)) ^ set((3,5,7,8,9,11)))
print(c(l))

Das gibt dir eine zufällige Zahl anhand deiner Vorgaben aus.

Effizienter geht es nicht mehr. Keine Schleifen, keine Bedingungen und nicht mal eine einzige Einrückung nötig. Außerdem werden nicht sinnlos unnötige Zufallszahlen in einer Schleife berechnet, die sich im Nachhinein bei einer Prüfung als falsch rausstellen. :)

Anstatt print() kannst du das c(l) auch an jede andere Stelle deines Programms einbauen, und es wird dir jedes mal eine zufällige Zahl aus deinem Pool liefern.

In einem richtigen Programm solltest du natürlich auf vernünftige Namen für die Bezeichner achten, denn "c" und "l" sind nur in obigem Beispiel aussagekräftig. Bei allem, was länger als 5 Zeilen ist, sollte man sich wirklich Gedanken um gute Bezeichner machen!

Viel Spaß noch mit Python! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von W00dp3ckr
28.10.2015, 19:31

Hübsch. Aber das import choice as c würde ich mir nicht angewöhnen. Das ist gut für "nur ich muss es lesen"-Programme

1

Setz den Zufallsgenerator in eine while-Schleife. Als Bedingung nimmst du eine boolesche Variable als Flag.

gueltig = False
while not gueltig:
# Zufallsgenerator hier

Nach Erzeugung einer Zahl kannst du dann mit einer if-Abfrage prüfen und dein Flag gegebenenfalls auf True setzen.

Antwort bewerten Vielen Dank für Deine Bewertung
#!/usr/bin/env python
# import random module
import random
# initialize
 randomrandom.seed()
# get random integer value between 1 and 1000
x = random.randint(1,1000)
# print random valueprint(x)

Das Ergebnis in if variable setze wenn eine der nicht gewollten zahlen auftrit Script wiederholen. 

Antwort bewerten Vielen Dank für Deine Bewertung

Du könntest es so angehen: Eine Zufallszahl wird berechnet, dann überprüfst du mit if, ob es eine der unerwünschten ist. Wenn ja, dann generierst du eine neue. Ist zwar nicht sehr sauber, aber etwas besseres fällt mir nicht ein.

Antwort bewerten Vielen Dank für Deine Bewertung

from random import shuffle
a = shuffle([1,3,8,11])
a[0]

Antwort bewerten Vielen Dank für Deine Bewertung

*halt *Zahlen halt

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?