Seite 1 von 1

Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 21:42
von Susann.M.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 ?

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:08
von nezzcarth
Nein, du musst nur den Tippfehler (das - hinter import) beheben.

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:09
von Dennis89
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

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:24
von Susann.M.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()

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:37
von sparrow
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.

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:40
von Dennis89
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

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:43
von Susann.M.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 ?

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 22:49
von sparrow
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.

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 23:00
von Susann.M.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))

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 23:07
von sparrow
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.

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 23:09
von Susann.M.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")

Re: Ausgabe von Zufallszahl

Verfasst: Dienstag 12. Januar 2021, 23:18
von Susann.M.23
Beitrag von Nutzer gelöscht