Sintaxis básica de Python3
Codificación
Por defecto, los archivos de código fuente de Python3 se codificanUTF-8en UTF-8, todas las cadenas son cadenas Unicode.
Por supuesto, también puedes especificar una codificación diferente para el archivo de código fuente:
# -*- coding: cp-1252 -*-
La definición anterior permite utilizar la codificación de caracteres del juego de caracteres Windows-1252 en el archivo de origen, adecuada para los idiomas búlgaro, bielorruso, macedonio, ruso y serbio.
Identificadores
- El primer carácter debe ser una letra (a-z, A-Z) o un guion bajo_ 。
- El resto del identificador se compone de letras, dígitos y guiones bajos.
- Los identificadores distinguen entre mayúsculas y minúsculas; count y Count son identificadores diferentes.
- No hay un límite estricto para la longitud de los identificadores, pero se recomienda mantenerlos concisos (generalmente no más de 20 caracteres).
- Está prohibido usar palabras clave reservadas; por ejemplo, if, for, class, etc. no pueden usarse como identificadores.
Identificadores válidos:
age = 25 # 普通变量名,最常见 user_name = "Alice" # 用下划线连接单词,清晰易读 _total = 100 # 下划线开头通常表示“内部使用”或“私有” MAX_SIZE = 1024 # 全大写通常表示“常量”(固定不变的值) calculate_area() # 函数名,动词+名词 StudentInfo # 类名,首字母大写(驼峰命名法) __private_var # 双下划线开头,有特殊含义
Identificadores no válidos:
2nd_place = "silver" # 错误:以数字开头 user-name = "Bob" # 错误:包含连字符 class = "Math" # 错误:使用关键字 $price = 9.99 # 错误:包含特殊字符 for = "loop" # 错误:使用关键字
Python 3 permite usar caracteres Unicode como identificadores; se pueden usar caracteres chinos como nombres de variables; los identificadores no ASCII también están permitidos.
姓名 = "张三" # 合法 π = 3.14159 # 合法
Comprobar si un identificador es válido:
Ejemplo
try:
exec(f"{name} = None")
return True
except:
return False
print(is_valid_identifier("2var")) # False
print(is_valid_identifier("var2")) # True
Palabras clave reservadas de Python
Las palabras reservadas son las palabras clave; no podemos usarlas como nombres de identificador. La biblioteca estándar de Python proporciona un módulo `keyword` que puede mostrar todas las palabras clave de la versión actual:
>>> 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'] >>>
| Categoría | Palabra clave | Descripción |
|---|---|---|
| Valores lógicos | True | Valor booleano verdadero |
False | Valor booleano falso | |
None | Representa un valor nulo o sin valor | |
| Operaciones lógicas | and | Operación lógica AND |
or | Operación lógica OR | |
not | Operación lógica NOT | |
| Control condicional | if | Sentencia de evaluación condicional |
elif | Sino si (abreviatura de else if) | |
else | Rama else | |
| Control de bucles | for | Bucle de iteración |
while | Bucle condicional | |
break | Salir del bucle | |
continue | Omitir el resto del bucle actual y pasar a la siguiente iteración | |
| Manejo de excepciones | try | Intentar ejecutar un bloque de código |
except | Capturar una excepción | |
finally | Bloque de código que se ejecuta tanto si se produce una excepción como si no | |
raise | Lanzar una excepción | |
| Definición de funciones | def | Definir una función |
return | Devolver un valor desde una función | |
lambda | Crear una función anónima | |
| Clases y objetos | class | Definir una clase |
del | Eliminar la referencia a un objeto | |
| Importación de módulos | import | Importar un módulo |
from | Importar una parte específica de un módulo | |
as | Crear un alias para el módulo u objeto importado | |
| Ámbito | global | Declarar una variable global |
nonlocal | Declarar una variable no local (para funciones anidadas) | |
| Programación asíncrona | async | Declarar una función asíncrona |
await | Esperar a que se complete una operación asíncrona | |
| Otros | assert | Aserción, utilizada para probar si una condición es verdadera |
in | Comprobar la pertenencia | |
is | Comprobar la identidad de un objeto (si es el mismo objeto) | |
pass | Sentencia vacía, utilizada como marcador de posición | |
with | Administrador de contexto, utilizado para la gestión de recursos | |
yield | Devolver un valor desde una función generadora |
Más referencias sobre palabras clave reservadas de Python:https://www.example.com/python3/python3-keyword.html。
Comentarios
Los comentarios de una sola línea en Python usan#el símbolo # al principio, como en el siguiente ejemplo:
Ejemplo (Python 3.0+)
Al ejecutar el código anterior, el resultado es:
Hello, Python!
Los comentarios de varias líneas pueden usar múltiples#signos #, y también'''y""":
Ejemplo (Python 3.0+)
Al ejecutar el código anterior, el resultado es:
Hello, Python!
Líneas e indentación
La característica más distintiva de Python es usar la indentación para representar bloques de código, sin necesidad de llaves.{} 。
El número de espacios de indentación es variable, pero las sentencias del mismo bloque de código deben contener el mismo número de espacios de indentación. Ejemplo:
Ejemplo (Python 3.0+)
En el siguiente código, el número de espacios de indentación en la última línea de sentencias es inconsistente, lo que provocará un error de ejecución:
Ejemplo
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # La indentación inconsistente causará un error de ejecución
Debido a la indentación inconsistente del programa anterior, al ejecutarlo aparecerá un error similar al siguiente:
File "test.py", line 6
print ("False") # 缩进不一致,会导致运行错误
^
IndentationError: unindent does not match any outer indentation level
Sentencias multilínea
Python normalmente escribe una sentencia por línea, pero si la sentencia es muy larga, podemos usar una barra invertida\para implementar sentencias multilínea, por ejemplo:
total = item_one + \
item_two + \
item_three
Ejemplo
item_two = 2
item_three = 3
total = item_one + \
item_two + \
item_three
print(total) # La salida es 6
Las sentencias multilínea dentro de [], {} o () no necesitan usar una barra invertida\, por ejemplo:
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
Tipos numéricos (Number)
En Python hay cuatro tipos de números: enteros, booleanos, flotantes y complejos.
- int(Entero), como 1; solo existe un tipo entero `int`, que se representa como entero largo, sin el `Long` de Python 2.
- bool(Booleano), como True.
- float(Flotante), como 1.23, 3E-2
- complex(Complejo) - Los números complejos se componen de una parte real y una parte imaginaria, con la forma a + bj, donde a es la parte real, b es la parte imaginaria, y j representa la unidad imaginaria. Por ejemplo, 1 + 2j, 1.1 + 2.2j
Cadenas (String)
- En Python, las comillas simples'y las comillas dobles"se usan exactamente igual.
- Usando comillas triples ('''o""") se puede especificar una cadena multilínea.
- Carácter de escape\。
- La barra invertida se puede usar para escapar; usandorse puede evitar que la barra invertida realice un escape. Por ejemplo,r"this is a line with \n"entonces\nse mostrará, no es un salto de línea.
- Concatenar cadenas literalmente, como"this " "is " "string"se convertirá automáticamente athis is string。
- Las cadenas pueden usar el+operador para concatenarse, y usar el*operador para repetir.
- Las cadenas en Python tienen dos formas de indexación: de izquierda a derecha comienzan en0y de derecha a izquierda comienzan en-1.
- Las cadenas en Python no se pueden modificar.
- Python no tiene un tipo de carácter separado; un carácter es una cadena de longitud 1.
- Rebanado de cadenasstr[start:end], donde start (incluido) es el índice de inicio del rebanado, y end (no incluido) es el índice de fin del rebanado.
- El rebanado de cadenas puede incluir un parámetro de paso step, con la siguiente sintaxis:str[start:end:step]
word = '字符串' sentence = "这是一个句子。" paragraph = """这是一个段落, 可以由多行组成"""
Ejemplo (Python 3.0+)
Aquí la r se refiere a raw, es decir, raw string, que automáticamente escapa la barra invertida, por ejemplo:
>>> print('\n') # 输出空行
>>> print(r'\n') # 输出 \n
\n
>>>
El resultado del ejemplo anterior es:
123456789 12345678 1 345 3456789 24 123456789123456789 123456789你好 ------------------------------ hello ejemplo hello\nejemplo
Líneas en blanco
Las funciones o los métodos de una clase se separan con líneas en blanco, lo que indica el comienzo de un nuevo bloque de código. También se usa una línea en blanco entre la clase y la entrada de la función para resaltar el inicio de la entrada de la función.
Las líneas en blanco son diferentes de la indentación del código; las líneas en blanco no forman parte de la sintaxis de Python. Si no se insertan líneas en blanco al escribir, el intérprete de Python no dará errores. Sin embargo, la función de las líneas en blanco es separar dos bloques de código con diferentes funciones o significados, para facilitar el mantenimiento o la refactorización futura del código.
Recuerda:Las líneas en blanco también son parte del código del programa.
Esperando la entrada del usuario
Al ejecutar el siguiente programa, después de presionar la tecla Enter, esperará la entrada del usuario:
Ejemplo (Python 3.0+)
En el código anterior,\n\nantes de mostrar el resultado se imprimirán dos líneas en blanco nuevas. Una vez que el usuario presioneenterla tecla, el programa saldrá.
Mostrar varias sentencias en la misma línea
Python puede usar múltiples declaraciones en la misma línea, separando las declaraciones con punto y coma;A continuación se muestra un ejemplo sencillo:
Ejemplo (Python 3.0+)
Ejecute el código anterior como script, el resultado es:
ejemplo
Ejecutándolo en la línea de comandos interactiva, el resultado es:
>>> import sys; x = 'ejemplo'; sys.stdout.write(x + '\n') ejemplo 7
Aquí el 7 indica el número de caracteres,ejemplohay 6 caracteres,\nrepresenta un carácter, en total7caracteres.
>>> import sys
>>> sys.stdout.write(" hi ") # hi 前后各有 1 个空格
hi 4
Varias sentencias forman un grupo de código
Un conjunto de declaraciones con la misma indentación constituye un bloque de código, y lo llamamos grupo de código.
Las declaraciones compuestas como if, while, def y class comienzan con una palabra clave en la primera línea y terminan con dos puntos (:). Una o más líneas de código después de esa línea forman un grupo de código.
Llamamos a la primera línea y al grupo de código posterior una cláusula (clause).
Como en el siguiente ejemplo:
if expression : suite elif expression : suite else : suite
Salida con print
printLa salida predeterminada incluye un salto de línea. Si se desea imprimir sin salto de línea, se debe añadir al final de la variableend="":
Ejemplo (Python 3.0+)
El resultado de ejecutar el ejemplo anterior es:
a b --------- a b
Para más información, consulte:Impresión sin salto de línea en Python2 y Python3 con print
import y from...import
En Python se usaimportofrom...importpara importar el módulo correspondiente.
Para importar el módulo completo (somemodule), el formato es:import somemodule
Para importar una función específica de un módulo, el formato es:from somemodule import somefunction
Para importar varias funciones de un módulo, el formato es:from somemodule import firstfunc, secondfunc, thirdfunc
Para importar todas las funciones de un módulo, el formato es:from somemodule import *
Importar el módulo sys
Importar los miembros argv y path del módulo sys
Puede consultar más contenido en:Principales diferencias entre Python import y from … import
Argumentos de línea de comandos
Muchos programas pueden realizar algunas operaciones para ver información básica. Python puede usar el parámetro -h para ver la ayuda de cada parámetro:
$ 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. ]
Cuando ejecutamos Python en forma de script, podemos recibir argumentos ingresados por la línea de comandos. Para el uso específico, consulteArgumentos de línea de comandos de Python 3。
Otras extensiones