Conceptos básicos de Python

Conceptos básicos de Python

Comentarios en Python

Comentarios de una sola línea en Python

En Python, se utiliza el símbolo de almohadilla (#) para crear comentarios de una sola línea. El formato es:

 # Contenido del comentario


Es decir, desde el carácter # hasta el final de la línea se considera parte del comentario y será ignorado durante la ejecución del programa. El comentario puede colocarse antes de la línea de código que se quiere comentar, por ejemplo:

# Este es un comentario simple
print ("¡Hola Mundo!")


O puede colocarse al final de la línea de código, como:

print ("¡Hola Mundo!") # Este es un comentario simple


Aunque la posición varíe, ambos casos producirán el mismo resultado: imprimir "¡Hola Mundo!".

Comentarios multilínea en Python

Los comentarios multilínea permiten comentar múltiples líneas de código (incluyendo una sola línea). Existen dos formas de hacerlo:

'''
Usando tres comillas simples para abrir y cerrar
Se pueden comentar varias líneas de contenido
Todo esto es parte del comentario
'''


O bien:

"""
Usando tres comillas dobles para abrir y cerrar
Se pueden comentar varias líneas de contenido
Todo esto es parte del comentario
"""


Estos comentarios suelen usarse para incluir información sobre licencia, descripción de funcionalidad, etc., en archivos, módulos, clases o funciones. Es importante mencionar que si estos marcadores aparecen dentro de una sentencia, se tratan como cadenas en lugar de comentarios, por ejemplo:

print('''¡Hola, Mundo!''')


Este código imprime: ¡Hola, Mundo!. En este caso, los tres apóstrofos no son interpretados como comentarios sino como delimitadores de cadena.

Declaración de codificación para caracteres chinos en Python

Python también permite declaraciones especiales de codificación para manejar caracteres chinos. Aunque esta limitación fue eliminada en Python 3.x, se recomienda incluir esta declaración al inicio del archivo para mantener la compatibilidad y claridad. La sintaxis es:

 # -*- coding:codificación -*-
 O
 # coding=codificación


Donde codificación puede ser UTF-8, GBK, entre otros. En la primera forma, los -*- son solo decorativos. Por lo tanto, se puede escribir simplemente:

 # coding:utf-8
 O
 # coding=utf-8


Agregar comentarios tiene otra utilidad práctica: ayudar a depurar el código. Si sospechas que cierta parte está causando errores, puedes comentarla temporalmente para ver si el problema persiste.

Reglas de sangría en Python

A diferencia de otros lenguajes como Java o C, donde se usan llaves {} para definir bloques de código, Python utiliza sangrías y dos puntos :. Un dos puntos al final de una línea, seguido de una línea con sangría, indica el comienzo de un nuevo bloque de código. La sangría termina cuando se encuentra una línea sin sangría o una línea con menor sangría. Se puede usar espacio o tabulador para la sangría, aunque generalmente se recomienda usar 4 espacios (un tabulador equivale a 4 espacios).

Normas de codificación en Python

Python sigue las normas de codificación establecidas en PEP 8, que es una guía de estilo para el código Python. Aquí se presentan algunas reglas importantes para principiantes:

  1. Cada sentencia import debe importar un solo módulo. Ejemplo:
# Recomendado
import os
import sys

# No recomendado
import os,sys


  1. No se deben usar punto y coma al final de las líneas ni para separar comandos en una misma línea. Ejemplo:
# No recomendado
altura=float(input("Ingrese altura:")) ; peso=float(input("Ingrese peso:")) ;


  1. Se recomienda que cada línea tenga máximo 80 caracteres. Para líneas largas, usar paréntesis para concatenar implícitamente:
# Recomendado
s=("Sitio web profesional de programación en C, "
"ofrece tutoriales de introducción a C, compiladores de C, manuales de funciones, etc.")
# No recomendado
s="Sitio web profesional de programación en C, \
ofrece tutoriales de introducción a C, compiladores de C, manuales de funciones, etc."


  1. Usar líneas en blanco mejora la legibilidad. Dos líneas en blanco entre definiciones de nivel superior (funciones o clases), una línea entre definiciones de métodos, y una línea para separar funcionalidades.
  2. Usar espaicos alrededor de operadores y después de comas para mejorar la claridad.

Herramientas automatizadas de normas de codificación

Primero, selecciona o define las normas adecuadas para tu equipo. Puedes usar PEP 8 o Google Style como referencia. Una vez definidas, asegúrate de aplicarlas mediante revisiones de código y herramientas de análisis estático como Pylint.

Nomenclatura de identificadores en Python

Los identificadores en Python deben seguir ciertas reglas:

  1. Están formados por letras (A-Z y a-z), guiones bajos y números, pero no pueden comenzar con un número.
  2. No pueden coincidir con palabras reservadas de Python.
  3. No pueden contener espacios, @, % o $. Ejemplos válidos:
IDUsuario
nombre
modo12
edad_usuario


Ejemplos inválidos:

palabra   # No puede comenzar con número
try       # try es una palabra reservada
$dinero   # No puede contener caracteres especiales


  1. Python distingue entre mayúsculas y minúsculas en los identificadores:
numero = 0
Numero = 0
NUMERO = 0


  1. Identificadores que comienzan con guión bajo tienen significados especiales:
  2. Un guión bajo inicial (como _ancho) indica atributos privados.
  3. Doble guión bajo inicial (como __agregar) representa miembros privados de clase.
  4. Doble guión bajo al principio y final (como __init__) son identificadores especiales. Se recomienda evitar estos a menos que sea necesario.

Palabras clave en Python

Las palabras clave son términos con significado especial en Python. No pueden usarse como nombres de variables, funciones, clases, etc. Para ver todas las palabras clave en Python:

 >>> import keyword
 >>> keyword.kwlist
 ['False', 'None', 'True', 'and', 'as',
 'assert', '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']


Funciones integradas en Python

Python proporciona muchas funciones predefinidas para facilitar el desarrollo. Puedes consultarlas en https://docs.python.org/zh-cn/3/library/functions.html

Función integrada
abs() delattr() hash() memoryview() set()
all() dict() help() min() setattr()
any() dir() hex() next() slice()
ascii() divmod() id() object() sorted()
bin() enumerate() input() oct() staticmethod()
bool() eval() int() open() str()
breakpoint() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() import()
complex() hasattr() max() round()

Variables en Python

Python usa el signo igual (=) como operador de asignación. Por ejemplo, a = 20 significa asignar el valor 20 a la variable a.

Nota: Los nombres de variables son identificadores, así que deben seguir las reglas de nomenclatura de Python y evitar conflictos con funciones o palabras clave incorporadas.

Comparando con C:

 int a = 20


Este código declara una variable entera a que contiene el valor 20. En lenguajes fuertemente tipados, a solo puede almacenar valores enteros. En Python, las variables pueden cambiar de tipo dinámicamente:

# Definir una variable de tipo numérico
a = 5
print(a)
# Reasignar una cadena a la variable a
a = 'Hola, Charlie'
print(a)
print(type(a))


Salida:

5
Hola, Charlie
<class 'str'>


Tipos enteros

Los tipos enteros representan números sin parte decimal.

# Asignar un valor entero a la variable a
a = 56
print(a)
# Asignar un número grande a la variable a
a = 9999999999999999999999
print(a)
# La función type() devuelve el tipo de la variable
print(type (a))


Salida:

56
9999999999999999999999
<class 'int'>


Los enteros en Python pueden tener cuatro representaciones:

  1. Decimal: números comunes, sin comenzar con 0 (excepto el número 0).
  2. Binario: usando 0b o 0B. Ejemplo: 101 es 5 en decimal.
  3. Octal: usando 0o o 0O. Ejemplo: 0o54 es 44 en decimal.
  4. Hexadecimal: usando 0x o 0X. Ejemplo: 0x13 es 19 en decimal.
# Valores hexadecimales
hex_value1 = 0x13
hex_value2 = 0XaF
print("hexValue1 es:",hex_value1)
print("hexValue2 es:",hex_value2)
# Valores binarios
bin_val = 0b111
print('bin_val es:',bin_val)
bin_val = 0B101
print('bin_val es:',bin_val)
# Valores octales
oct_val = 0o54
print('oct_val es:',oct_val)
oct_val = 0O17
print('oct_val es:',oct_val)


Tipos de punto flotante

Los números de punto flotante guardan valores con decimales.

  1. Formato decimal: Ejemplo 5.12, 512.0, 0.512.
  2. Formato científico: Ejemplo 5.12e2 (que es 5.12×10²).
af1 = 5.2345556
print("af1 es:",af1)
af2 = 25.2345
print("af2 es:",type(af2))
f1=5.12e2
print("f1 es:",f1)
f2 = 5e3
print("f2 es:",f2)
print("f2 es:",type(f2))


Aunque 5e3 da 5000, sigue siendo un tipo float porque Python lo convierte automáticamente a 5000.0.

Cadenas de texto

En Python, las cadenas deben estar entre comillas simples o dobles.

str1 = 'c.biancheng.net'
str2 = "C语言中文网"
print(str1)
print(str2)


Si la cadena contiene comillas internas, se pueden usar comillas diferentes o escaparlas:

str3 = "I'm a coder"
print(str3)


str4 = '"Spring is here,let us jam!", said woodchuck.'


str5 = '"we are scared,Let\'s hide in the shade", says the bird'


Las cadenas pueden contener saltos de línea con el carácter de escape \:

s2 = 'The quick brown fox \
jumps over the lazy dog'
print(s2)


Cadenas largas

Usar tres comillas permite definir cadenas multilínea:

s = '''"Let's go fishing", said Mary.
"OK, Let's go", said her brother.
they walked to a lake'''
print(s)


Cadenas crudas

Las cadenas crudas comienzan con r y no interpretan caracteres especiales como \:

s1 = r'G:\publish\codes\02\2.4'
print(s1)


Codificación de caracteres en Python

Por defecto, Python usa UTF-8. Puedes convertir cadenas Unicode usando encode().

Tipo bytes

Python 3 introduce el tipo bytes para representar secuencias de bytes.

# Crear bytes vacíos
b1 = bytes()
b2 = b''
# Usar prefijo b para crear bytes
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])
# Usar bytes() para convertir una cadena
b4 = bytes('Me encanta Python',encoding='utf-8')
print(b4)
# Usar encode() de una cadena
b5 = "Aprender Python es divertido".encode('utf-8')
print(b5)


