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

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

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íaPalabra claveDescripción
Valores lógicosTrueValor booleano verdadero
FalseValor booleano falso
NoneRepresenta un valor nulo o sin valor
Operaciones lógicasandOperación lógica AND
orOperación lógica OR
notOperación lógica NOT
Control condicionalifSentencia de evaluación condicional
elifSino si (abreviatura de else if)
elseRama else
Control de buclesforBucle de iteración
whileBucle condicional
breakSalir del bucle
continueOmitir el resto del bucle actual y pasar a la siguiente iteración
Manejo de excepcionestryIntentar ejecutar un bloque de código
exceptCapturar una excepción
finallyBloque de código que se ejecuta tanto si se produce una excepción como si no
raiseLanzar una excepción
Definición de funcionesdefDefinir una función
returnDevolver un valor desde una función
lambdaCrear una función anónima
Clases y objetosclassDefinir una clase
delEliminar la referencia a un objeto
Importación de módulosimportImportar un módulo
fromImportar una parte específica de un módulo
asCrear un alias para el módulo u objeto importado
ÁmbitoglobalDeclarar una variable global
nonlocalDeclarar una variable no local (para funciones anidadas)
Programación asíncronaasyncDeclarar una función asíncrona
awaitEsperar a que se complete una operación asíncrona
OtrosassertAserción, utilizada para probar si una condición es verdadera
inComprobar la pertenencia
isComprobar la identidad de un objeto (si es el mismo objeto)
passSentencia vacía, utilizada como marcador de posición
withAdministrador de contexto, utilizado para la gestión de recursos
yieldDevolver 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+)

#!/usr/bin/python3 # El primer comentario print ("Hello, Python!") # El segundo comentario

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

#!/usr/bin/python3 # El primer comentario # El segundo comentario '''Tercer comentario Cuarto comentario''' """Quinto comentario Sexto comentario""" print ("Hello, Python!")

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

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

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

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

#!/usr/bin/python3 str='123456789' print(str) # Salida de la cadena print(str[0:-1]) # Salida de todos los caracteres del primero al penúltimo print(str[0]) # Salida del primer carácter de la cadena print(str[2:5]) # Salida de los caracteres desde el tercero hasta el sexto (no incluido) print(str[2:]) # Salida de todos los caracteres a partir del tercero print(str[1:5:2]) # Salida desde el segundo hasta el quinto carácter, tomando uno de cada dos (paso de 2) print(str * 2) # Imprime la cadena dos veces print(str + 'Hola') # Concatenar cadenas print('------------------------------') print('hello\nejemplo') # Usar barra invertida (\)+n para escapar caracteres especiales print(r'hello\nejemplo') # Agregar una r delante de la cadena, lo que indica una cadena sin procesar (raw string); no se producirá escape

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

#!/usr/bin/python3 input("\n\nPresione la tecla Enter para salir.")

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

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

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

#!/usr/bin/python3 x="a" y="b" # Salida con salto de línea print( x ) print( y ) print('---------') # Salida sin salto de línea print( x, end=" " ) print( y, end=" " ) print()

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

import sys print('================Python import mode==========================') print ('Los argumentos de la línea de comandos son:') for i in sys.argv: print (i) print ('\nLa ruta de Python es',sys.path)

Importar los miembros argv y path del módulo sys

from sys import argv,path # Importar miembros específicos print('================python from import===================================') print('path:',path) # Dado que el miembro path ya está importado, no es necesario anteponer sys.path al referenciarlo aquí

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