Kapitel 1 Grammatikgrundlagen
Definition von Software
Bezieht sich auf eine Sammlung von Computerdaten und Anweisungen, die in einer bestimmten Reihenfolge angeordnet sind.
Daten: Einige Daten , die der Computer erkennen kann. Auf der Festplatte: avi, doc, txt, py, im Speicher: Konstanten, Variablen, Funktionen, Objekte, Klassen.
Anleitung : Die Schritte zum Bearbeiten dieser Daten, um die erforderlichen Berechnungen durchzuführen.
Software-Betriebsprozess
Der von Python geschriebene Code wird als Quellcode bezeichnet. Kann der Quellcode vom Computer direkt erkannt werden? Kompilieren Sie den Quellcode in Maschinencode, den der Computer erkennen kann, und der Computer führt dann den Maschinencode aus.
Zwei Betriebsarten der Software:
-
Betriebsmodus der grafischen Oberfläche
-
Befehlszeilenbetriebsmodus
Hochrangige Programmiersprachen sind in zwei Kategorien unterteilt:
-
Statisch kompilierter Typ: C, C ++, Java
-
Kompilieren: Der Quellcode muss vollständig in eine Maschinencodedatei kompiliert werden. Anschließend muss die Maschinencodedatei ausgeführt und das Programm ausgeführt werden
-
Statisch: Variablen müssen eindeutige Datentypdefinitionen haben
-
-
Dynamisch interpretiert: Python, JavaScript, Mathlab, Ruby, Go
-
Erläuterung: Es ist nicht erforderlich, den Code vollständig in Maschinencode umzuwandeln, einen Quellcode zu lesen, einen Satz zu kompilieren und einen Satz auszuführen
-
Dynamisch: Variablen haben keine eindeutige Datentypdefinition, jede Datentypvariable kann gespeichert werden
-
1.1 Grunddaten
Ganzzahl int
Normalerweise als Ganzzahl bezeichnet, ist sie Null, positiv und negativ, ohne Dezimalpunkt.
Wenn wir Zahlen ausdrücken, können wir auch die hexadezimale Form von zwei, acht, zehn, hexadezimal verwenden
>>> print(10)
10
>>> print(1001)
1001
>>> print(0b1001)
9
>>> print(0o1234)
668
>>> print(0x9C1A)
39962
>>> print(0x9W2Y)
File "<stdin>", line 1
print(0x9W2Y)
^
SyntaxError: invalid syntax
Hinweis: Das gedruckte Ergebnis ist immer dezimal
Die Ganzzahllänge von Python beträgt 32 Bit-4 Byte und ist normalerweise eine kontinuierliche Zuweisung der Speicherplatz-ID () -Funktion
>>> id(0)
2034812832
>>> id(1)
2034812848
>>> id(2)
2034812864
Wenn Python die Umgebung initialisiert, teilt es einen Bereich im Speicher, der für den Zugriff auf ganzzahlige Objekte vorgesehen ist. Natürlich ist dieser Speicherplatz nicht unendlich und die Daten, die gespeichert werden können, sind begrenzt.
>>> id(251)
2034816848
>>> id(260)
13647712
>>> id(-10)
13647696
Kleiner ganzzahliger Objektpool
Wenn Python initialisiert wird, wird automatisch ein kleiner ganzzahliger Objektpool erstellt, der für uns praktisch ist, um eine spätere Generierung aufzurufen und zu vermeiden. Er enthält nur -5 ~ 256. Diese Nummern sind unsere am häufigsten verwendeten Nummern, sodass sie von Python im Voraus in den Speicher geladen werden. Bei der Verwendung von Ganzzahlen wird diese immer neu erstellt, wenn sie nicht zwischen -5 und 256 liegt.
>>> id(-5)
2034812752
>>> id(-6)
13647728
>>> id(256)
2034816928
>>> id(257)
13647648
>>> id(300)
13647696
>>> id(300)
13647712
>>> id(300)
13647680
Gleitkomma-Typ float
Gleitkommazahlen sind Dezimalstellen. Wenn die Dezimalstellen zu lang sind, können sie auch in wissenschaftlicher Notation ausgedrückt werden.
>>> print(3.14)
3.14
>>> print(1.298765e10)
12987650000.0
>>> print(0.89e-5)
8.9e-06
>>> print(1.23e-8)
1.23e-08
Komplex
Eine komplexe Zahl besteht aus Real- und Imaginärteilen a + bj
>>> print(1+2)
3
>>> print(1+2j)
(1+2j)
>>> (1+2j)*(1-2j)
(5+0j)
>>> complex(1,2)*complex(1,-2)
(5+0j)
Bool
Richtig und falsch, 0 und 1, positiv und negativ, sind alle boolesche Typen im traditionellen Sinne
In Python gibt es nur zwei Boolesche Typen: True und False
Boolesche Typen können nur in logischen Operationen und Vergleichsoperationen existieren
>>> True + False
1
>>> True - False
1
>>> 3 > 2
True
>>> 2 < 1
False
>>> 3 > 2 and 2 < 1
False
Keine 空 值 NoneType
Der Nullwert kann nicht als Zahl 0 verstanden werden, er ist die leere Menge φ, wir verwenden ihn hauptsächlich zum Erstellen von Sequenzen und zur objektorientierten Programmierung.
>>> None + 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
>>> [None] * 10 # 创建一个长度为10的列表 没有数据 但有空间
[None, None, None, None, None, None, None, None, None, None]
String str
Es gibt drei Arten von Zeichenfolgen: einfaches Anführungszeichen, doppeltes Anführungszeichen, dreifaches Anführungszeichen (normalerweise in Kommentaren verwendet)
>>> print("HelloWorld")
HelloWorld
>>> print('你好')
你好
>>> print(" '' ")
''
>>> print(' "" ')
""
>>> print(' ' ')
File "<stdin>", line 1
print(' ' ')
^
SyntaxError: EOL while scanning string literal
>>> print(' \' ')
'
Fluchten
-
\\
: Backslash -
\'
:Apostroph -
\"
:Anführungszeichen -
\n
: Wickeln -
\t
: Horizontale Registerkarte
>>> print(' \' ')
'
>>> print("\")
File "<stdin>", line 1
print("\")
^
SyntaxError: EOL while scanning string literal
>>> print("\\")
\
Variable
Variable : Der Betrag, um den sich der Wert während der Ausführung des Programms ändert.
Konstante: Der Betrag, um den sich der Wert während der Programmausführung nicht ändert. (Literal, Daten, die direkt im Code erscheinen)
Unabhängig davon, ob es sich um eine Variable oder eine Konstante handelt, wird beim Erstellen ein Speicherplatz im Speicher geöffnet, um deren Wert zu speichern.
# Java中基本数据类型变量a,b 和 引用数据类型变量c d e
int a = 3;
int b = 8;
Object c = new Object();
Object d = new Object();
Object e = c;
In Python ist alles ein Objekt!
>>> a = 1
>>> b = 1
>>> c = 1
>>> a == b
True
>>> id(1)
2034812848
>>> id(a)
2034812848
>>> id(b)
2034812848
>>> d = a
>>> d == b
True
>>> num1 = 300
>>> num2 = 300
>>> num3 = 300
>>> id(num1)
13647712
>>> id(num2)
13647696
>>> id(num3)
13647680
>>> num1 == num2
True
Sie können die Adresse nicht blind vergleichen, sondern auch vergleichen, ob der Inhalt der beiden Objekte gleich ist.
Im Variablenraum kann nur die Adresse eines bestimmten Datenobjekts gespeichert werden, und die Variable ist nur eine Referenz auf das Objekt
Variablen müssen zugewiesen werden, bevor sie aufgerufen werden können.
>>> print(num4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'num4' is not defined
Variablen können fortlaufend zugewiesen werden:
>>> a=b=c=10
>>> a
10
>>> b
10
>>> c
10
>>> a,b,c =10,20,30
>>> a
10
>>> b
20
>>> c
30
>>> a=b=c=1000
>>> id(a)
13647776
>>> id(b)
13647776
>>> id(c)
13647776
>>> a=1000
>>> b=1000
>>> c=1000
>>> id(a)
13647792
>>> id(b)
13647648
>>> id(c)
13647824
Die Variable selbst in Python unterliegt keiner Datentypbeschränkung, ist lediglich eine Referenz auf ein Objekt und speichert die Speicheradresse der Objektdaten
Es werden nur Datentypen zwischen Datenobjekten unterschieden.
Kennung
Der sogenannte Bezeichner ist der Name, den wir Variablen, Konstanten, Funktionen, Klassen usw. geben.
Folgende Bestimmungen:
-
Das erste Zeichen muss ein Buchstabe oder ein Unterstrich sein
_
-
Obwohl Python Chinesisch unterstützt, können wir auch Chinesisch zum Benennen verwenden, dies wird jedoch nicht empfohlen
-
Die Wörter, die mit einem Unterstrich beginnen, haben in der objektorientierten Programmierung privat eine besondere Bedeutung
-
-
Die anderen Teile des Bezeichners bestehen aus Buchstaben, Zahlen und Unterstrichen
-
Bezeichner unterscheiden zwischen Groß- und Kleinschreibung
-
Variablennamen sind alle Kleinbuchstaben und Konstantennamen sind alle Großbuchstaben (in Python gibt es keine Konstante PI = 3.14 und es handelt sich im Wesentlichen um eine Variable).
-
Der Funktionsname ist klein geschrieben und unterstrichen, was dem Variablennamen entspricht
-
Der Klassenname verwendet die Methode zur Benennung von Großkamelfällen: Wenn der Name aus mehreren Wörtern besteht, wird der erste Buchstabe jedes Wortes großgeschrieben
变量的命名不要使用关键字和内置函数的名称!
>>> True = 2
File "<stdin>", line 1
SyntaxError: cannot assign to True
>>> if = 3
File "<stdin>", line 1
if = 3
^
SyntaxError: invalid syntax
Stichwort
Bezieht sich auf Wörter, die von höheren Programmiersprachen eine besondere Bedeutung erhalten haben.
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Kann auch keine eingebauten Funktionen verwenden (ändern Sie den Namen der eingebauten Funktionen für andere Zwecke)
>>> id(2)
2034812864
>>> id = 3
>>> id + 1
4
>>> id(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
In Python ist alles ein Objekt und Funktionen selbst sind Objekte!
>>> id(2)
2034812864
>>> id(id)
45545184
>>> abc = id
>>> abc(1)
2034812848
>>> id(1)
2034812848
>>> id = 10
>>> print(id)
10
>>> abc(id)
2034812992
Wie viele integrierte Funktionen gibt es?
>>> dir(__builtins__)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
Kommentar
Hinweis: Eine vom Programm verwendete Textinformation wird nicht als Teil des Programms betrachtet.
-
Einzeiliger Kommentar : # Kommentarinhalt
-
Mehrzeilige Kommentare : Mehrere einzeilige Kommentare
-
Dokumentnotiz : "" Der Inhalt der Notiz kann die Funktionsinformationen der Klasseninformation erklären. "" "