Python: Module: Unterschied zwischen den Versionen

Aus Flinkwiki
Wechseln zu: Navigation, Suche
(time)
(time)
Zeile 71: Zeile 71:
 
(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>:
 
(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>
 
  <nowiki>
>>> zeit = (2019, 12, 28, 20, 9, 4, 4, 362, 0)
+
>>> 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))
 
>>> print(time.asctime(zeit))
 
Fri Dec 28 20:09:04 2019
 
Fri Dec 28 20:09:04 2019

Version vom 29. Juni 2019, 21:56 Uhr

Seitenübersicht
Zur Seite "Python"
Zur Seite "Python: Klassen"
Zur Seite "Python: Turtle"
Zur Seite "Python: Tkinter"
Zur Seite "Python: pygame"


Allgemeines

Ein Modul ist eine Datei, die 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

Die Dateien für die externen Module sind in der lokalen Python-Installation hinterlegt. Beispiel für Ubuntu (je nach Python-Version):

/usr/lib/python3.6/

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.


time


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'

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


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

sin, cos, tan



random

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']

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: Kurh
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]]

pyperclip

Cross-platform clipboard module for Python.

Installation in Ubuntu:

apt-get install python3-pyperclip

Installation in Windows:

pip install pyperclip

Quellen


| |