Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)

Betriebssystemschnittstelle

Funktionen, die mit dem Betriebssystem interagieren

import os

os.getcwd() #Aktuelles Verzeichnis abrufen

os.system('mkdir today') #Befehlsausführung in der Shell auf der Systemseite

Das Modul shutil ist nützlich für die Verwaltung von Dateien und Verzeichnissen


import shutil

shutil.copyfile('data.db', 'archive.db')

shuti.move('/build/executables', 'installdir')

Platzhalter für Dateien

Das Glob-Modul durchsucht das Verzeichnis nach Platzhaltern und gibt eine Liste der Dateien zurück


import glob
glob.glob('*.py')
#.Eine Liste der Dateien, die mit py enden, wird zurückgegeben

Kommandozeilenargumente

Die Argumente, die beim Ausführen des Python-Befehls übergeben werden, werden in sys.argv gespeichert

import sys
print(sys.argv)
#Argumentliste abrufen
#Das 0. Element ist der Dateiname

Andere Module, die Argumente verarbeiten, sind:

Fehlerausgabeumleitung und Programmbeendigung

Verwenden Sie das sys Modul stdin, stdout, stderr

stderr ist nützlich, um Nachrichten anzuzeigen, auch wenn stdout umgeleitet wird

String Pattern Matching

Reguläre Ausdrücke usw. können mit dem Modul "re" implementiert werden


import re

print(re.findall(r'\bf[a-z]*', 'whitch foot or hand fell fastest'))

# ['foot', 'fell', 'fastest']

print(re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat'))

# cat in the hat

Mathematik

Mathematikmodul

import math

math.cos(math.pi / 4)
# 0.7071067811865476

math.log(1024, 2)
# 10.0

zufälliges Modul


import random

random.choice(['apple', 'pear', 'banana'])
#Zufällige Auswahl aus der Liste
# 'apple'

random.sample(range(100), 10)
# range(100)Extrahiere 10 aus(Keine Vervielfältigung)
# [48, 5, 42, 15, 23, 78, 55, 72, 39, 1]

random.random()
#Zufällige Gleitkommazahl
# 0.2785335302723758

random.randrange(6)
# range(6)Zufällig ausgewählte Ganzzahl aus
# 0

Statistikmodul - Statistik finden

import statistics

data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]

statistics.mean(data) #durchschnittlich
# 1.6071428571428572

statistics.median(data) #Median
# 1.25

statistics.variance(data) #Verteilt
# 1.3720238095238095

Weitere numerische Module finden Sie im SciPy-Projekt

https://www.scipy.org/

Zugang zum Internet

from urllib.request import urlopen

with urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl') as response:
    for line in response:
        line = line.decode('utf-8') #Binärdaten in Text dekodieren
        if 'EST' in line or 'EDT' in line: #Finden Sie die östliche Standardzeit
            print(line)


import smtplib

server = smtplib.SMTP('localhost')
server.sendmail('[email protected]', '[email protected]',
    """To: [email protected]
    From: [email protected]

    Beware the Ideas of March.
    """
)

server.quit()

Datum (und Uhrzeit


from datetime import date

now = date.today()

print(now)
# 2019-12-09

print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B."))
# 12-09-19. 09 Dec 2019 is a Monday on the 09 day of December.

birthday = date(1964, 7, 31)
age = now - birthday
print(age.days)
# 20219

Lassen Sie uns den Leistungsunterschied beim Austausch von Variablen messen


from timeit import Timer

time1 = Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()
time2 = Timer('a,b = b,a', 'a=1; b=2').timeit()

print(time1)
# 0.020502762
print(time2)
# 0.018866841999999995

Die Module profile und pstats eignen sich auch zum Messen großer Codeblöcke.

Qualitätsmanagement

Schreiben Sie den Test, wenn Sie die Funktion schreiben, und führen Sie den Test während der Entwicklung aus

Das "doctest" -Modul scannt das Modul und validiert die in die Dokumentzeichenfolge eingebetteten Tests.

Der Test listet häufige Aufrufe und deren Ergebnisse in "docstring" auf

def average(values):
    """Berechnen Sie den arithmetischen Durchschnitt aus einer Liste von Zahlen
    
    >>> print(average([20, 30, 70]))
    40.0
    """
    return sum(values) / len(values)

import doctest

doctest.testmod()
#Eingebettete Tests automatisch validieren


Das Modul "unittest" kann eine umfassendere Reihe von Tests in einer separaten Datei enthalten

import unittest
from doctest_sample import average


class TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        with self.assertRaises(ZeroDivisionError):
            average([])
        with self.assertRaises(TypeError):
            average(20, 30, 70)

unittest.main()

Recommended Posts

Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)
Python-Standardbibliothek: zweite Hälfte (Python-Lernnotiz ⑨)
Python-Klasse (Python-Lernnotiz ⑦)
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Behandlung von Python-Ausnahmen (Python-Lernnotiz ⑥)
Python-Steuerungssyntax, Funktionen (Python-Lernnotiz ②)
Eingabe / Ausgabe mit Python (Python-Lernnotiz ⑤)
Abschnittsplanung Lernnotiz ~ von Python ~
"Scraping & maschinelles Lernen mit Python" Lernnotiz
(Python) Deep Learning Library Chainer-Grundlagen Grundlagen
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python lernen
Python-Memo
Python-Memo
Python & Machine Learning Study Memo: Vorbereitung der Umgebung
Python-Zahlen, Zeichenfolgen, Listentypen (Python-Lernnotiz ①)
[Lernnotiz] Grundlagen des Unterrichts mit Python
Struktur und Betrieb der Python-Daten (Python-Lernnotiz ③)
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
Python & Machine Learning Study Memo ③: Neuronales Netz
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Python 3.6 E-Mail-Bibliothek
[Persönliches Memo] julia - Verwenden Sie die Python-Bibliothek mit julia unter Verwendung von PyCall
LPIC201 Studiennotiz
Erster Python
[Python] Lernnotiz 1
Python ast Bibliothek
Erster Python 3 ~ Erster Vergleich ~
Python-Anfänger-Memo (9.2-10)
Python-Lernnotizen
Django Lernnotiz
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Python-Anfänger-Memo (9.1)
Python-Lernausgabe
[Python] Standardeingabe
Python-Lernseite
★ Memo ★ Python Iroha
Erster Python
Python-Bibliothek zur Phrasen- / Syntaxanalyse (erste Umfrage 2014.11, teilweise Hinzufügung 2019.10)
Python Deep Learning
Python 3-Operator-Memo
Unerwartet unbekannt !? Python Standard Library Function Groupby
Python Library Hinweis
Python-Lernen (Ergänzung)
Erste Python ~ Codierung 2 ~
Hinweis zum Ausprobieren von Juniper JUNOS PyEz (Python-Bibliothek) 1 ~ PyEz Übersicht ~
Deep Learning × Python
[Memo] Maschinelles Lernen
[Mein Memo] Python
Python3-Metaklassen-Memo
[Python] Grundkarten-Memo
progate Python-Lernnotiz (von Zeit zu Zeit aktualisiert)
Python-Anfänger-Memo (2)
Python-Lernnotizen
[Python] Numpy Memo