Salida:

b'hello'
104
b'll'
b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
b'\xe5\xad\xa6\xe4\xb9\xa0Python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'


Tipo booleano

Python tiene un tipo bool para representar verdadero o falso.

>>> 5>3
True
>>> 4>20
False


Función input()

La función input() muestra un mensaje y espera la entrada del usuario, devolviendo siempre una cadena.

msg = input("Ingrese su valor:")
print (type(msg))
print(msg)


Salida:

Ingrese su valor:2
<class 'str'>
2


Función print()

print() puede mostrar múltiples valores y tiene opciones adicionales:

user_name = 'Charlie'
user_age = 8
print("Nombre:",user_name,"Edad:",user_age)


Salida:

Nombre: Charlie Edad: 8


Usando sep para cambiar el separador:

print("Nombre:",user_name,"Edad:",user_age,sep='|')


Salida:

Nombre:|Charlie|Edad:|8


Usando end para evitar salto de línea:

print(40,'\t',end="")
print(50,'\t',end="")
print(60,'\t',end="")


Salida:

40  50  60


Usando file para redirigir salida a archivo:

f = open("demo.txt","w")
print('Lágrimas de perla en la luna',file=f)
print('Solemne calor en el cielo',file=f)
f.close()


Formato de salida

Python permite formatear datos usendo %:

