Studiennotizen für First Python 3rd Edition
Objekttyp | Wörtliches Beispiel |
---|---|
Numerischer Wert | 1234 3.1425 999L 3+4j |
String | 'spam' "guido7s" |
aufführen | [1, [2, 'three'], 4] |
Wörterbuch | {'food': 'spam', 'taste': 'yum'} |
Taple | (1, 'spam', 4, 'U') |
Datei | myfile = open('eggs', 'r') |
Andere | set type None bool |
#Addition von ganzen Zahlen
>>> 123 + 222
345
#Gleitkommazahlmultiplikation
>>> 1.5 * 4
6.0
#2 zur 100. Potenz
#Python konvertiert automatisch in "lange Ganzzahlen", wenn es genauer sein muss.
>>> 2 ** 100
1267650600228229401496703205376L
#repr: Zeigt das Berechnungsergebnis so an, wie es ist(Ausgabe mit maximaler Genauigkeit)
>>> 3.1415 * 2
6.2830000000000004
#str: In leicht lesbares Format konvertieren und anzeigen(Anzeige in einer Form, die für Menschen leicht zu sehen ist)
>>> print 3.1415 * 2
6.283
>>> import math
>>> math.pi
3.1415926535897931
>>> math.sqrt(85)
9.2195444572928871
>>> import random
>>> random.random()
0.59268735266273953
>>> random.choice([1, 2, 3, 4])
1
*
ist eine iterative Verarbeitung möglich.>>> S = 'Spam'
#Überprüfen Sie die Länge
>>> len(S)
4
#Wenn der Index "0" angegeben ist, kann das erste Element extrahiert werden.
>>> S[0]
'S'
#Extrahieren Sie das zweite Element von links
>>> S[1]
'p'
#Element ganz rechts von S.
>>> S[-1]
'm'
#Das zweite Element vom rechten Ende von S.
>>> S[-2]
'a'
#Das letzte Element von S.
>>> S[-1]
'm'
#Gleiche Bedeutung, aber schwieriger
>>> S[len(S)-1]
'm'
#Extrahieren Sie 1 und 2 Elemente (3 ist nicht enthalten) durch Schneiden
>>> S[1:3]
'pa'
#Extrahieren Sie alle Elemente nach Index 1 (1):len(S)Gleich wie)
>>> S[1:]
'pam'
#Es gibt keine Änderung in S selbst nach der obigen Verarbeitung
>>> S
'Spam'
#Extrahieren Sie alle Elemente außer dem Ende
>>> S[0:3]
'Spa'
# S[0:3]Gleich wie
>>> S[:3]
'Spa'
#Dies ist auch das gleiche (0:-Sie können 1 schreiben, aber das ist einfacher)
>>> S[:-1]
'Spa'
#Extrahiere alle Elemente von S (0:len(S)Gleich wie)
>>> S[:]
'Spam'
#Verknüpfen
>>> S + 'xyz'
'Spamxyz'
#Original S ändert sich nicht
>>> S
'Spam'
#Wiederholung
>>> S * 8
'SpamSpamSpamSpamSpamSpamSpamSpam'
>>> S
'Spam'
#Objekte mit Unveränderlichkeit können nicht überschrieben werden
>>> S[0] = 'z'
...Fehlermeldung weggelassen...
TypeError: 'str' object does not support item assignment
#Erstellen Sie eine neue Zeichenfolge und weisen Sie sie der ursprünglichen Variablen zu
>>> S = 'z' + S[1:]
>>> S
'zpam'
#Suchen Sie die angegebene Zeichenfolge
>>> S.find('pa')
1
>>> S
'Spam'
#Ersetzen Sie die angegebene Zeichenfolge
>>> S.replace('pa', 'XYZ')
'SXYZm'
>>> S
'Spam'
>>> line = 'aaa,bbb,ccccc,dd'
#Teilen Sie durch ein Trennzeichen, um eine Liste zu erstellen
>>> line.split(',')
['aaa', 'bbb', 'ccccc', 'dd']
>>> S = 'spam'
#Fallkonvertierung
>>> S.upper()
'SPAM'
#Bestätigung des Inhalts (Isalpha, Isdigit usw.)
>>> S.isalpha()
True
>>> line = 'aaa,bbb,ccccc,dd\n'
#Entfernen Sie das Leerzeichen am rechten Ende
>>> line = line.rstrip()
>>> line
'aaa,bbb,ccccc,dd'
# \n ist das Ende der Zeile,\t ist eine Registerkarte
>>> S = 'A\nB\tC'
#Beide werden als ein Zeichen behandelt
>>> len(S)
5
# \n entspricht dem ASCII-Code 10
>>> ord('\n')
10
# \0 steht für NULL. Nicht das Ende der Zeichenfolge
>>> S = 'A\0B\0C'
>>> len(S)
5
>>> msg = """
aaaaaaaaaaaaa
bbb'''bbbbbbbbbb""bbbbbbb'bbbb
cccccccccccccc"""
>>> msg
'\naaaaaaaaaaaaa\nbbb\'\'\'bbbbbbbbbb""bbbbbbb\'bbbb\ncccccccccccccc'
--Verwenden Sie ein Modul namens re
>>> import re
>>> match = re.match('Hello[ \t]*(.*)world', 'Hello Python world')
>>> match.group(1)
'Python '
>>> match = re.match('/(.*)/(.*)/(.*)', '/usr/home/lumberjack')
>>> match.groups()
('usr', 'home', 'lumberjack')
#Eine Liste mit drei Elementen. Alle Typen sind unterschiedlich
>>> L = [123, 'spam', 1.23]
#Anzahl der Elemente in der Liste
>>> len(L)
3
#Indizierung
>>> L[0]
123
#Schneiden (was zu einer neuen Liste führt)
>>> L[:-1]
[123, 'spam']
#Eine neue Liste wird auch bei Verkettung erstellt
>>> L + [4, 5, 6]
[123, 'spam', 1.23, 4, 5, 6]
#Die ursprüngliche Liste hat sich nicht geändert
>>> L
[123, 'spam', 1.23]
--append
: Element am Ende hinzufügen
--pop
: Lösche das Element in der Mitte
--insert
: Element an der angegebenen Position einfügen
--remove
: Entfernen Sie das angegebene Element
--sort
: Listenelemente in aufsteigender Reihenfolge sortieren (überschreiben)
-- reverse
: Elemente umkehren (überschreiben)
#Fügen Sie am Ende ein Element hinzu, um die Liste zu verlängern
>>> L.append('NI')
>>> L
[123, 'spam', 1.23, 'NI']
#Kürzen Sie die Liste, indem Sie Elemente in der Mitte entfernen
>>> L.pop(2)
1.23
# “del L[2]"Aber Sie können das Element löschen
>>> L
[123, 'spam', 'NI']
>>> M = ['bb', 'aa', 'cc']
>>> M.sort()
>>> M
['aa', 'bb', 'cc']
>>> M.reverse()
>>> M
['cc', 'bb', 'aa']
>>> L
[123, 'spam', 'NI']
>>> L[99]
...Fehlermeldung weggelassen...
IndexError: list index out of range
>>> L[99] = 1
...Fehlermeldung weggelassen...
IndexError: list assignment index out of range
--Matrix
#Eine 3x3-Matrix, die durch Verschachtelungslisten erstellt wurde
>>> M = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#Zugangsleitung 2
>>> M[1]
[4, 5, 6]
#Holen Sie sich nach dem Zugriff auf Zeile 2 das dritte Element dieser Zeile
>>> M[1][2]
6
#Extrahieren Sie die Elemente in der zweiten Spalte
>>> col2 = [row[1] for row in M]
>>> col2
[2, 5, 8]
#Die ursprüngliche Matrix bleibt unverändert
>>> M
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#Fügen Sie jedem Element in Spalte 2 1 hinzu
>>> [row[1] + 1 for row in M]
[3, 6, 9]
#Entfernen Sie ungerade Elemente
>>> [row[1] for row in M if row[1] % 2 == 0]
[2, 8]
#Diagonale Elemente extrahieren
>>> diag = [M[i][i] for i in [0, 1, 2]]
>>> diag
[1, 5, 9]
#Wiederholen Sie die Zeichen in der Zeichenfolge
>>> doubles = [c * 2 for c in 'spam']
>>> doubles
['ss', 'pp', 'aa', 'mm']
--Dictionary gehört zur Kategorie der Zuordnung, nicht "Sequenz"
>>> D = {'food': 'Spam', 'quantity': 4, 'color': 'pink'}
#Schlüssel'food'Angeben
>>> D['food']
'Spam'
# 'quantity'Addiere 1 zu dem entsprechenden Wert
>>> D['quantity'] += 1
>>> D
{'food': 'Spam', 'color': 'pink', 'quantity': 5}
>>> D = {}
#Weisen Sie einen Wert zu, indem Sie einen Schlüssel angeben, der nicht vorhanden ist
>>> D['name'] = 'Bob'
>>> D['job'] = 'dev'
>>> D['age'] = 40
>>> D
{'age': 40, 'job': 'dev', 'name': 'Bob'}
>>> print D['name']
Bob
>>> rec = {'name': {'first': 'Bob', 'last': 'Smith'},
'job': ['dev', 'mgr'],
'age': 40.5}
# 'Name'Unterstützt verschachtelte Wörterbücher
>>> rec['name']
{'last': 'Smith', 'first': 'Bob'}
#Geben Sie den Schlüssel des verschachtelten Wörterbuchs an
>>> rec['name']['last']
'Smith'
# 'job'Entspricht einer verschachtelten Liste
>>> rec['job']
['dev', 'mgr']
#Geben Sie den Index für die verschachtelte Liste an
>>> rec['job'][-1]
'mgr'
# 'job'Erweitern und überschreiben Sie die entsprechende Liste
>>> rec['job'].append('janitor')
>>> rec
{'age': 40.5,'job': ['dev', 'mgr', 'janitor'], 'name': {'last': 'Smith', 'first':'Bob'}}
#Holen Sie sich eine Liste der Schlüssel (in keiner bestimmten Reihenfolge)
>>> Ks = D.keys()
>>> Ks
['a', 'c', 'b']
#Sortieren Sie die Liste der Schlüssel
>>> Ks.sort()
>>> Ks
['a', 'b', 'c']
#Geben Sie die Schlüssel in der Liste und die entsprechenden Werte der Reihe nach aus
>>> for key in Ks:
print key, '=>', D[key]
a => 1
b => 2
c => 3
>>> D
{'a': 1, 'c': 3, 'b': 2}
>>> for key in sorted(D):
print key, '=>', D[key]
a => 1
b => 2
c => 3
>>> for c in 'spam':
print c.upper()
S
P
A
M
――Die folgenden zwei Codes sind äquivalent, aber die Notation zur Aufnahme von Listen ist im Allgemeinen etwa doppelt so schnell.
Listeneinschlussnotation
>>> squares = [x ** 2 for x in [1, 2, 3, 4, 5]]
>>> squares
[1, 4, 9, 16, 25]
für Schleife
>>> squares = []
>>> for x in [1, 2, 3, 4, 5]:
squares.append(x ** 2)
>>> squares
[1, 4, 9, 16, 25]
>>> D
{'a': 1, 'c': 3, 'b': 2}
#Das Wörterbuch wird durch Angabe eines neuen Schlüssels erweitert
>>> D['e'] = 99
>>> D
{'a': 1, 'c': 3, 'b': 2, 'e': 99}
#Fehler beim Versuch, mit einem nicht vorhandenen Schlüssel auf einen Wert zuzugreifen
>>> D['f']
...Fehlermeldung weggelassen...
KeyError: 'f'
--Überprüfen Sie, ob der Schlüssel mit der Methode has_key
vorhanden ist
>>> D.has_key('f')
False
>>> if not D.has_key('f'):
print 'missing'
missing
>>> T = (1, 2, 3, 4) #Taple mit 4 Elementen
>>> len(T) #Länge
4
>>> T + (5, 6) #Verknüpfen
(1, 2, 3, 4, 5, 6)
>>> T[0] #Indizieren, Schneiden usw.
1
Der vielleicht größte Unterschied zur Liste der Taples besteht darin, dass sie nach ihrer Erstellung nicht mehr geändert werden können.
>>> T[0] = 2 #Taple ist unveränderlich
...Fehlermeldung weggelassen...
TypeError: 'tuple' object does not support item assignment
Taple
#Taple mit 4 Elementen
>>> T = (1, 2, 3, 4)
#Länge
>>> len(T)
4
#Verknüpfen
>>> T + (5, 6)
(1, 2, 3, 4, 5, 6)
#Indizieren, Schneiden usw.
>>> T[0]
1
#Der größte Unterschied zur Liste der Taples besteht darin, dass sie nach ihrer Erstellung nicht mehr geändert werden können.
>>> T[0] = 2
...Fehlermeldung weggelassen...
TypeError: 'tuple' object does not support item assignment
Schreiben
#Erstellen Sie eine neue Datei im Ausgabemodus
>>> f = open('data.txt', 'w')
#Schreiben Sie eine Zeichenfolge
>>> f.write('Hello\n')
>>> f.write('world\n')
#Schließen Sie die Datei und leeren Sie den Ausgabepuffer auf die Festplatte
>>> f.close()
Lesen
# 'r'Ist der Standardverarbeitungsmodus
>>> f = open('data.txt')
#Lesen Sie die gesamte Datei
>>> bytes = f.read()
>>> bytes
'Hello\nworld\n'
#print interpretiert die Bedeutung von Steuerzeichen
>>> print bytes
Hello
world
#Der Inhalt der Datei wird immer als Zeichenfolge behandelt
>>> bytes.split()
['Hello', 'world']
--Rohr
--Verwenden Sie eine integrierte Funktion namens "set"
>>> X = set('spam')
#Erstellen Sie zwei Sätze basierend auf der Reihenfolge
>>> Y = set(['h', 'a', 'm'])
>>> X, Y
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
#Kreuzung
>>> X & Y
set(['a', 'm'])
#Beitreten
>>> X | Y
set(['a', 'p', 's', 'h', 'm'])
#Unterschied
>>> X - Y
set(['p', 's'])
#Feste Präzisionsfraktion
>>> import decimal
>>> d = decimal.Decimal('3.141')
>>> d + 1
Decimal("4.141")
#Boolescher Typ
>>> 1 > 2, 1 < 2
(False, True)
>>> bool('spam')
True
# None
>>> X = None
>>> print X
None
#Erstellen Sie eine Liste mit 100 Keine
>>> L = [None] * 100
>>> L
[None, None, None, None, None, None, None, None, None, None, None, None, None,...Liste von 100 Keine...]
# Types
>>> type(L)
<type 'list'>
#Der Typ selbst ist auch ein Objekt
>>> type(type(L))
<type 'type'>
#Typprüfung
>>> if type(L) == type([]):
print 'yes'
yes
#Überprüfen Sie den Namen des Typs
>>> if type(L) == list:
print 'yes'
yes
#"Objektorientierte" Bestätigungsmethode
>>> if isinstance(L, list):
print 'yes'
yes
Definition der Arbeiterklasse
class Worker:
#Initialisieren
def __init__(self, name, pay):
#Selbst entspricht einem neuen Objekt
self.name = name
self.pay = pay
def lastName(self):
#Zeichenkette mit Leerzeichen teilen
return self.name.split()[-1]
def giveRaise(self, percent):
#Gehalt überschreiben
self.pay *= (1.0 + percent)
#Erstellen Sie zwei Instanzen
>>> bob = Worker('Bob Smith', 50000)
#Beide haben Namen und Bezahlung
>>> sue = Worker('Sue Jones', 60000)
#Methodenaufruf. Bob wird selbst
>>> bob.lastName()
'Smith'
#Klage ist Selbst
>>> sue.lastName()
'Jones'
#Die Bezahlung der Klage wurde geändert
>>> sue.giveRaise(.10)
>>> sue.pay
66000.0
--Numerischer Wert --Ganze Zahl
Recommended Posts