Python3 Spickzettel (Basic)

Inhalt dieses Artikels

  1. Python-Grundlagen
  2. Kontrollstruktur
  3. Datenstruktur
  4. Funktion
  5. Klasse / Instanz
  6. Modul / Paket / Namespace / Bereich
  7. Eingebaute Funktionen / spezielle Methoden
  8. Dateivorgänge und Eingabe / Ausgabe

1. Python-Grundlagen

Grundlegende Grammatik

Einzug


import os
def function():
    #Einzug ist PEP8(*)Entsprechend 4 halbbreiten Räumen
    print('Hello world')

(*)PEP8(Python Enhancement Proposal) https://www.python.org/dev/peps/pep-0008/ Indentation Use 4 spaces per indentation level.

Variable Aussage


#Numerischer Wert
num = 1
#String
name = 'Tanaka'
#aufführen
list = [1, 2, 3, 4, 5]

#Explizite Typdeklaration
num: int = 1
name: str = 'Tanaka'

#Typkonvertierung
old_num = '1' #Zeichenfolgentyp
new_num = int(num) #In Integer-Typ konvertieren und neu_Zuweisen zu num

Kommentar


 #Zeile für Zeile Kommentar

"""
Mehrere Zeilen
sammeln
Kommentar
"""

Docstring


def test_function(param1, param2):
    """Test, der zwei Argumente hinzufügt und zurückgibt_function
    
    Args:
        param1(int):Erklärung des ersten Arguments
        param2(int):Erklärung des zweiten Arguments
    
    Returns:
Gibt das Additionsergebnis von param1 und param2 zurück
    """
    return param1 + param2

Numerische Manipulation

Numerische Berechnung


#Addition von ganzen Zahlen
>>> 1 + 1
2

#Ganzzahlige Subtraktion
>>> 2 - 1
1

#Ganzzahlen multiplizieren
>>> 5 * 6
30

#Teilen einer ganzen Zahl * Das Teilen gibt immer einen Gleitkomma zurück
>>> 6 / 5
1.2

#Die Bewertungsreihenfolge entspricht der Mathematik
>>> 50 - 5 * 6
20
>>> (50 - 5 * 6) / 4
5.0

#Standard Division gibt float zurück
>>> 17 / 3
5.666666666666667

# 「//": Rundungsdivision rundet nach dem Dezimalpunkt ab
>>> 17 // 3
5

# 「%": Gibt den Rest zurück (Rest der Teilung)
>>> 17 % 3
2
>>> 

#5 im Quadrat
>>> 5 ** 2
25
#2 bis zur 7. Potenz
>>> 2 ** 7
128

#Rund nach dem Dezimalpunkt(Nach dem Dezimalpunkt um 2 Stellen runden)
>>> pie = 3.1415926535
>>> pie
3.1415926535
>>> round(pie, 2)
3.14

Strings manipulieren

String


#Umgeben Sie mit einem einfachen Anführungszeichen
>>> print('Hello world')
Hello world

#Mit doppelten Anführungszeichen umgeben
>>> print("Hello world")
Hello world

#Als Zeichenkette "'Beim Benutzen(Mit doppelten Anführungszeichen umgeben)
>>> print("I'm from Japan.")
I'm from Japan.
'
#Als Zeichenkette "'Beim Benutzen(Flucht)
>>> print('I\'m from Japan.')
I'm from Japan.
'
#Beginnen Sie mit einer neuen Zeile(\n)
>>> print('Hello! \nHow are you doing?')
Hello! 
How are you doing?

#Verhindern Sie die Interpretation als Sonderzeichen(「\Da der Teil "n" als Zeilenumbruch interpretiert wird, wird er als Rohdaten verarbeitet.)
>>> print(r'C:\name\name')
C:\name\name

#Mehrzeiliger Ausgang(「"""Umgeben von)
>>> print("""
... line1
... line2
... line3
... """)

line1
line2
line3

#Nicht kaputtmachen(「\Beschreiben)
>>> print("""\
... line1
... line2
... line3\
... """)
line1
line2
line3

#Zeichen wiederholen
>>> print('Yes.' * 3 + '!!!')
Yes.Yes.Yes.!!!

#String-Verkettung(Literale sind "+Ist OK ohne)
>>> print('Py''thon')
Python

#String-Verkettung(Variable+Das wörtliche ist "+"Ist notwendig)
>>> prefix = 'Py'
>>> print(prefix + 'thon')
Python

String-Index/Schneiden



#Variablendefinition
>>> word = 'Python'

#Holen Sie sich das Zeichen an die 0. Position des Wortes
>>> print(word[0])
P

#Bringen Sie den Charakter an die 5. Stelle des Wortes
>>> print(word[5])
n

#Holen Sie sich das Zeichen an die erste Position am Ende des Wortes(Von Anfang an 0,1,2 ... vom Ende-1,-2,-3 ...)
>>> print(word[-1])
n

#Holen Sie sich das Zeichen an der dritten Position vom Ende des Wortes(Von Anfang an 0,1,2 ... vom Ende-1,-2,-3 ...) 
>>> print(word[-3])
h

#Wort 0(Einschließlich 0)Ab 2(2 ist nicht enthalten)Holen Sie sich Zeichen auf die Position von
>>> print(word[0:2])
Py

#Wort 2(2 einschließlich)Ab 5(5 nicht enthalten)Holen Sie sich Zeichen auf die Position von
>>> print(word[2:5])
tho

#2 vom Wortanfang(2 einschließlich)Holen Sie sich Zeichen auf die Position von
>>> print(word[:2])
Py

#Wort 2(2 einschließlich)Holen Sie sich den Charakter von der Position bis zum Ende
>>> print(word[2:])
thon

#Holen Sie sich die Zeichen vom Anfang bis zum Ende des Wortes
>>> print(word[:])
Python

Methode in Bezug auf Zeichen


#String s definieren
>>> s = 'Hello Tom. How are you doing.'
>>> print(s)
Hello Tom. How are you doing.

