Python3-Grundsyntax
Kodierung
Standardmäßig verwenden Python3-Quelldateien dieUTF-8-Kodierung, und alle Zeichenketten sind Unicode-Zeichenketten.
Natürlich können Sie auch eine andere Kodierung für die Quelldatei angeben:
# -*- coding: cp-1252 -*-
Die obige Definition erlaubt es der Quelldatei, Zeichen aus dem Windows-1252-Zeichensatz zu verwenden, geeignet für Bulgarisch, Belarussisch, Mazedonisch, Russisch und Serbisch.
Bezeichner
- Das erste Zeichen muss ein Buchstabe (a-z, A-Z) oder ein Unterstrich sein_ 。
- Die übrigen Teile eines Bezeichners bestehen aus Buchstaben, Ziffern und Unterstrichen.
- Bei Bezeichnern wird zwischen Groß- und Kleinschreibung unterschieden; count und Count sind unterschiedliche Bezeichner.
- Bezeichner haben keine feste Längenbegrenzung, aber es wird empfohlen, sie kurz zu halten (im Allgemeinen nicht mehr als 20 Zeichen).
- Reservierte Schlüsselwörter sind verboten; zum Beispiel können if, for und class nicht als Bezeichner verwendet werden.
Gültige Bezeichner:
age = 25 # 普通变量名,最常见 user_name = "Alice" # 用下划线连接单词,清晰易读 _total = 100 # 下划线开头通常表示“内部使用”或“私有” MAX_SIZE = 1024 # 全大写通常表示“常量”(固定不变的值) calculate_area() # 函数名,动词+名词 StudentInfo # 类名,首字母大写(驼峰命名法) __private_var # 双下划线开头,有特殊含义
Ungültige Bezeichner:
2nd_place = "silver" # 错误:以数字开头 user-name = "Bob" # 错误:包含连字符 class = "Math" # 错误:使用关键字 $price = 9.99 # 错误:包含特殊字符 for = "loop" # 错误:使用关键字
Python 3 erlaubt Unicode-Zeichen als Bezeichner, daher können chinesische Zeichen für Variablennamen verwendet werden; Nicht-ASCII-Bezeichner sind ebenfalls erlaubt.
姓名 = "张三" # 合法 π = 3.14159 # 合法
Testen, ob ein Bezeichner gültig ist:
Beispiel
try:
exec(f"{name} = None")
return True
except:
return False
print(is_valid_identifier("2var")) # False
print(is_valid_identifier("var2")) # True
Reservierte Schlüsselwörter in Python
Reservierte Wörter sind Schlüsselwörter; wir können sie nicht als Bezeichnernamen verwenden. Die Python-Standardbibliothek stellt ein keyword-Modul bereit, das alle Schlüsselwörter der aktuellen Version ausgeben kann:
>>> 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'] >>>
| Kategorie | Schlüsselwort | Beschreibung |
|---|---|---|
| Boolesche Werte | True | Boolescher Wert true |
False | Boolescher Wert false | |
None | Stellt einen leeren oder keinen Wert dar | |
| Logische Operationen | and | Logische AND-Operation |
or | Logische OR-Operation | |
not | Logische NOT-Operation | |
| Bedingte Steuerung | if | Bedingte Anweisung |
elif | Sonst wenn (Abkürzung von else if) | |
else | Sonst-Zweig | |
| Schleifensteuerung | for | Iterationsschleife |
while | Bedingte Schleife | |
break | Aus der Schleife ausbrechen | |
continue | Den Rest der aktuellen Schleife überspringen und mit der nächsten Iteration fortfahren | |
| Ausnahmebehandlung | try | Versuchen, einen Codeblock auszuführen |
except | Eine Ausnahme abfangen | |
finally | Codeblock, der ausgeführt wird, unabhängig davon, ob eine Ausnahme auftritt | |
raise | Eine Ausnahme auslösen | |
| Funktionsdefinition | def | Eine Funktion definieren |
return | Einen Wert aus einer Funktion zurückgeben | |
lambda | Eine anonyme Funktion erstellen | |
| Klassen und Objekte | class | Eine Klasse definieren |
del | Eine Objektreferenz löschen | |
| Modulimport | import | Ein Modul importieren |
from | Einen bestimmten Teil aus einem Modul importieren | |
as | Einen Alias für ein importiertes Modul oder Objekt erstellen | |
| Geltungsbereich | global | Eine globale Variable deklarieren |
nonlocal | Eine nonlocal-Variable deklarieren (verwendet in verschachtelten Funktionen) | |
| Asynchrone Programmierung | async | Eine async-Funktion deklarieren |
await | Auf den Abschluss einer asynchronen Operation warten | |
| Andere | assert | Assert, wird verwendet, um zu prüfen, ob eine Bedingung wahr ist |
in | Zugehörigkeit prüfen | |
is | Objektidentität prüfen (ob es dasselbe Objekt ist) | |
pass | Leere Anweisung, wird als Platzhalter verwendet | |
with | Kontextmanager, wird für die Ressourcenverwaltung verwendet | |
yield | Einen Wert aus einer Generatorfunktion zurückgeben |
Weitere Referenz zu reservierten Schlüsselwörtern in Python:https://www.example.com/python3/python3-keyword.html。
Kommentare
In Python beginnen einzeilige Kommentare mit#und werden wie folgt geschrieben:
Beispiel (Python 3.0+)
Wenn Sie den obigen Code ausführen, ist die Ausgabe:
Hello, Python!
Mehrzeilige Kommentare können mehrere#Rautenzeichen verwenden, und auch'''und""":
Beispiel (Python 3.0+)
Wenn Sie den obigen Code ausführen, ist die Ausgabe:
Hello, Python!
Zeilen und Einrückung
Das auffälligste Merkmal von Python ist die Verwendung von Einrückungen zur Darstellung von Codeblöcken; geschweifte Klammern sind nicht erforderlich.{} 。
Die Anzahl der Leerzeichen in der Einrückung ist variabel, aber Anweisungen im selben Codeblock müssen die gleiche Anzahl an Einrückungsleerzeichen enthalten. Beispiel:
Beispiel (Python 3.0+)
Im folgenden Code hat die letzte Zeile der Anweisungen eine uneinheitliche Einrückung, was zu einem Laufzeitfehler führt:
Beispiel
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # Uneinheitliche Einrückung verursacht einen Laufzeitfehler
Aufgrund der uneinheitlichen Einrückung erzeugt das obige Programm nach der Ausführung einen Fehler ähnlich dem folgenden:
File "test.py", line 6
print ("False") # 缩进不一致,会导致运行错误
^
IndentationError: unindent does not match any outer indentation level
Mehrzeilige Anweisungen
Python schreibt normalerweise eine Anweisung pro Zeile, aber wenn eine Anweisung sehr lang ist, können wir einen Backslash\verwenden, um mehrzeilige Anweisungen umzusetzen, zum Beispiel:
total = item_one + \
item_two + \
item_three
Beispiel
item_two = 2
item_three = 3
total = item_one + \
item_two + \
item_three
print(total) # Ausgabe ist 6
Mehrzeilige Anweisungen innerhalb von [], {}, oder () benötigen keinen Backslash\, zum Beispiel:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
Zahlentypen
Python hat vier Arten von Zahlen: Ganzzahlen, boolesche Werte, Gleitkommazahlen und komplexe Zahlen.
- int(Ganzzahl), wie 1; es gibt nur einen Ganzzahltyp, int, der als long integer dargestellt wird, ohne den Typ Long in Python 2.
- bool(Boolescher Wert), wie True.
- float(Gleitkommazahl), wie 1.23, 3E-2
- complex(Complex) - Komplexe Zahlen bestehen aus einem Realteil und einem Imaginärteil in der Form a + bj, wobei a der Realteil, b der Imaginärteil ist und j die imaginäre Einheit darstellt. Zum Beispiel 1 + 2j, 1.1 + 2.2j
String
- In Python werden einfache Anführungszeichen'und doppelte Anführungszeichen"genau gleich verwendet.
- Durch die Verwendung von dreifachen Anführungszeichen ('''oder""") kann eine mehrzeilige Zeichenkette angegeben werden.
- Escape-Zeichen\。
- Backslashes können zum Escapen verwendet werden; durch die Verwendung vonrkann verhindert werden, dass der Backslash escaped. Zum Beispielr"this is a line with \n"Dann wird\nangezeigt, kein Zeilenumbruch.
- Zeichenketten wörtlich verketten, wie zum Beispiel"this " "is " "string"wird automatisch umgewandelt inthis is string。
- Zeichenketten können mit dem+Operator verkettet und mit dem*Operator wiederholt werden.
- Zeichenketten in Python haben zwei Indexierungsmethoden: von links nach rechts beginnend bei0, und von rechts nach links beginnend bei-1.
- Zeichenketten in Python können nicht geändert werden.
- Python hat keinen separaten Zeichentyp; ein Zeichen ist einfach eine Zeichenkette der Länge 1.
- String-Slicingstr[start:end], wobei start (inklusiv) der Index ist, an dem der Slice beginnt, und end (exklusiv) der Index, an dem der Slice endet.
- String-Slicing kann einen step-Parameter, step, mit der folgenden Syntax enthalten:str[start:end:step]
word = '字符串' sentence = "这是一个句子。" paragraph = """这是一个段落, 可以由多行组成"""
Beispiel (Python 3.0+)
Hier steht r für raw, d. h. Raw-String, der Backslashes automatisch escaped, zum Beispiel:
>>> print('\n') # 输出空行
>>> print(r'\n') # 输出 \n
\n
>>>
Die Ausgabe des obigen Beispiels ist:
123456789 12345678 1 345 3456789 24 123456789123456789 123456789你好 ------------------------------ hello example hello\nexample
Leerzeilen
Verwende Leerzeilen zwischen Funktionen oder zwischen Klassenmethoden, um den Beginn eines neuen Codeblocks anzuzeigen. Verwende außerdem eine Leerzeile zwischen den Klassen- und Funktionseinträgen, um den Beginn des Funktionseintrags hervorzuheben.
Leerzeilen unterscheiden sich von der Code-Einrückung. Leerzeilen sind nicht Teil der Python-Syntax. Wenn Sie keine Leerzeilen einfügen, läuft der Python-Interpreter trotzdem ohne Fehler. Der Zweck von Leerzeilen besteht jedoch darin, zwei Codeabschnitte mit unterschiedlichen Funktionen oder Bedeutungen zu trennen, was die zukünftige Wartung oder Refaktorierung des Codes erleichtert.
Denken Sie daran:Leerzeilen sind ebenfalls Teil des Programm-Codes.
Warten auf Benutzereingabe
Nachdem das folgende Programm ausgeführt und die Eingabetaste gedrückt wurde, wartet es auf eine Benutzereingabe:
Beispiel (Python 3.0+)
Im obigen Code werden\n\nzwei neue Leerzeilen ausgegeben, bevor das Ergebnis ausgegeben wird. Sobald der Benutzer dieenterTaste drückt, wird das Programm beendet.
Mehrere Anweisungen in derselben Zeile
Python kann mehrere Anweisungen in derselben Zeile verwenden, wobei Semikolons zwischen den Anweisungen;als Trennzeichen dienen. Das folgende ist ein einfaches Beispiel:
Beispiel (Python 3.0+)
Wenn Sie ein Skript verwenden, um den obigen Code auszuführen, lautet die Ausgabe:
example
Bei Ausführung über die interaktive Kommandozeile lautet die Ausgabe:
>>> import sys; x = 'example'; sys.stdout.write(x + '\n') example 7
Hier gibt 7 die Anzahl der Zeichen an,examplees gibt 6 Zeichen,\ndie ein Zeichen darstellen, was zusammen7Zeichen ergibt.
>>> import sys
>>> sys.stdout.write(" hi ") # hi 前后各有 1 个空格
hi 4
Mehrere Anweisungen bilden eine Codegruppe
Eine Gruppe von Anweisungen mit derselben Einrückung bildet einen Codeblock, den wir Codegruppe nennen.
Zusammengesetzte Anweisungen wie if, while, def und class beginnen in der ersten Zeile mit einem Schlüsselwort und enden mit einem Doppelpunkt ( : ). Eine oder mehrere Codezeilen nach dieser Zeile bilden eine Codegruppe.
Wir nennen die erste Zeile und die folgende Codegruppe eine Klausel.
Das folgende ist ein Beispiel:
if expression : suite elif expression : suite else : suite
print-Ausgabe
printStandardmäßig wird die Ausgabe mit Zeilenumbruch ausgegeben. Um keinen Zeilenumbruch zu erreichen, müssen Sie am Ende der Variableend="" hinzufügen:
Beispiel (Python 3.0+)
Das Ausführungsergebnis des obigen Beispiels ist:
a b --------- a b
Weitere Informationen finden Sie unter:Python2 und Python3 print ohne Zeilenumbruch
import und from...import
In Python verwenden Sieimportoderfrom...import, um das entsprechende Modul zu importieren.
Importieren Sie das gesamte Modul (somemodule), das Format lautet:import somemodule
Importieren Sie eine Funktion aus einem Modul, das Format lautet:from somemodule import somefunction
Importieren Sie mehrere Funktionen aus einem Modul, das Format lautet:from somemodule import firstfunc, secondfunc, thirdfunc
Alle Funktionen aus einem Modul importieren, das Format ist:from somemodule import *
Das sys-Modul importieren
Die Member argv, path des sys-Moduls importieren
Für weitere Informationen siehe:Der Hauptunterschied zwischen Python import und from … import
Kommandozeilenargumente
Viele Programme können einige Operationen ausführen, um grundlegende Informationen anzuzeigen. Python kann den Parameter -h verwenden, um Hilfeinformationen zu jedem Parameter anzuzeigen:
$ python -h usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
Wenn Python in Skriptform ausgeführt wird, können Eingabeparameter von der Kommandozeile empfangen werden. Zur konkreten Verwendung siehePython-3-Kommandozeilenargumente。
Andere Erweiterungen