Ausgabe von Zufallszahl

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
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

Ich möchte unter Python3, welches unter Linux Debian läuft Zufallszahlen in Normalverteilung aus geben.

Zum Test gebe ich im Terminal folgendes ein::

Code: Alles auswählen

python3
Darauf hin läuft im Terminal Python3

Nun kann ich mir auf folgende Weise eine normalverteilte Zufallszahl auf folgende Weise ausgeben:

Code: Alles auswählen

# import the random module 
import random 
print(random.normalvariate(5, 0.1))
Als Ausgabe erhalte ich eine Zufallszahl, wie z.B. folgende:

Code: Alles auswählen

4.953696677831711
Wenn ich folgendes probiere, bekomme ich auch eine gewünschte Ausgabe einer normalverteilten Zufallszahl:

Code: Alles auswählen

# import the random module 
import random 
  
# determining the values of the parameters 
mu = 100
sigma = 50
  
# using the normalvariate() method 
print(random.normalvariate(mu, sigma)) 
Beispiel für erfolgreiche Ausgabe:

Code: Alles auswählen

136.00273528689257
Soweit wunderbar. Bei der folgenden Ausgabe bekomme ich allerdings eine Fehlermeldung:

Code: Alles auswählen

# import the required libraries  
import- random  
import matplotlib.pyplot as plt  
    
# store the random numbers in a   
# list  
nums = []  
mu = 100
sigma = 50
    
for i in range(100):  
    temp = random.normalvariate(mu, sigma) 
    nums.append(temp)  
        
# plotting a graph  
plt.plot(nums)  
plt.show()


Fehlermeldung:

Code: Alles auswählen

>>> # import the required libraries  
... import- random  
  File "<stdin>", line 2
    import- random  
          ^
SyntaxError: invalid syntax
>>> import matplotlib.pyplot as plt  
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'matplotlib'
>>>     
... # store the random numbers in a   
... # list  
... nums = []  
>>> mu = 100
>>> sigma = 50
>>>     
... for i in range(100):  
...     temp = random.normalvariate(mu, sigma) 
...     nums.append(temp)  
...         
... # plotting a graph  
... plt.plot(nums)  
  File "<stdin>", line 7
    plt.plot(nums)  
      ^
SyntaxError: invalid syntax
>>> plt.show() 
Muss ich da noch irgend etwas installieren ?
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Nein, du musst nur den Tippfehler (das - hinter import) beheben.
Benutzeravatar
Dennis89
User
Beiträge: 1155
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

der '-' gehört beim Importieren da nicht hin:

Code: Alles auswählen

import random
Falls dir 'matplotlib' als Modul fehlt:
https://matplotlib.org/users/installing.html

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

Dennis89 hat geschrieben: Dienstag 12. Januar 2021, 22:09 der '-' gehört beim Importieren da nicht hin:

Code: Alles auswählen

import random
Ahh. Wunderbar. Das "-" habe ich jetzt entfernt.
Dennis89 hat geschrieben: Dienstag 12. Januar 2021, 22:09 Falls dir 'matplotlib' als Modul fehlt:
https://matplotlib.org/users/installing.html
Die "Python-Matplotlib" die noch gefehlt hatte, habe ich jetzt über die Linux Anwendungsverwaltung installiert.

Jetzt bekomme ich schon mal im Terminal folgendes:

Code: Alles auswählen

>>> # import the required libraries  
... import random  
>>> import matplotlib.pyplot as plt  

>>>     
... # store the random numbers in a   
... # list  
... nums = []  
>>> mu = 100
>>> sigma = 50
>>>     
... for i in range(100):  
...     temp = random.normalvariate(mu, sigma) 
...     nums.append(temp)  
...         
... # plotting a graph  
... plt.plot(nums)  
  File "<stdin>", line 7
    plt.plot(nums)  
      ^
SyntaxError: invalid syntax
>>> plt.show()
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Für mich sieht das nach einem Copy&Paste-Problem in der interaktiven Session aus. Dass du da mehr als eine Zeile auf einmal einfügst.
Schreib deinen Code in eine Datei, führe die mit Python aus.
Benutzeravatar
Dennis89
User
Beiträge: 1155
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