price = 108
print ("El precio del libro es %s" % price)

user = "Charlie"
age = 8
print("%s es un niño de %s años" % (user , age))


Ancho mínimo y formato

num = -28
print("num es: %6i" % num)
print("num es: %6d" % num)
print("num es: %6o" % num)
print("num es: %6x" % num)
print("num es: %6X" % num)
print("num es: %6s" % num)


Salida:

num es:  -28
num es:  -28
num es:  -34
num es:  -1c
num es:  -1C
num es:  -28


Alineación y signos

num2 = 30
print("num2 es: %06d" % num2)
print("num2 es: %+06d" % num2)
print("num2 es: %-6d" % num2)


Salida:

num2 es: 000030
num2 es: +00030
num2 es: 30


Precisión decimal y cadenas

my_value = 3.001415926535
print("my_value es: %8.3f" % my_value)
print("my_value es: %08.3f" % my_value)
print("my_value es: %+08.3f" % my_value)
the_name = "Charlie"
print("el nombre es: %.3s" % the_name)
print("el nombre es: %10.2s" % the_name)


Salida:

my_value es:  3.001
my_value es: 0003.001
my_value es: +003.001
el nombre es: Cha
el nombre es:     Ch


Operadores en Python

Operadores aritméticos

Operadores para operaciones matemáticas básicas.