#Überprüfen Sie, ob die Zeichenfolge eine bestimmte Zeichenfolge enthält
>>> print(s.startswith('Hello'))
True
>>> print(s.startswith('Tom'))
False

#Bestimmte Zeichen in der Zeichenfolge(oder Zeichenkette)Überprüfen Sie die Position wo(Von Anfang an)
>>> print(s.find('o'))
4

#Bestimmte Zeichen in der Zeichenfolge(oder Zeichenkette)Überprüfen Sie die Position wo(Vom Ende)
>>> print(s.rfind('o'))
24

#Bestimmte Zeichen in der Zeichenfolge enthalten(oder Zeichenkette)Überprüfen Sie die Anzahl der
>>> print(s.count('o'))
5

#Konvertieren Sie den ersten Buchstaben der Zeichenfolge in Großbuchstaben
>>> print(s.capitalize())
Hello tom. how are you doing.

#Konvertieren Sie den ersten Buchstaben jedes Wortes in der Zeichenfolge in Großbuchstaben
>>> print(s.title())
Hello Tom. How Are You Doing.

#Konvertieren Sie Zeichenfolgen in Großbuchstaben
>>> print(s.upper())
HELLO TOM. HOW ARE YOU DOING.

#String in niedriger konvertieren
>>> print(s.lower())
hello tom. how are you doing.

#Ersetzen Sie eine bestimmte Zeichenfolge
>>> print(s.replace('Tom', 'Bob'))
Hello Bob. How are you doing.

2. Kontrollstruktur

Bedingte Verzweigung (if-Anweisung)

Bedingte Verzweigung(if-Anweisung)


wenn bedingter Ausdruck 1:
Verarbeitung, die ausgeführt werden soll, wenn der bedingte Ausdruck 1 wahr ist
elif bedingter Ausdruck 2:
Verarbeitung, die ausgeführt werden soll, wenn der bedingte Ausdruck 1 falsch und der bedingte Ausdruck 2 wahr ist
else:
Verarbeitung, die ausgeführt werden soll, wenn alle bedingten Ausdrücke falsch sind

--if wird in der Reihenfolge von oben ausgewertet und die Verarbeitung der ersten true-Klausel ausgeführt. Wenn der bedingte Ausdruck 1 wahr ist, wird die Verarbeitung des bedingten Ausdrucks 2 nicht ausgeführt, selbst wenn das Ergebnis des bedingten Ausdrucks 2 wahr ist.

Ein Wert, der im bedingten Ausdruck falsch ist


- None
- False
-Numerischer Typ Null, 0, 0.0 、 0j(Komplexe Zahl)
-Leeren Sie Objekte von Containerobjekten wie Zeichenfolgen, Listen, Wörterbücher, Mengen usw.
-Methode__bool__()Gibt False zurück
-Methode__bool__()Ist nicht definiert und die Methode__len__()Objekt, das 0 zurückgibt

Numerischer Vergleich


#Richtig, wenn gleichwertig
>>> 1 == 1
True

#Richtig, wenn nicht gleichwertig
>>> 1 != 1
False

#Richtig, wenn die linke Seite groß ist
>>> 1 > 0
True

#Richtig, wenn die rechte Seite groß ist
>>> 1 < 0
False

#True, wenn die linke Seite groß oder gleichwertig ist
>>> 1 >= 0
True

#Richtig, wenn die rechte Seite groß oder gleichwertig ist
>>> 1 <= 0
False

# x < y and y <Entspricht z
>>> x, y, z = 1, 2, 3
>>> x < y < z
True

Objektvergleich


>>> x = 'red'
>>> y = 'green'

#Richtig, wenn gleichwertig
>>> x == y
False

#Richtig, wenn nicht gleichwertig
>>> x != y
True

#True für dasselbe Objekt
>>> x is None
False

#True, wenn nicht dasselbe Objekt
>>> x is not None
True

>>> items = ['pen', 'note', 'book']

#In Artikeln'book'True wenn enthalten ist
>>> 'book' in items
True

#In Artikeln'note'True, wenn nicht enthalten
>>> 'note' not in items
False

Schleife (für Anweisung)

zur Aussage


>>> items = [1, 2, 3]
>>> for i in items:
...     print(f'Der Wert der Variablen i ist{i}')
... 
Der Wert der Variablen i ist 1
Der Wert der Variablen i ist 2
Der Wert der Variablen i ist 3

# range()Funktion
>>> for i in range(3):
...     print(f'{i}Zweiter Prozess')
... 
0. Prozess
Erster Prozess
Zweiter Prozess

# enumerate()Funktion
>>> chars = 'word'
>>> for count, char in enumerate(chars):
...     print(f'{count}Das zweite Zeichen ist{char}')
... 
Das 0. Zeichen ist w
Der erste Buchstabe ist o
Das zweite Zeichen ist r
Das dritte Zeichen ist d

#Wörterbuchschleife(items()Methode)
>>> sports = {'baseball': 9, 'soccer': 11, 'tennis': 2}
>>> for k, v in sports.items():
...     print(k, v)
... 
baseball 9
soccer 11
tennis 2

#Gleichzeitige Schleife zweier Sequenzen(zip()Funktion)
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue' ]
>>> for q, a in zip(questions, answers):
...     print('What is your {0}?  It is {1}.'.format(q, a))
... 
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.

Verhalten der else-Klausel der for-Anweisung


>>> nums = [2, 4, 6, 8]
>>> for n in nums:
...     if n % 2 == 1:
...         break
... else:
...     print('Es gibt keine ungeraden')
... 
Es gibt keine ungeraden

Ausnahmebehandlung

try-Anweisung


try:
Verarbeitung, die eine Ausnahme verursachen kann
mit Ausnahme der Ausnahmeklasse, die Sie abfangen möchten:
Was passiert, wenn die Ausnahme auftritt, die Sie abfangen möchten?
else:
Verarbeitung, die nur ausgeführt wird, wenn keine Ausnahme auftritt
finally:
Der Prozess, den Sie ausführen möchten, unabhängig davon, ob eine Ausnahme auftritt

