Python: Module: Unterschied zwischen den Versionen
Flinh1 (Diskussion | Beiträge) (→random) |
Flinh1 (Diskussion | Beiträge) (→calendar) |
||
(63 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
<div align="right">'''[[Python: Turtle|Zur Seite "Python: Turtle"]]'''</div> | <div align="right">'''[[Python: Turtle|Zur Seite "Python: Turtle"]]'''</div> | ||
<div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div> | <div align="right">'''[[Python: Tkinter|Zur Seite "Python: Tkinter"]]'''</div> | ||
− | <div align="right">'''[[Python: | + | <div align="right">'''[[Python: Pygame|Zur Seite "Python: Pygame"]]'''</div> |
+ | <div align="right">'''[[Python: PyQT|Zur Seite "Python: PyQT"]]'''</div> | ||
+ | <div align="right">'''[[Python: Anaconda|Zur Seite "Python: Anaconda"]]'''</div> | ||
+ | == Allgemeines == | ||
+ | Ein Modul ist eine Datei, in der Python-Definitionen und -Anweisungen definiert sind. Diese können dann in einer anderen Datei oder in der interaktiven Konsole wieder verwendet werden. Moduldateien haben die Endung ''.py'' | ||
− | + | Im [https://docs.python.org/3/py-modindex.html Python Module Index] sind die standardmäßig verfügbaren Module aufgelistet. | |
+ | |||
+ | Die Dateien für die Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version): | ||
+ | /usr/lib/python3.6/ | ||
− | + | In Windows liegen die Dateien in Ordner ''Lib'' der Python-Installation. | |
− | + | Manche Module müssen <u>nachinstalliert</u> werden, z.B.: | |
− | /usr/lib/python3.6/ | + | pip/pip3 install python-docx |
+ | Diese Module landen bei Windows im Unterordner ''Lib\site-packages'', bei Ubuntu in ''/usr/local/lib/python3.6/dist-packages''. | ||
---- | ---- | ||
Zeile 49: | Zeile 57: | ||
---- | ---- | ||
+ | == locale == | ||
+ | * https://docs.python.org/3/library/locale.html | ||
+ | Lokalisierung von Datum und Zeit: | ||
+ | <nowiki> | ||
+ | import time, locale | ||
+ | locale.setlocale(locale.LC_ALL, '') | ||
+ | time = time.strftime('Heute ist %A der %d. %B.') | ||
+ | print(time) | ||
+ | </nowiki> | ||
+ | Ausgabe: Heute ist Mittwoch der 10. Juli. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == time == | ||
+ | * https://docs.python.org/3/library/time.html | ||
+ | * https://www.programiz.com/python-programming/time | ||
+ | ---- | ||
+ | |||
+ | === Aktuelles Datum und Uhrzeit === | ||
+ | |||
+ | ''localtime()'' gibt Datum und Uhrzeit als Objekt zurück: | ||
+ | <nowiki> | ||
+ | >>> lt = time.localtime() | ||
+ | >>> print(lt) | ||
+ | time.struct_time(tm_year=2019, tm_mon=6, tm_mday=29, tm_hour=21, tm_min=41, tm_sec=20, tm_wday=5, tm_yday=180, tm_isdst=1) | ||
+ | >>> print(f"Stunde: {lt[3]}") | ||
+ | Stunde: 21 | ||
+ | </nowiki> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | <nowiki> | ||
+ | zeit = time.localtime() | ||
+ | print(zeit) | ||
+ | #print ("Datum: %d.%d.%d"%(zeit[2], zeit[1], zeit[0])) | ||
+ | #print ("Uhrzeit: %d:%d:%d"%(zeit[3], zeit[4], zeit[5])) | ||
+ | print(f"Datum: {zeit[2]}.{zeit[1]}.{zeit[0]}") | ||
+ | print (f"Uhrzeit: {zeit[3]}.{zeit[4]}.{zeit[5]}") | ||
+ | </nowiki> | ||
+ | |||
+ | ---- | ||
+ | === Dauer eines Vorgangs === | ||
+ | |||
+ | ''time.time()''gibt die Zeit ab 01. Januar 1970 in Sekunden wieder. Aus der Differenz zwischen zwei Zeitstempeln kann man die Dauer eines Vorgangs berechnen: | ||
+ | <nowiki> | ||
+ | >>> import time | ||
+ | >>> t1 = time.time() | ||
+ | >>> t1 | ||
+ | 1561833386.9472973 | ||
+ | >>> t2 = time.time() | ||
+ | >>> t2 | ||
+ | 1561833416.0354514 | ||
+ | >>> print(t2 - t1) | ||
+ | 29.088154077529907 | ||
+ | </nowiki> | ||
+ | ---- | ||
+ | |||
+ | ''asctime()'' wandelt Zeitangaben in Form eines Tupels mit 9 Elementen | ||
+ | (Year, month, day, hour, minute, second, wday, yday, isdst) in ein lesbares Format um (<nowiki>https://www.tutorialspoint.com/python/python_date_time.htm)</nowiki>: | ||
+ | <nowiki> | ||
+ | >>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0) # Die letzte 0 bedeutet: keine Sommerzeit. 1 = Sommerzeit, neg. Zahl > keine Information) | ||
+ | >>> print(time.asctime(zeit)) | ||
+ | Fri Dec 28 20:09:04 2019 | ||
+ | >>> | ||
+ | </nowiki> | ||
+ | |||
+ | ''asctime()'' ohne Argumente gibt das aktuelle Datum und die Uhrzeit aus: | ||
+ | >>> import time | ||
+ | >>> time.asctime() | ||
+ | 'Sat Jun 29 20:42:27 2019' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Datum- und Zeitdaten in der jeweiligen Landessprache: strftime() === | ||
+ | Formatiert Datum- und Zeitdaten in der jeweiligen Landessprache.[https://docs.python.org/3/library/time.html#time.strftime]: | ||
+ | <nowiki> | ||
+ | import time, locale | ||
+ | locale.setlocale(locale.LC_ALL, '') | ||
+ | time = time.strftime('Heute ist %A der %d. %B.') | ||
+ | print(time) | ||
+ | </nowiki> | ||
+ | Ausgabe: Heute ist Mittwoch der 10. Juli. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === sleep() === | ||
+ | |||
+ | ''time.sleep()'' (mit Zeitangabe in Sekunden) bewirkt eine Pause zwischen den Anweisungen. | ||
+ | |||
+ | ---- | ||
+ | |||
== datetime == | == datetime == | ||
+ | * https://docs.python.org/3/library/datetime.html | ||
Ausgabe der Indexnummer für den aktuellen Wochentag: | Ausgabe der Indexnummer für den aktuellen Wochentag: | ||
<nowiki> | <nowiki> | ||
Zeile 65: | Zeile 165: | ||
== os == | == os == | ||
− | + | *https://docs.python.org/3/library/os.html | |
− | + | ---- | |
===Seite aufräumen === | ===Seite aufräumen === | ||
Zeile 78: | Zeile 178: | ||
== math == | == math == | ||
− | + | * https://docs.python.org/3/library/math.html | |
+ | ---- | ||
sqrt: | sqrt: | ||
>>> import math | >>> import math | ||
Zeile 84: | Zeile 185: | ||
10.0 | 10.0 | ||
− | sin, cos, tan | + | Weitere Methoden: |
+ | |||
+ | sin(), cos(), tan() | ||
+ | |||
+ | ---- | ||
+ | == calendar == | ||
+ | <nowiki> | ||
+ | import calendar | ||
+ | kalenderblatt = calendar.TextCalendar(calendar.MONDAY) | ||
+ | ausgabe = kalenderblatt.formatmonth(2020,12) | ||
+ | print(ausgabe)</nowiki>[https://www.python-lernen.de/python-modul-calendar.htm] | ||
+ | Gibt den Kalender für Dezember 2020 aus, wobei die Woche mit Montag beginnt. | ||
---- | ---- | ||
+ | <nowiki> | ||
+ | import calendar | ||
+ | kalenderblatt = calendar.LocaleTextCalendar(calendar.MONDAY) | ||
+ | ausgabe = kalenderblatt.formatyear(2021, 2, 1, 1, 3) | ||
+ | print(ausgabe)</nowiki>[https://www.python-lernen.de/python-modul-calendar.htm] | ||
+ | |||
+ | Jahreskalender 2021 | ||
+ | |||
+ | ---- | ||
+ | Prüfung auf Schaltjahr: | ||
+ | >>> import calendar | ||
+ | >>> schaltjahr = calendar.isleap(2020) | ||
+ | >>> schaltjahr | ||
+ | True | ||
+ | |||
+ | ---- | ||
+ | |||
== random == | == random == | ||
+ | |||
+ | Das Modul ''random'' erzeugt sogenannte Pseudozufallszahlen. | ||
+ | |||
+ | * https://docs.python.org/3/library/random.html | ||
+ | ---- | ||
+ | |||
+ | ''seed'' initialisiert den Zufalls-Generator neu. | ||
+ | import random | ||
+ | random.seed() | ||
+ | [https://pynative.com/python-random-seed/] | ||
+ | |||
+ | ---- | ||
''randint'': | ''randint'': | ||
Zeile 102: | Zeile 243: | ||
namen = ["Peter","Paul","Maria","Anna"] | namen = ["Peter","Paul","Maria","Anna"] | ||
name1 = random.choice(namen) | name1 = random.choice(namen) | ||
− | print(name1) | + | print(name1) # Ausgabe: Maria |
− | </nowiki | + | </nowiki> |
+ | |||
+ | ---- | ||
+ | |||
+ | Die Funktion ''shuffle'' mischt die Elemente einer Liste: | ||
+ | ... | ||
+ | random.shuffle(namen) | ||
+ | print(namen) # Ausgabe: ['Anna', 'Peter', 'Maria', 'Paul'] | ||
+ | Die Ausgangsliste wird verändert. | ||
+ | |||
+ | To shuffle an immutable sequence and return a new shuffled list, use sample(x, k=len(x)) instead.[https://docs.python.org/3/library/random.html?highlight=shuffle#random.shuffle] | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Die Funktion ''sample'' mischt die Elemente einer Liste: | ||
+ | ... | ||
+ | namen2 = random.sample(namen,3) | ||
+ | >>> namen2 = sample(namen,3) | ||
+ | >>> print(namen2) # Ausgabe: ['Peter', 'Maria', 'Paul'] | ||
+ | ''sample'' liefert einen Rückgabewert. Die Ausgangsliste bleibt unverändert. | ||
---- | ---- | ||
== copy == | == copy == | ||
− | + | * https://docs.python.org/3/library/copy.html | |
+ | ---- | ||
Man kann einzelne Objekte ebenso wie ganze Listen kopieren. | Man kann einzelne Objekte ebenso wie ganze Listen kopieren. | ||
<nowiki> | <nowiki> | ||
Zeile 123: | Zeile 284: | ||
tierliste1 = [elsa,egon,coq] | tierliste1 = [elsa,egon,coq] | ||
tierliste2 = copy.copy(tierliste1) | tierliste2 = copy.copy(tierliste1) | ||
− | print(tierliste1[0].art) # Ausgabe: | + | print(tierliste1[0].art) # Ausgabe: Kuh |
tierliste1[0].art = "Zebra" | tierliste1[0].art = "Zebra" | ||
print(tierliste2[0].art) # Ausgabe: Zebra | print(tierliste2[0].art) # Ausgabe: Zebra | ||
Zeile 138: | Zeile 299: | ||
== shutil == | == shutil == | ||
− | + | * https://docs.python.org/3/library/shutil.html | |
+ | ---- | ||
Kopieren von Dateien: | Kopieren von Dateien: | ||
import shutil | import shutil | ||
shutil.copy('text01.txt', 'text03.txt') | shutil.copy('text01.txt', 'text03.txt') | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == sys == | ||
+ | * https://docs.python.org/3/library/sys.html | ||
+ | ---- | ||
+ | |||
+ | Beenden der Shell (z. B. in ''bash'' oder ''cmd'', nicht aber in IDLE): | ||
+ | import sys | ||
+ | sys.exit() | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Mit ''sys.stdin.readline()'' kann man ähnlich wie mit ''input'' eine Zeile Text einlesen. Der Unterschied ist, dass man mit ''readline'' | ||
+ | die Länge des Strings begrenzen kann: | ||
+ | import sys | ||
+ | x = sys.stdin.readline(11) | ||
+ | # Eingabe: Das ist ein langer String. | ||
+ | print(x) # Ausgabe: Das ist ein | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ''sys.stdout.write'' funktioniert ähnlich wie ''print'', gibt aber auch die Anzahl der Zeichen aus: | ||
+ | >>> import sys | ||
+ | >>> sys.stdout.write("Hallo Leute!") | ||
+ | Hallo Leute!12 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Die Python-Versionsabfrage kann mit ''sys.version'' erfolgen: | ||
+ | >>> print(sys.version) | ||
+ | 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Exception-Behandlung: | ||
+ | ... | ||
+ | <nowiki>except: | ||
+ | print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0])</nowiki> | ||
+ | Ausgabe: Folgender Fehler ist aufgetreten: <class 'ValueError'> | Folgender Fehler ist aufgetreten: <class 'ZeroDivisionError'> | ||
+ | - je nach erkanntem Fehler | ||
+ | |||
---- | ---- | ||
Zeile 153: | Zeile 357: | ||
Installation in Windows: | Installation in Windows: | ||
pip install pyperclip | pip install pyperclip | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == pickle == | ||
+ | |||
+ | ''pickle'' dient der [https://www.it-visions.de/glossar/alle/3469/Serialisierung.aspx Serialisierung] und Deserialisierung von Objekten. Ein Beispiel für die Anwendung ist die Speicherung von Score-Daten (z. B. Dictionary) in einem Spiel. | ||
+ | |||
+ | In Datei schreiben, hier Beispiel String: | ||
+ | <nowiki> | ||
+ | import pickle | ||
+ | inhalt = """Text und | ||
+ | noch mehr Text""" | ||
+ | speichern = open('inhalt.dat', 'wb') | ||
+ | pickle.dump(inhalt, speichern) | ||
+ | speichern.close() | ||
+ | </nowiki> | ||
+ | |||
+ | Datei laden: | ||
+ | <nowiki> | ||
+ | import pickle | ||
+ | laden = open('inhalt.dat', 'rb') | ||
+ | geladen = pickle.load(laden) | ||
+ | laden.close() | ||
+ | print(geladen) # Anzeige der Klartext-Daten | ||
+ | </nowiki> | ||
+ | ... und ggf. in eine Textdatei schreiben: | ||
+ | <nowiki> | ||
+ | speichern = open('inhalt.txt', 'w') | ||
+ | speichern.write(geladen) # schreibt Textdatei | ||
+ | speichern.close() | ||
+ | </nowiki> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == keyword == | ||
+ | |||
+ | Überprüfung, ob es sich um ein Schlüsselwort handelt: | ||
+ | <nowiki> | ||
+ | >>> import keyword | ||
+ | >>> keyword.iskeyword('import') | ||
+ | True | ||
+ | >>> keyword.iskeyword('export') | ||
+ | False | ||
+ | >>> | ||
+ | </nowiki> | ||
+ | <code>print(keyword.kwlist)</code> listet die Schlüsselwörter auf. | ||
+ | |||
+ | ---- | ||
+ | == shapes == | ||
+ | |||
+ | pip3 install shapes | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == playsound == | ||
+ | |||
+ | * https://pypi.org/project/playsound/ | ||
+ | |||
+ | ''playsound'' is the most straightforward package to use if you simply want to play a WAV or MP3 file. | ||
+ | It offers no functionality other than simple playback.[http://www.gtkdb.de/index_11_1172.html] | ||
+ | |||
+ | Installation: | ||
+ | pip install playsound | ||
+ | |||
+ | Beispiel: | ||
+ | from playsound import playsound | ||
+ | playsound('pfadangabe/cat.wav') | ||
+ | |||
+ | ---- | ||
+ | == seaborn == | ||
+ | |||
+ | * https://seaborn.pydata.org/installing.html | ||
+ | |||
+ | pip install seaborn | ||
+ | |||
+ | ---- | ||
+ | |||
+ | == packages == | ||
+ | |||
+ | Sammlungen von Modulen heißen '''packages'''. | ||
+ | |||
+ | * [https://pypi.org/ The Python Package Index (PyPI) is a repository of software for the Python programming language.] | ||
+ | |||
+ | * [https://www.ubuntupit.com/best-python-libraries-and-packages-for-beginners/ UbuntuPit: The 30 Best Python Libraries and Packages for Beginners] | ||
---- | ---- | ||
Zeile 162: | Zeile 450: | ||
* [https://docs.python.org/3/py-modindex.html Python Module Index] | * [https://docs.python.org/3/py-modindex.html Python Module Index] | ||
− | + | * https://py-tutorial-de.readthedocs.io/de/python-3.3/modules.html | |
---- | ---- | ||
[[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] | | [[Kategorie: Alle Seiten]] | [[Kategorie: Programmierung ]] | |
Aktuelle Version vom 31. Dezember 2020, 16:01 Uhr
Inhaltsverzeichnis
Allgemeines
Ein Modul ist eine Datei, in der Python-Definitionen und -Anweisungen definiert sind. Diese können dann in einer anderen Datei oder in der interaktiven Konsole wieder verwendet werden. Moduldateien haben die Endung .py
Im Python Module Index sind die standardmäßig verfügbaren Module aufgelistet.
Die Dateien für die Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version):
/usr/lib/python3.6/
In Windows liegen die Dateien in Ordner Lib der Python-Installation.
Manche Module müssen nachinstalliert werden, z.B.:
pip/pip3 install python-docx
Diese Module landen bei Windows im Unterordner Lib\site-packages, bei Ubuntu in /usr/local/lib/python3.6/dist-packages.
Import
import modulname
import includes.modulname as modulname
from modulname import funktionsname
from modulname import *
Modul testen
Bevor man ein Modul in einem Skript aufruft, sollte man es zuerst "stand alone" testen:
def anrede(person, nachricht): print("{}, {}".format(person, nachricht)) def abschied(): print("Tschüss!") if __name__ == "__main__": anrede("Hein","mein Freund!") abschied()
__name__ steht für den Dateinamen. Wenn das Programm ausgeführt wird, ist __name__ gleich __main__. Die Bedingung if __name__ == __main__ bewirkt, dass die folgende Code nur ausgeführt wird, wenn dieses Programm das Hauptprogramm ist, welches aufgerufen wurde. Der zu testende Code wird also nicht ausgeführt, wenn das Modul nach Import in einer anderen Datei ausgeführt wird.
locale
Lokalisierung von Datum und Zeit:
import time, locale locale.setlocale(locale.LC_ALL, '') time = time.strftime('Heute ist %A der %d. %B.') print(time)
Ausgabe: Heute ist Mittwoch der 10. Juli.
time
Aktuelles Datum und Uhrzeit
localtime() gibt Datum und Uhrzeit als Objekt zurück:
>>> lt = time.localtime() >>> print(lt) time.struct_time(tm_year=2019, tm_mon=6, tm_mday=29, tm_hour=21, tm_min=41, tm_sec=20, tm_wday=5, tm_yday=180, tm_isdst=1) >>> print(f"Stunde: {lt[3]}") Stunde: 21
zeit = time.localtime() print(zeit) #print ("Datum: %d.%d.%d"%(zeit[2], zeit[1], zeit[0])) #print ("Uhrzeit: %d:%d:%d"%(zeit[3], zeit[4], zeit[5])) print(f"Datum: {zeit[2]}.{zeit[1]}.{zeit[0]}") print (f"Uhrzeit: {zeit[3]}.{zeit[4]}.{zeit[5]}")
Dauer eines Vorgangs
time.time()gibt die Zeit ab 01. Januar 1970 in Sekunden wieder. Aus der Differenz zwischen zwei Zeitstempeln kann man die Dauer eines Vorgangs berechnen:
>>> import time >>> t1 = time.time() >>> t1 1561833386.9472973 >>> t2 = time.time() >>> t2 1561833416.0354514 >>> print(t2 - t1) 29.088154077529907
asctime() wandelt Zeitangaben in Form eines Tupels mit 9 Elementen (Year, month, day, hour, minute, second, wday, yday, isdst) in ein lesbares Format um (https://www.tutorialspoint.com/python/python_date_time.htm):
>>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0) # Die letzte 0 bedeutet: keine Sommerzeit. 1 = Sommerzeit, neg. Zahl > keine Information) >>> print(time.asctime(zeit)) Fri Dec 28 20:09:04 2019 >>>
asctime() ohne Argumente gibt das aktuelle Datum und die Uhrzeit aus:
>>> import time >>> time.asctime() 'Sat Jun 29 20:42:27 2019'
Datum- und Zeitdaten in der jeweiligen Landessprache: strftime()
Formatiert Datum- und Zeitdaten in der jeweiligen Landessprache.[1]:
import time, locale locale.setlocale(locale.LC_ALL, '') time = time.strftime('Heute ist %A der %d. %B.') print(time)
Ausgabe: Heute ist Mittwoch der 10. Juli.
sleep()
time.sleep() (mit Zeitangabe in Sekunden) bewirkt eine Pause zwischen den Anweisungen.
datetime
Ausgabe der Indexnummer für den aktuellen Wochentag:
import datetime tage = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"] wochentag = datetime.datetime.today().weekday() print ("Heute ist",tage[wochentag])
Jahreszahl ermitteln:
x = datetime.datetime.now() year = x.year
os
Seite aufräumen
Im Terminal von Linux oder Mac:
os.system("clear")
In DOS-Box (cmd)):
os.system("cls")
math
sqrt:
>>> import math >>> math.sqrt(100) 10.0
Weitere Methoden:
sin(), cos(), tan()
calendar
import calendar kalenderblatt = calendar.TextCalendar(calendar.MONDAY) ausgabe = kalenderblatt.formatmonth(2020,12) print(ausgabe)[2]
Gibt den Kalender für Dezember 2020 aus, wobei die Woche mit Montag beginnt.
import calendar kalenderblatt = calendar.LocaleTextCalendar(calendar.MONDAY) ausgabe = kalenderblatt.formatyear(2021, 2, 1, 1, 3) print(ausgabe)[3]
Jahreskalender 2021
Prüfung auf Schaltjahr:
>>> import calendar >>> schaltjahr = calendar.isleap(2020) >>> schaltjahr True
random
Das Modul random erzeugt sogenannte Pseudozufallszahlen.
seed initialisiert den Zufalls-Generator neu.
import random random.seed()
randint:
import random zahl = random.randint(1,1000)
randint() ermittelt eine "zufällige" Ganzzahl (int) aus dem angegebenen Bereich (inklusive Start- und Stoppwert).
choice: wählt ein zufälliges Element aus einer Sequenz:
import random namen = ["Peter","Paul","Maria","Anna"] name1 = random.choice(namen) print(name1) # Ausgabe: Maria
Die Funktion shuffle mischt die Elemente einer Liste:
... random.shuffle(namen) print(namen) # Ausgabe: ['Anna', 'Peter', 'Maria', 'Paul']
Die Ausgangsliste wird verändert.
To shuffle an immutable sequence and return a new shuffled list, use sample(x, k=len(x)) instead.[5]
Die Funktion sample mischt die Elemente einer Liste:
... namen2 = random.sample(namen,3) >>> namen2 = sample(namen,3) >>> print(namen2) # Ausgabe: ['Peter', 'Maria', 'Paul']
sample liefert einen Rückgabewert. Die Ausgangsliste bleibt unverändert.
copy
Man kann einzelne Objekte ebenso wie ganze Listen kopieren.
import copy class Tier: def __init__(self,art,beine,farbe): self.art = art self.beine = beine self.farbe = farbe elsa = Tier("Kuh",4,"schwarzweiß") egon = Tier("Pferd",4,"braun") coq = Tier("Hahn",2,"rot") tierliste1 = [elsa,egon,coq] tierliste2 = copy.copy(tierliste1) print(tierliste1[0].art) # Ausgabe: Kuh tierliste1[0].art = "Zebra" print(tierliste2[0].art) # Ausgabe: Zebra tierliste3 = copy.deepcopy(tierliste1) tierliste1[0].art = "Katze" print(tierliste1[0].art) # Ausgaben: Katze print(tierliste3[0].art) # Ausgabe: Zebra
copy
erstellt eine flache Kopie. Es wird nur das Listenobjekt kopiert, nicht die Objekte in der Liste:
Eine Kopie der Liste samt der darin enthaltenen Objekte erzeugt man mit copy.deepcopy()
.
shutil
Kopieren von Dateien:
import shutil shutil.copy('text01.txt', 'text03.txt')
sys
Beenden der Shell (z. B. in bash oder cmd, nicht aber in IDLE):
import sys sys.exit()
Mit sys.stdin.readline() kann man ähnlich wie mit input eine Zeile Text einlesen. Der Unterschied ist, dass man mit readline die Länge des Strings begrenzen kann:
import sys x = sys.stdin.readline(11) # Eingabe: Das ist ein langer String. print(x) # Ausgabe: Das ist ein
sys.stdout.write funktioniert ähnlich wie print, gibt aber auch die Anzahl der Zeichen aus:
>>> import sys >>> sys.stdout.write("Hallo Leute!") Hallo Leute!12
Die Python-Versionsabfrage kann mit sys.version erfolgen:
>>> print(sys.version) 3.6.8 (default, Jan 14 2019, 11:02:34) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]
Exception-Behandlung:
... except: print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0])
Ausgabe: Folgender Fehler ist aufgetreten: <class 'ValueError'> | Folgender Fehler ist aufgetreten: <class 'ZeroDivisionError'> - je nach erkanntem Fehler
pyperclip
Cross-platform clipboard module for Python.
Installation in Ubuntu:
apt-get install python3-pyperclip
Installation in Windows:
pip install pyperclip
pickle
pickle dient der Serialisierung und Deserialisierung von Objekten. Ein Beispiel für die Anwendung ist die Speicherung von Score-Daten (z. B. Dictionary) in einem Spiel.
In Datei schreiben, hier Beispiel String:
import pickle inhalt = """Text und noch mehr Text""" speichern = open('inhalt.dat', 'wb') pickle.dump(inhalt, speichern) speichern.close()
Datei laden:
import pickle laden = open('inhalt.dat', 'rb') geladen = pickle.load(laden) laden.close() print(geladen) # Anzeige der Klartext-Daten
... und ggf. in eine Textdatei schreiben:
speichern = open('inhalt.txt', 'w') speichern.write(geladen) # schreibt Textdatei speichern.close()
keyword
Überprüfung, ob es sich um ein Schlüsselwort handelt:
>>> import keyword >>> keyword.iskeyword('import') True >>> keyword.iskeyword('export') False >>>
print(keyword.kwlist)
listet die Schlüsselwörter auf.
shapes
pip3 install shapes
playsound
playsound is the most straightforward package to use if you simply want to play a WAV or MP3 file. It offers no functionality other than simple playback.[6]
Installation:
pip install playsound
Beispiel:
from playsound import playsound playsound('pfadangabe/cat.wav')
seaborn
pip install seaborn
packages
Sammlungen von Modulen heißen packages.
Quellen
| |