Operador Descripción Ejemplo Resultado
+ Suma 12.45 + 15 27.45
- Resta 4.56 - 0.26 4.3
* Multiplicación 5 * 3.6 18.0
/ División 7 / 2 3.5
% Módulo 7 % 2 1
// División entera 7 // 2 3
** Potencia 2 ** 4 16

Operador de suma

a = 5.2
b = 3.1
the_sum = a + b
print("the_sum es:", the_sum)


También se usa para concatenar cadenas:

s1 = 'Hola, '
s2 = 'Charlie'
print(s1 + s2)


Operador de resta

c = 5.2
d = 3.1
sub = c - d
print("sub es:", sub)


También puede negar un valor:

x = -5.0
x = -x
print(x)


Operador de multiplicación

e = 5.2
f = 3.1
multiply = e * f
print("multiply es:", multiply)


También se usa para repetir cadenas:

s3 = 'locura '
print(s3 * 5)


Operador de división

print("19/4 es:", 19/4)
print("19//4 es:", 19//4)
aa = 5.2
bb = 3.1
print("aa/bb es:", aa / bb)
print("aa//bb es:", aa // bb)


Operador de módulo

print("5%3 es:", 5 % 3)
print("5.2%3.1 es:",5.2 % 3.1)
print("-5.2%-3.1 es:", -5.2 % -3.1)
print("5.2%-2.9 es:", 5.2 % -2.9)
print("5.2%-1.5 es:", 5.2 % -1.5)
print("-5.2%1.5 es:", -5.2 % 1.5)


Operador de potencia

print('5 elevado a 2:', 5 ** 2)
print('4 elevado a 3:', 4 ** 3)
print('Raíz cuadrada de 4:', 4 ** 0.5)
print('Raíz cúbica de 27:',27 **(1 / 3 ))


Operadores de asignación

Operador básico de asignación

st = "Python"
pi = 3.14
visited  = True


También se puede copiar valores entre variables:

st2 = st
print(st2)


Operadores de asignación extendidos

a = 1
b = 2
a += b
print("a+b=",a)
a -= b
print("a-b=",a)
a *= b
print("a*b=",a)
a /= b
print("a/b=",a)
a %= b
print("a%b=",a)
c = 0
d = 2
c &= d
print("c&d=",c)
c |= d
print("c|d=",c)


Operadores bit a bit

Operan sobre valores enteros tratándolos como binarios.

Operador Descripción Ejemplo
& AND bit a bit 4 & 5
| OR bit a bit 4 | 5
^ XOR bit a bit 4 ^ 5
~ NOT bit a bit ~4
<< Desplazamiento izquierdo 4 << 2
>> Desplazamiento derecho 4 >> 2

AND bit a bit

>>> 12 & 8
8


OR bit a bit

>>> 4 | 8
12


XOR bit a bit

>>> 31 ^ 22
9


NOT bit a bit

>>> ~-5
4


Desplazamiento izquierdo

>>> 5 << 2
20
>>>-5 << 2
-20


Desplazamiento derecho

>>> -5 >> 2
-2


Operadorse de comparación

Compara valores y devuelve True o False.

Operador Descripción
> Mayor que
>= Mayor o igual
< Menor que
<= Menor o igual
== Igual
!= Distinto
is Verifica si dos variables apuntan al mismo objeto
is not Verifica si dos variables apuntan a objetos diferentes
>>> print("¿5 es mayor que 4?", 5 > 4)
¿5 es mayor que 4? True
>>> print("¿3 elevado a 4 es mayor o igual que 90.0?", 3 ** 4 >= 90)
¿3 elevado a 4 es mayor o igual que 90.0? False
>>> print("¿20 es mayor o igual que 20.0?", 20 >= 20.0)
¿20 es mayor o igual que 20.0? True
>>> print("¿5 es igual a 5.0?", 5 == 5.0)
¿5 es igual a 5.0? True
>>> print("¿True es igual a False?", True == False)
¿True es igual a False? False


Diferencia entre == e is

import time
a = time.gmtime()
b =  time.gmtime()
print(a == b) # True
print(a is b) # False


Operadores lógicos


Operan con valores booleanos.

Operador Descripción
and Devuelve True si ambos operandos son True
or Devuelve True si al menos uno es True
not Devuelve True si el operando es False
print(not False)
print(5 > 3 and 20.0 > 10)
print(4 >= 5 or "c" > "a")


Etiquetas: Python basics variables Operators comments

Publicado el 8-9 09:36