--try-Klausel: Beschreiben Sie die Verarbeitung, die eine Ausnahme zwischen den try-exception-Klauseln verursachen kann.

try-außer Klausel


#Greifen Sie auf ein Element zu, das kein Array enthält, lösen Sie eine Ausnahme aus und fangen Sie es in der Except-Klausel ab.
>>> l = [1, 2, 3]
>>> i = 5
>>> try:
...     l[i]
... except:
...     print('It is no problem')
... 
It is no problem

#Fangen Sie eine bestimmte Ausnahme in der Ausnahmeklausel ab
>>> try:
...     l[i]
... except IndexError:
...     print('You got an IndexError')
... 
You got an IndexError

#Geben Sie die Ursache der Ausnahme aus
>>> try:
...     l[i]
... except IndexError as ex:
...     print('You got an IndexError : {}'.format(ex))
... 
You got an IndexError : list index out of range

#Fange alle Ausnahmen ab
>>> try:
...     () + l
... except IndexError:
...     print('You got an IndexError')
... except BaseException as ex:
...     print('You got an Exception : {}'.format(ex))
... 
You got an Exception : can only concatenate tuple (not "list") to tuple

Ausnahmeklassenhierarchie https://docs.python.org/ja/3/library/exceptions.html#exception-hierarchy

--else-Klausel: Beschreiben Sie die Verarbeitung, die ausgeführt werden soll, wenn in der else-Klausel keine Ausnahme auftritt.

sonst Klausel


#Beschreiben Sie die Verarbeitung, die ausgeführt werden soll, wenn in der else-Klausel keine Ausnahme auftritt.
>>> try:
...     1 + 1
... except BaseException:
...     print('You got an Exception.')
... else:
...     print('There are no Exceptions!')
... 
2
There are no Exceptions!

--finally-Klausel: Beschreiben Sie in der finally-Klausel den auszuführenden Prozess, unabhängig davon, ob eine Ausnahme auftritt oder nicht.

Endlich Klausel


#Beschreiben Sie in der finally-Klausel den auszuführenden Prozess, unabhängig davon, ob eine Ausnahme auftritt oder nicht.
>>> try:
...     raise NameError('It is a NameError!!!')
... except NameError as ne:
...     print(ne)
... finally:
...     print('NameError Program finished!!!')
... 
It is a NameError!!!
NameError Program finished!!!
Eine Ausnahme auslösen (absichtliche Ausnahme)

Aussage erheben


#Sie können eine Ausnahme erneut auslösen, indem Sie einfach Raise erwähnen. (Wenn Sie wissen möchten, wie eine Ausnahme gesendet wird, diese jedoch nicht sofort verarbeitet wird)
>>> try:
...     raise NameError('It is a NameError!!!')
... except NameError:
...     print('Name Error.')
...     raise
... 
Name Error.
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
NameError: It is a NameError!!!

3. Datenstruktur

Listentyp

Listentyp


#Definition der Liste "l"
>>> l = [1, 2, 3, 4, 5]
>>> print(l)
[1, 2, 3, 4, 5]

#Holen Sie sich ein bestimmtes Element der Liste
>>> print(l[0])
1 
>>> print(l[-1])
5

#Dritter vom Anfang der Liste(0., 1., 2 ..)Bis zum Element von(Enthält nicht die dritte)Erhalten
>>> print(l[:3])
[1, 2, 3]

#Dritter vom Ende der Liste(3 beinhaltet)Vom Element zum Ende gelangen
>>> print(l[-3:])
[3, 4, 5]

#Holen Sie sich alle Elemente der Liste
>>> print(l[:])
[1, 2, 3, 4, 5]

#Beitrittsliste
>>> l2 = [6, 7, 8, 9, 10]
>>> print(l + l2)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#Listenelemente ändern
>>> l[2] = 300
>>> print(l)
[1, 2, 300, 4, 5]

Liste bearbeiten

Liste bearbeiten



#Listenelemente hinzufügen(Am Ende hinzufügen)
>>> l.append(600)
>>> print(l)
[1, 2, 300, 4, 5, 600]

#Listenelemente hinzufügen(Am Anfang hinzufügen: Fügen Sie "0" zum 0. Index hinzu)
>>> l.insert(0, 0)
>>> print(l)
[0, 1, 2, 300, 4, 5, 600]

#Listenelemente abrufen(Holen Sie sich das letzte Element, verschwinden Sie aus der Liste)
>>> l.pop()
600
>>> print(l)
[0, 1, 2, 300, 4, 5]

#Listenelement abrufen (0. Element löschen, aus Liste verschwinden)
>>> l.pop(0)
0
>>> print(l)
[1, 2, 300, 4, 5]

#Listenelemente löschen(Löschen Sie das zweite Element)
>>> del l[2]
>>> print(l)
[1, 2, 4, 5]

#Liste löschen (gesamte Liste löschen)
>>> del l
>>> print(l)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'l' is not defined

#Löschen Sie alle Elemente der Liste (löschen Sie die Liste nicht)
>>> print(l)
[['A', 'B', 'C'], [1, 2, 3]]
>>> l.clear()
>>> print(l)
[]

#Löscht Elemente, die dem angegebenen Wert in der Liste entsprechen
>>> l = [0, 1, 2, 3, 3, 3, 4, 5]
>>> l.remove(3)
>>> print(l)
[0, 1, 2, 3, 3, 4, 5]