ich habe deinen Code bei mir in "Thonny" kopiert und er funktioniert. Eventuell passiert dir ein Fehler bei der Terminaleingabe.
Hast du keinen Code-Editor? "Thonny" oder "PyCharm" zum Beispiel.

So habe ich den Code eingefügt:

Code: Alles auswählen

import random  
import matplotlib.pyplot as plt  
    
# store the random numbers in a   
# list  
nums = []  
mu = 100
sigma = 50
    
for i in range(100):  
    temp = random.normalvariate(mu, sigma) 
    nums.append(temp)
    
plt.plot(nums)  
plt.show()
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

sparrow hat geschrieben: Dienstag 12. Januar 2021, 22:37 Für mich sieht das nach einem Copy&Paste-Problem in der interaktiven Session aus.
Schreib deinen Code in eine Datei, führe die mit Python aus.
Das werde ich gleich probieren.

Wenn ich in der Konsole einfach nur "random" eingebe, sagt er das er das nicht kennt. Ist das ein Modul was man einzeln installieren muß ?

Ein Modul mit genau der Bezeichnung "Python3-random" habe ich in der Anwendungsverwaltung nicht gefunden. Allerdings eines was sich ähnlich nennt und irgend was mit "Backport aus Python 2 oder ähnlich mit in der Bezeichnung hat. Wenn ich da eines mit einer abweichenden Bezeichnung nachinstallieren würde, würde sich das "random" dann im Script auch abweichend nennen ?
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Aus der Beschreibung wird man nicht schlau. Welche Konsole meinst du? Die Linux-Konsole? Warum sollte die eingabe von "random" in der Linux-Konsole etwas finden? Es sei denn, es gibt ein Programm namens "random" im Suchpfad?

"random" ist ein Modul aus der Standardbibliothek.
Das offizielle Tutorial bietet sich an, wenn man einen Einstig in Python sucht.
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

sparrow hat geschrieben: Dienstag 12. Januar 2021, 22:49 Aus der Beschreibung wird man nicht schlau. Welche Konsole meinst du? Die Linux-Konsole? Warum sollte die eingabe von "random" in der Linux-Konsole etwas finden? Es sei denn, es gibt ein Programm namens "random" im Suchpfad?

"random" ist ein Modul aus der Standardbibliothek.
Das offizielle Tutorial bietet sich an, wenn man einen Einstig in Python sucht.
Ja ich meine die Linux Konsole. Wenn es noch andere Konsolen geben sollte, dann nenne ich das jetzt mal Terminal.

Da die folgende Ausgabe bei mir im Terminal funktioniert, scheint "random" bereits in meinem System unter Python3 Verfügbar zu sein:

Code: Alles auswählen

# import the random module 
import random 
print(random.normalvariate(5, 0.1))
Benutzeravatar
sparrow
User
Beiträge: 4193
Registriert: Freitag 17. April 2009, 10:28

Nein, im Terminal oder der Konsole funktioniert das sicher nicht. Da sollte die Ausgabe so aussehen:

Code: Alles auswählen

$ import random
-bash: import: command not found
Deshalb fragte ich, was du meinst.

Wie ich schon schrieb: Das Modul random kommt mit Python. Da muss man nichts extra installieren.
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

sparrow hat geschrieben: Dienstag 12. Januar 2021, 23:07 Nein, im Terminal oder der Konsole funktioniert das sicher nicht. Da sollte die Ausgabe so aussehen:

Code: Alles auswählen

$ import random
-bash: import: command not found
Deshalb fragte ich, was du meinst.

Wie ich schon schrieb: Das Modul random kommt mit Python. Da muss man nichts extra installieren.
Das war ein guter Tip. Wenn ich das wie folgt als .py Datei aufrufe, geht das wunderbar:

Code: Alles auswählen

#!/usr/bin/env python3
# Schebeng

# import the required libraries  
import random  
import matplotlib.pyplot as plt  
    
# store the random numbers in a   
# list  
nums = []  
mu = 100
sigma = 50
    
for i in range(100):  
    temp = random.normalvariate(mu, sigma) 
    nums.append(temp)  
        
# plotting a graph  
plt.plot(nums) 
plt.show()
 
varialble = input ("Zum Beenden Enter drücken oder Ctl + C")
Susann.M.23
User
Beiträge: 44
Registriert: Montag 30. März 2020, 13:23

Beitrag von Nutzer gelöscht
Antworten