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

def is_valid_identifier(name):
    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']
>>> 
KategorieSchlüsselwortBeschreibung
Boolesche WerteTrueBoolescher Wert true
FalseBoolescher Wert false
NoneStellt einen leeren oder keinen Wert dar
Logische OperationenandLogische AND-Operation
orLogische OR-Operation
notLogische NOT-Operation
Bedingte SteuerungifBedingte Anweisung
elifSonst wenn (Abkürzung von else if)
elseSonst-Zweig
SchleifensteuerungforIterationsschleife
whileBedingte Schleife
breakAus der Schleife ausbrechen
continueDen Rest der aktuellen Schleife überspringen und mit der nächsten Iteration fortfahren
AusnahmebehandlungtryVersuchen, einen Codeblock auszuführen
exceptEine Ausnahme abfangen
finallyCodeblock, der ausgeführt wird, unabhängig davon, ob eine Ausnahme auftritt
raiseEine Ausnahme auslösen
FunktionsdefinitiondefEine Funktion definieren
returnEinen Wert aus einer Funktion zurückgeben
lambdaEine anonyme Funktion erstellen
Klassen und ObjekteclassEine Klasse definieren
delEine Objektreferenz löschen
ModulimportimportEin Modul importieren
fromEinen bestimmten Teil aus einem Modul importieren
asEinen Alias für ein importiertes Modul oder Objekt erstellen
GeltungsbereichglobalEine globale Variable deklarieren
nonlocalEine nonlocal-Variable deklarieren (verwendet in verschachtelten Funktionen)
Asynchrone ProgrammierungasyncEine async-Funktion deklarieren
awaitAuf den Abschluss einer asynchronen Operation warten
AndereassertAssert, wird verwendet, um zu prüfen, ob eine Bedingung wahr ist
inZugehörigkeit prüfen
isObjektidentität prüfen (ob es dasselbe Objekt ist)
passLeere Anweisung, wird als Platzhalter verwendet
withKontextmanager, wird für die Ressourcenverwaltung verwendet
yieldEinen 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+)

#!/usr/bin/python3 # Erster Kommentar print ("Hello, Python!") # Zweiter Kommentar

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+)

#!/usr/bin/python3 # Erster Kommentar # Zweiter Kommentar '''Dritter Kommentar Vierter Kommentar''' """Fünfter Kommentar Sechster Kommentar""" print ("Hello, Python!")

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+)

if True: print ("True") else: print ("False")

Im folgenden Code hat die letzte Zeile der Anweisungen eine uneinheitliche Einrückung, was zu einem Laufzeitfehler führt:

Beispiel

if True:
    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_one = 1
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+)

#!/usr/bin/python3 str='123456789' print(str) # Gibt die Zeichenkette aus print(str[0:-1]) # Gibt alle Zeichen vom ersten bis zum vorletzten aus print(str[0]) # Gibt das erste Zeichen der Zeichenkette aus print(str[2:5]) # Gibt Zeichen vom dritten bis zum sechsten aus (exklusiv) print(str[2:]) # Gibt alle Zeichen ab dem dritten aus print(str[1:5:2]) # Gibt jedes zweite Zeichen vom zweiten bis zum fünften aus (Schrittweite 2) print(str * 2) # Gibt die Zeichenkette zweimal aus print(str + 'Hello') # Zeichenketten verketten print('------------------------------') print('hello\nexample') # Verwende Backslash (\)+n, um Sonderzeichen zu escapen print(r'hello\nexample') # Füge ein r vor der Zeichenkette hinzu, um einen Raw-String zu kennzeichnen, sodass kein Escaping stattfindet

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+)

#!/usr/bin/python3 input("\n\nBeenden nach Drücken der Eingabetaste.")

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+)

#!/usr/bin/python3 import sys; x = 'example'; sys.stdout.write(x + '\n')

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+)

#!/usr/bin/python3 x="a" y="b" # Ausgabe mit Zeilenumbruch print( x ) print( y ) print('---------') # Ausgabe ohne Zeilenumbruch print( x, end=" " ) print( y, end=" " ) print()

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

import sys print('================Python-Importmodus==========================') print ('Kommandozeilenargumente sind:') for i in sys.argv: print (i) print ('\nPython-Pfad ist',sys.path)

Die Member argv, path des sys-Moduls importieren

from sys import argv,path # Bestimmte Member importieren print('================python from import===================================') print('path:',path) # Da das path-Member bereits importiert wurde, wird sys.path hier beim Referenzieren nicht benötigt

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