#Löschen Sie das Element, das dem angegebenen Wert in der Liste entspricht (ein Fehler tritt auf, wenn kein übereinstimmendes Element vorhanden ist).
>>> l.remove(3)
>>> l.remove(3)
>>> l.remove(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
>>> print(l)
[0, 1, 2, 4, 5]

#Holen Sie sich die Anzahl der Elemente in der Liste
>>> print(len(l))
5

#Verschachtelungslisten (Erstellen von Listen mit Listen als Elementen)
>>> l1 = ['A', 'B', 'C']
>>> l2 = [1, 2, 3]
>>> l = [l1, l2]
>>> print(l)
[['A', 'B', 'C'], [1, 2, 3]]

#Index mit dem angegebenen Wert abgleichen (Fehler, wenn Element nicht vorhanden ist)
>>> l = [1, 2, 3, 4, 5]
>>> l.index(3)
2
>>> l.index(6)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 6 is not in list

#Ermitteln Sie die Anzahl der Elemente, die dem angegebenen Wert entsprechen
>>> l.count(4)
1

#Listenelemente in umgekehrter Reihenfolge ändern
>>> print(l)
[1, 2, 3, 4, 5]
>>> l.reverse()
>>> print(l)
[5, 4, 3, 2, 1]

#Sortieren Sie die Elemente der Liste in aufsteigender Reihenfolge
>>> l = [4, 5, 2, 1, 3]
>>> print(l)
[4, 5, 2, 1, 3]
>>> l.sort(key=None, reverse=False)
>>> print(l)
[1, 2, 3, 4, 5]

#Sortieren Sie die Elemente der Liste in absteigender Reihenfolge
>>> l = [4, 5, 2, 1, 3]
>>> print(l)
[4, 5, 2, 1, 3]
>>> l.sort(key=None, reverse=True)
>>> print(l)
[5, 4, 3, 2, 1]

#In einer durch bestimmte Zeichen getrennten Liste speichern
>>> s = 'Hi, Tom. How are you doing?'
>>> print(s.split(' '))
['Hi,', 'Tom.', 'How', 'are', 'you', 'doing?']
>>> print(s.split('.'))
['Hi, Tom', ' How are you doing?']

Taple-Typ

Taple-Typ



#Tupple-Erklärung(Definiert als Tapple mit oder ohne Klammern)
>>> t = (1, 2, 3, 4, 5)
>>> print(t)
(1, 2, 3, 4, 5)

>>> t2 = 1, 2, 3
>>> print(t2)
(1, 2, 3)

#Tapple-Erklärung (am Ende der Definition "",Beachten Sie, dass es als Taple definiert ist, falls vorhanden
#Auch wenn es nur ein Element gibt, ",Es ist notwendig zu beschreiben.
>>> t3 = 1,
>>> t3
(1,)
>>> type(t3)
<class 'tuple'>

#Im Gegensatz zu Listen können Taples ihre Werte nicht ändern
>>> t[0] = 100
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

#Speichern Sie die Liste in einem Taple und ändern Sie den Wert der Liste
>>> t = ([1, 2, 3], [4, 5, 6])
>>> t
([1, 2, 3], [4, 5, 6])
>>> t[0][0]
1
>>> t[0][0] = 100
>>> t
([100, 2, 3], [4, 5, 6]) 

Taple auspacken



#Weisen Sie den Wert des Taples einer Variablen zu
>>> t = (1, 2, 3)
>>> t
(1, 2, 3)
>>> x, y, z = t
>>> print(x, y, z)
1 2 3

#Wirksam beim Austausch der Werte bestimmter Variablen usw.
>>> X = 100
>>> Y = 200
>>> print(X, Y)
100 200
>>> X, Y = Y, X
>>> print(X, Y)
200 100

Wörterbuchtyp (Wörterbuchtyp)

Wörterbuchtyp (Wörterbuchtyp)



#Deklaration des Wörterbuchtyps (Wörterbuchtyp) ①
>>> d = {'x': 10, 'y': 20, 'z': 30}
>>> d
{'x': 10, 'y': 20, 'z': 30}

#Deklaration des Wörterbuchtyps (Wörterbuchtyp) ②
>>> dict(a=100, b=200, c=300)
{'a': 100, 'b': 200, 'c': 300}

#Abrufen des Werts eines bestimmten Schlüssels vom Wörterbuchtyp (Wörterbuchtyp)
>>> d['y']
20

#Hinzufügen von Schlüsseln und Werten zum Wörterbuchtyp (Wörterbuchtyp)
>>> d['a'] = 40
>>> d
{'x': 10, 'y': 20, 'z': 30, 'a': 40}

#Löschen bestimmter Schlüssel des Wörterbuchtyps (Wörterbuchtyp)
>>> del d['a']
>>> d
{'x': 10, 'y': 20, 'z': 30}

Operation "Wörterbuchtyp" (Wörterbuchtyp)

Operation "Wörterbuchtyp" (Wörterbuchtyp)



#Erfassung der Schlüsselliste des Wörterbuchtyps (Wörterbuchtyp)
>>> d
{'x': 10, 'y': 20, 'z': 30}
>>> d.keys()
dict_keys(['x', 'y', 'z'])
>>> list(d.keys())
['x', 'y', 'z']

#Aktualisierung des Wörterbuchtyps (Wörterbuchtyp) (Kombination)
#Aktualisieren Sie den Wert für den Artikel mit dem Schlüssel, fügen Sie den Schlüssel und den Wert für den Artikel ohne Schlüssel hinzu
>>> d
{'x': 10, 'y': 20, 'z': 30}
>>> d2
{'x': 100, 'a': 1, 'b': 2}
>>> d.update(d2)
>>> d
{'x': 100, 'y': 20, 'z': 30, 'a': 1, 'b': 2}

#Holen Sie sich den Wert eines bestimmten Schlüssels
>>> d.get('x')
100

#Abrufen des Werts eines bestimmten Schlüssels (der abgerufene Schlüssel und der abgerufene Wert sind nicht mehr in der Wörterbuchdefinition enthalten).
>>> d
{'x': 100, 'y': 20, 'z': 30, 'a': 1, 'b': 2}
>>> d.pop('a')
1
>>> d.pop('b')
2
>>> d
{'x': 100, 'y': 20, 'z': 30}

#Überprüfen Sie, ob ein bestimmter Schlüssel im Wörterbuch enthalten ist
>>> d
{'x': 100, 'y': 20, 'z': 30}
>>> 'x' in d
True

einstellen

Typ einstellen


>>> items = {'note', 'notebook', 'pen'}
>>> type(items)
<class 'set'>
>>> items
{'notebook', 'note', 'pen'}

#Doppelte Elemente werden eins sein
>>> items = {'note', 'notebook', 'pen', 'pen', 'note'}
>>> items
{'notebook', 'note', 'pen'}

#Element hinzufügen
>>> items.add('book')
>>> items
{'notebook', 'note', 'pen', 'book'}

#Element löschen
>>> items.remove('pen')
>>> items
{'notebook', 'note', 'book'}

#Extrahieren Sie Elemente und löschen Sie sie aus dem Set
#Da es keine Reihenfolge gibt, sind die abzurufenden Elemente unbestimmt
>>> items.pop()
'notebook'
>>> items
{'note', 'book'}

gefrorener Set-Typ


>>> items = frozenset(['note', 'notebook', 'pen'])
>>> type(items)
<class 'frozenset'>

>>> items
frozenset({'notebook', 'note', 'pen'})

#Kann nicht geändert werden, da es sich um einen unveränderlichen Typ handelt
>>> items.add('book')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'add'

Berechnung einstellen


>>> set_a = {'note', 'notebook', 'pen'}
>>> set_b = {'note', 'book', 'file'}

#Summensatz
>>> set_a | set_b
{'notebook', 'note', 'file', 'book', 'pen'}
>>> set_a.union(set_b)
{'notebook', 'note', 'file', 'book', 'pen'}

#Differenz gesetzt
>>> set_a - set_b
{'notebook', 'pen'}
>>> set_a.difference(set_b)
{'notebook', 'pen'}

#Produktset
>>> set_a & set_b
{'note'}
>>> set_a.intersection(set_b)
{'note'}

#Symmetrieunterschied
>>> set_a ^ set_b
{'notebook', 'book', 'file', 'pen'}
>>> set_a.symmetric_difference(set_b)
{'notebook', 'book', 'file', 'pen'}

#Beurteilung, ob es sich um eine Teilmenge handelt
>>> {'note', 'pen'} <= set_a
True
>>> {'note', 'pen'}.issubset(set_a)
True

Einschlussnotation

Listeneinschlussnotation(Liste erstellen)


#Erstellen einer Liste mit der for-Anweisung
>>> numbers = []
>>> for i in range(10):
...     numbers.append(str(i))
... 
>>> numbers
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

#Erstellen einer Liste mit Listeneinschlussnotation
>>> [str(v) for v in range(10)]
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

#Inklusive Notation der verschachtelten Liste
#Beschreibung mit for-Anweisung
>>> tuples = []
>>> for x in [1, 2, 3]:
...     for y in [4, 5, 6]:
...         tuples.append((x, y))
... 
>>> tuples
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

#Erstellen einer verschachtelten Liste mithilfe der Listeneinschlussnotation
>>> [(x, y) for x in [1, 2, 3] for y in [4, 5, 6]]
[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

#Einschlussnotation mit if-Anweisung
#Beschreibung mit for-Anweisung
>>> even = []
>>> for i in range(10):
...     if i % 2 == 0:
...         even.append(i)
... 
>>> even
[0, 2, 4, 6, 8]

#Beschreibung mit Einschlussnotation
>>> [x for x in range(10) if x % 2 == 0]
[0, 2, 4, 6, 8]

4. Funktion

Funktionsdefinition


#Funktionsdefinition (kein Argument)
>>> def say_hello():
...     print('Hello')
... 
>>> say_hello()
Hello

#Funktionsdefinition (mit Argumenten)
>>> def say_something(str):
...     print(str)
... 
>>> say_something('Good morning')
Good morning

#Funktionsdefinition (mit Argumenten, mit Standardargumenten)
>>> def say_something(str='Hi!'):
...     print(str)
... 
#Wenn kein Argument angegeben wird, wird das Standardargument verwendet
>>> say_something()
Hi!
#Wenn ein Argument angegeben wird, wird dieses Argument verwendet.
>>> say_something('Hello')
Hello

#Funktionsdefinition (mit Rückgabewert)
>>> def increment(num):
...     return num + 1
... 
>>> increment(1)
2

--Wenn die return-Anweisung in der Funktion ausgeführt wird, endet die Verarbeitung dort, sodass die nachfolgende Verarbeitung nicht ausgeführt wird.

Funktionsargumente


#Positionsargument->In Variablen in der Reihenfolge gespeichert, in der sie beim Aufrufen der Funktion übergeben wurden(Fehler, wenn die Anzahl der Argumente unterschiedlich ist)
>>> def increment(num1, num2):
...     return num1 + num2
... 
>>> increment(2, 4)
6

#Schlüsselwortargument->Geben Sie beim Aufruf Schlüsselwortargumente an(Die Reihenfolge spielt keine Rolle)
>>> def greeting(name, str):
...     print(str + ', ' + name + '!')
... 
>>> greeting(str='Hello', name='Tom')
Hello, Tom!

#Standardargument->Für das formale Argument kann ein Standardwert angegeben werden (das formale Argument mit dem Standardwert muss jedoch nach dem formalen Argument ohne den Standardwert beschrieben werden).
>>> def greeting(name, str='Hi'):
...     print(str + ', ' + name + '!')
... 
>>> greeting('Tom')
Hi, Tom!

#Positionsargument mit variabler Länge->Kann beliebig viele Argumente akzeptieren (angegebene Position befindet sich am Ende des Positionsarguments und vor dem Argument mit dem Standardwert)
>>> def say_something(name, *args):
...     for str in args:
...         print("I'm " + name + ". " + str + "!")
... 
>>> say_something('Tom', 'Hello', 'Hi', 'Good morning')
I'm Tom. Hello!
I'm Tom. Hi!
I'm Tom. Good morning!
'

#Schlüsselwortargument mit variabler Länge->Empfängt Schlüsselwortargumente, die formalen Argumenten im Wörterbuchtyp nicht zugewiesen wurden (angegebene Position ist die letzte)
>>> def print_birthday(family_name, **kwargs):
...     print("Birthday of " + family_name + " family")
...     for key, value in kwargs.items():
...         print(f'{key}: {value}')
... 
>>> print_birthday('Smith', Nancy='1990/1/1', Tom='1993/1/1', Julia='2010/1/1')
Birthday of Smith family
Nancy: 1990/1/1
Tom: 1993/1/1
Julia: 2010/1/1

#Positions- und Schlüsselwortargumente mit variabler Länge->Kann jeden Argumentaufruf verarbeiten
>>> def say_something(*args, **kwargs):
...     for s in args:
...         print(s)
...     for key, value in kwargs.items():
...         print(f'{key}: {value}')
... 
>>> say_something('Hello', 'Hi', 'Bye', Nancy='29 years old', Tom='26 years old')
Hello
Hi
Bye
Nancy: 29 years old
Tom: 26 years old

#Nur-Schlüsselwort-Argument->Argumente, für die beim Aufruf ein formaler Argumentname erforderlich ist
# 「*Nur Schlüsselwörter sind Argumente nach "
>>> def increment(num, lsat, *, ignore_error=False):
...     pass
... 
#Bei einem Positionsargument tritt ein Fehler auf
>>> increment(1, 2, True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: increment() takes 2 positional arguments but 3 were given
#Kann nur mit Schlüsselwortargumenten angegeben werden
>>> increment(1, 2, ignore_error=True)
>>> 

#Nur Argument positionieren->Argumente, für die zum Zeitpunkt des Aufrufs kein formaler Argumentname angegeben werden kann
# 「/Nur die Position ist das Argument vor. Wenn in der abs-Funktion ein formaler Argumentname angegeben wird, tritt ein Fehler auf.
>>> help(abs)
abs(x, /)
    Return the absolute value of the argument.
>>> abs(x=-1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abs() takes no keyword arguments

Argumentliste entpacken


#Übergeben Sie den in der Liste gespeicherten Wert als Argument
>>> def greeting(x, y, z):
...     print(x)
...     print(y)
...     print(z)
... 
>>> contents = ['Hello', 'Good morning', 'Bye']
#Beim Aufrufen einer Funktion "*Erweitern Sie Argumente aus der Liste mit dem Operator
>>> greeting(*contents)
Hello
Good morning
Bye

#Übergeben Sie den im Wörterbuch gespeicherten Wert als Argument
>>> def say_something(name, greeting):
...     print(name)
...     print(greeting)
... 
>>> dict = {'greeting': 'Hello'}
#Beim Aufrufen einer Funktion "**Erweitern Sie Argumente aus dem Wörterbuch mit dem Operator
>>> say_something('Julia', **dict)
Julia
Hello

Lambda-Ausdruck

Lambda-Ausdruckssyntax


Lambda-Argument 1,Argument 2,Argument 3, ...:Ausdruck, der zum Rückgabewert wird

Beispiel für einen Lambda-Ausdruck


>>> increment = lambda num1, num2: num1 + num2
>>> increment(1, 2)
3

#Synonym zu
>>> def increment(num1, num2):
...     return num1 + num2
... 
>>> increment(1, 2)
3

#Es bleiben nur diejenigen übrig, deren erste Argumentfunktion wahr ist.
>>> nums = ['one', 'two', 'three']
>>> filterd = filter(lambda x: len(x) == 3, nums)
>>> list(filterd)
['one', 'two']

Tipp Hinweis

Syntax zur Angabe von Typinformationen


def Funktionsname(arg1:Art von arg1, arg2:Art von arg2, ...) ->Rückgabetyp:
    #Der Prozess, den Sie mit der Funktion ausführen möchten
return Rückgabewert

>>> def say_something(name: str, age: int) -> str:
...     print(name)
...     print(age)
...     return name
... 
>>> say_something('Tom', 29)
Tom
29
'Tom'

5. Klasse / Instanz

Klassendefinition

Klassendefinition


Klasse Klassenname(Name der Basisklasse):
def Methodenname(Argument 1,Argument 2, ...):
Der Prozess, den Sie in der Methode ausführen möchten
return Rückgabewert

>>> class Person(object):
...     def say_something(self):
...         print('Hello!!!')
... 
#Klasse instanziieren
>>> person = Person()
#Aufruf der Instanzmethode
>>> person.say_something()
Hello!!!

Instanzinitialisierung

Instanzinitialisierung


 >>> class Person:
...     def __init__(self):
...         print('Init completed!')
...     def say_something(self):
...         print('Hello!!!')
... 
#Initialisierungsprozess beim Erstellen einer Instanz(__init__Verarbeitung definiert in)Wird genannt
>>> person = Person()
Init completed!
>>> person.say_something()
Hello!!!

Eigentum

@property(setter)


>>> class Person:
...     @property
...     def name(self):
...         return self._name
...     @name.setter
...     def name(self, name):
...         self._name = name
... 
>>> person = Person()
>>> person.name = 'Tom'
>>> person.name
'Tom'

--Attribut beginnend mit Unterstrich (_name): Drückt aus, dass es sich um ein privates Attribut handelt.

Klassenvererbung

Klassenvererbung


>>> class Person:
...     def greeting(self):
...         print('Hello')
...     def say_something(self):
...         print('I am human')
... 
>>> class Man(Person):
...     #Methodenüberschreibung
...     def say_something(self):
...         print('I am a man')
... 
>>> man = Man()
>>> man.say_something()
I am a man
#Basisklasse(Personenklasse)Methode ist ebenfalls verfügbar
>>> man.greeting()
Hello 

6. Modul / Paket / Namespace / Bereich

Modul

Erstellen eines Moduls (Modulname: Beispiel.py)


import sys

def say_something_upper(s):
    #In Großbuchstaben konvertieren
    upper_s = s.upper()
    return upper_s

str = sys.argv[1]
print(say_something_upper(str))

Modul(sample.py)Anruf


$ python sample.py hello
HELLO
$ 

Schreiben von Code, der nur funktioniert, wenn er direkt ausgeführt wird

Schreiben von Code, der nur funktioniert, wenn er direkt ausgeführt wird


import sys

def say_something_upper(s):
    #In Großbuchstaben konvertieren
    upper_s = s.upper()
    return upper_s

def main():
    str = sys.argv[1]
    print(say_something_upper(str))

if __name__ == '__main__':
    main()

Paket erstellen

__init__.py


#Leere Datei ist OK

Module in ein Paket importieren

python_programming/sample.py


from python_package import hello

def say_hello():
    print(hello.return_hello())

def main():
    say_hello()

if __name__ == '__main__':
    main()

python_programming/python_package/hello.py


def return_hello():
    return 'Hello!!!'

Ausführungsergebnis


$ python sample.py
Hello!!!
$ 

Wie schreibe ich Import


#Paket importieren
Paketname importieren
import sample_package

#Importieren Sie ein bestimmtes Modul aus einem Paket(von nicht angegeben)
Paketname importieren.Modulname
import sample_package.greeting

#Importieren Sie ein bestimmtes Modul aus einem Paket(von angegeben)
vom Paketnamen Importmodulname
from sample_package import greeting

#Importieren Sie nur bestimmte Attribute aus Paketen und Modulen
vom Paketnamen/Modulname importieren Funktionsname
from sample_package.greeting import say_something

#Importiertes Paket/Modul/Geben Sie der Funktion einen Alias
aus Paketname Importmodulname als Alias
from sample_package.greeting import say_something as s

Massenimport mehrerer Attribute mithilfe von Platzhaltern und "\ _ \ _ all \ _ \ _"

Massenimport


#Platzhalter (*) Zum Batch-Import
vom Paketnamenimport*
from sample_package import *

__init__.py


__all__ = ["morning", "evening", "night"]

Prämisse: Es gibt viele Module, einschließlich" Morgen "," Abend "," Nacht "in sample_package

7. Eingebaute Funktionen / spezielle Methoden

Eingebaute Funktionen

Integrierte Funktionen sind in Python integrierte Funktionen, die ohne Import verwendet werden können.

--isinstance (): Gibt True zurück, wenn das im ersten Argument übergebene Instanzobjekt zu der im zweiten Argument übergebenen Klasse gehört.

isinstance()


>>> d = {}

#Das erste Argument ist ein Instanzobjekt
>>> isinstance(d, dict)
True

#Wenn das zweite Argument ein Taple ist, wird es in mehreren Klassen gleichzeitig verglichen.
>>> isinstance(d, (list, int, dict))
True

--issubclass (): Fast identisch mit isinstance (), verwendet jedoch ein Klassenobjekt als erstes Argument.

issubclass()


#Das erste Argument ist ein Klassenobjekt
>>> issubclass(dict, object)
True

#Der Bool-Typ ist eine Unterklasse vom Typ int
>>> issubclass(bool, (list, int, dict))
True

--callable (): Beurteilt aufrufbare Objekte (Funktionen, Klassen, Methoden usw., die mit () aufgerufen werden können)

callable()


>>> callable(isinstance) #Funktion
True
>>> callable(Exception) #Klasse
True
>>> callable(''.split) #Methode
True

--getattr () / setattr () / delattr (): Objektattribute bearbeiten

getattr()/setattr()/delattr()


#Beispielklassendefinition
>>> class Mutable:
...     def __init__(self, attr_map):
...         for k, v in attr_map.items():
...             setattr(self, str(k), v)
... 
#Setzen Sie die Attribute auf m
>>> m = Mutable({'a': 1, 'b': 2})
>>> m.a
1
>>> attr = 'b'

#Wert erhalten
>>> getattr(m, attr)
2

#Wert löschen
>>> delattr(m, 'a')
>>> m.a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Mutable' object has no attribute 'a'

# getattr()Kann auch Methoden bekommen
>>> str = 'python'
>>> instance_method = getattr(str, 'upper')
>>> instance_method()
'PYTHON'

--zip (): Gibt mehrere iterierbare Elemente gleichzeitig zurück

zip()


#Fassen Sie die i-ten Elemente jeder Iterable zusammen
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
<zip object at 0x10827a7d0>
>>> list(zip(a, b))
[(1, 4), (2, 5), (3, 6)]

# zip()Gibt Ergebnisse nur bis zur kürzesten iterierbaren Länge zurück
>>> d = [1, 2, 3]
>>> e = [4, 5, 6, 7, 8]
>>> f = [9, 10]
>>> zip(d, e, f)
<zip object at 0x10827a7d0>
>>> list(zip(d, e, f))
[(1, 4, 9), (2, 5, 10)]

#Wenn Sie die längste iterable anpassen möchten, verwenden Sie die Standardbibliothek itertools.zip_longest()Funktion verwenden
>>> from itertools import zip_longest
>>> list(zip_longest(d, e, f, fillvalue=0))
[(1, 4, 9), (2, 5, 10), (3, 6, 0), (0, 7, 0), (0, 8, 0)]

--sort (): Sortiert die Elemente der Iterable

sorted()


>>> a = [3, 2, 5, 1, 4]
>>> b = [2, 1, 4, 5, 3]

# list.sort()Sortiert sich
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]

# sorted()Gibt eine neue Liste zurück
>>> sorted(b)
[1, 2, 3, 4, 5]
>>> b
[2, 1, 4, 5, 3]

# reverse=Wenn True angegeben ist, wird die Reihenfolge umgekehrt.
>>> sorted(b, reverse=True)
[5, 4, 3, 2, 1]

Da sorted () Elemente direkt vergleicht, tritt ein Fehler auf, wenn Zahlen und Zeichenfolgen gemischt werden

Weitere integrierte Funktionen finden Sie weiter unten

Liste der in Python integrierten Funktionen https://docs.python.org/ja/3/library/functions.html

Spezielle Methode

Eine spezielle Methode ist eine Methode mit zwei Unterstrichen (__) vor und nach dem Methodennamen und wird implizit von Python aufgerufen.

Spezielle Methode


#In der Klasse "Word", eine spezielle Methode, "__init__」「__str__」「__len__Definieren
>>> class Word(object):
...     def __init__(self, text):
...         self.text = text
...     def __str__(self):
...         return 'Word!!!'
...     def __len__(self):
...         return len(self.text)

#Klasse instanziieren
>>> w = Word('test')

#Wenn Sie versuchen, w implizit als Zeichenfolge zu behandeln, "__str__Wird genannt
>>> print(w)
Word!!!

#Wenn ich versuche, "len" auszuführen, um die Länge von w zu erhalten, sage ich implizit "__len__Wird genannt
>>> print(len(w))
4

#Ursprüngliche Beschreibungsmethode (greifen Sie auf den Attributtext der Instanz w zu und erhalten Sie den Wert von len)
>>> print(len(w.text))
4

Weitere spezielle Methoden finden Sie weiter unten

Name der speziellen Python-Methode https://docs.python.org/ja/3/reference/datamodel.html#special-method-names

8. Dateivorgänge und Eingabe / Ausgabe

Schreiben einer Datei mit open ()

open()Schreiben einer Datei mit


#Das erste Argument ist der Dateiname und das zweite Argument ist der Modus
#Modus (Argument ist optional, für "r" weggelassen)
#"R": schreibgeschützt
#"W": Nur exportieren
#"A": Hinzufügung (Hinzufügung zum Ende der Datei)
# 「r+": Lesen und Schreiben
>>> f = open('test.txt', 'w')
>>> f.write('Test!')
>>> f.close()
#Wie folgt "Test."txt" wird generiert und "Test"!"Ist geschrieben.
[localhost]$ cat test.txt
Test!
[localhost]$ 

#Es ist auch möglich, mit print in eine Datei zu schreiben
>>> f = open('test.txt', 'w')
>>> print('Print!', file=f)
>>> f.close()
#Wie folgt "Test."txt" wird generiert und "Print"!"Ist geschrieben.
[localhost]$ cat test.txt
Print!
[localhost]$

#Optionen bei Verwendung von Druck
>>> f = open('test.txt', 'w')
>>> print('My', 'name', 'is', 'Tom', sep='###', end='!!!', file=f)
>>> f.close()
#Das Trennzeichen wird im September angegeben.###(Standard ist ein Raum mit halber Breite) und schließlich "" bis zum Ende angegeben!!!"Ist geschrieben.
[localhost]$ cat test.txt
My###name###is###Tom!!!
[localhost]$ 

Lesen Sie eine Datei mit read ()

read()Dateien lesen mit


#Als vorläufige Vorbereitung "Test.txt "vorbereitet
>>> f = open('test.txt', 'w')
>>> print('My', 'name', 'is', 'Tom', end='!\n', file=f)
>>> print('My', 'name', 'is', 'Nancy', end='!\n', file=f)
>>> print('My', 'name', 'is', 'Julia', end='!\n', file=f)
>>> f.close()
[localhost]$ cat test.txt
My name is Tom!
My name is Nancy!
My name is Julia!
[localhost]$

# read()Lesen Sie den Inhalt der Datei mit
>>> f = open('test.txt', 'r')
>>> f.read()
'My name is Tom!\nMy name is Nancy!\nMy name is Julia!\n'
>>> f.close()

# readline()Lesen Sie Zeile für Zeile mit
>>> f = open('test.txt', 'r')
>>> f.readline()
'My name is Tom!\n'
>>> f.readline()
'My name is Nancy!\n'
>>> f.readline()
'My name is Julia!\n'
>>> f.close()

Bearbeiten von Dateien mit der with-Anweisung

Bearbeiten von Dateien mit der with-Anweisung


# with open()Wenn Sie eine Datei mit bearbeiten()Es ist keine Verarbeitung erforderlich.
>>> with open('test.txt', 'a') as f:
...     print('with open statement!', file=f)
... 
>>> 
[localhost]$ cat test.txt
My name is Tom!
My name is Nancy!
My name is Julia!
with open statement!
[localhost]$

Referenzen / Unterrichtsmaterialien

Recommended Posts

Python3 Spickzettel (Basic)
PySpark Cheet Sheet [Python]
Python-Spickzettel
[Python3] Standardeingabe [Cheet Sheet]
Python Django Tutorial Cheet Sheet
Apache Beam Cheet Sheet [Python]
Python-Spickzettel (für C ++ erfahren)
RF Python Basic_01
Python-Grundschrift
Curry Spickzettel
Grundlegende Grammatik von Python3
RF Python Basic_02
SQLite3 Spickzettel
pyenv Spickzettel
AtCoder Spickzettel in Python (für mich)
Blender Python Mesh Datenzugriffsprüfblatt
Cheet Sheet (Python) des Mathematical Optimization Modeler (PuLP)
Python-Grundkurs (12 Funktionen)
Python Memo Basic Edition
conda Befehl Spickzettel
PIL / Kissen Spickzettel
Python-Grundkurs (7 Wörterbuch)
Python-Grundkurs (2 Python-Installation)
Grundlegende Sortierung in Python
Python-Grundkurs (9 Iterationen)
Grundmethode der [Python] -Klasse
Python-Grundkurs (11 Ausnahmen)
Python-Grundkurs (6 Sätze)
Spark API Spickzettel
Python-Grundgrammatik (Sonstiges)
Python-Grundkurs (Einführung)
Python Basic Memorandum Teil 2
[Aktualisierung] Python Syntax Spickzettel für Java Shop
Python Basic ② in Windows
Python-Grundnotiz - Teil 2
Python-Grundkurs (13 Klassen)
Grundlegende Python-Befehlsnotizen
Grundkenntnisse in Python
Python grundlegende Grammatik Memo
Python-basierte PDF-Spickzettel
Python-Grundnotiz - Teil 1
Python Memorandum Super Basic
Python-Grundkurs (8 Zweige)
Python grundlegende if-Anweisung
Python-Grundkurs (3 Ausführung von Python)
Python Basic - Pandas, Numpy -
Tox Einstellungsdatei Spickzettel
Grundlegende Grammatik des Python3-Systems (einige Iterationen von Python)
Python-Anwendung: Pandas Teil 1: Basic
Mit Python erlerntes Refactoring (Basic)
BASIC-Authentifizierung mit Python-Flasche
Python Basic Dikt Sortierreihenfolge
[Python] Verwenden von OpenCV mit Python (Basic)
Python-Grundkurs (10 Einschlussnotation)