Código de buenas prácticas de Programación PDF

Title Código de buenas prácticas de Programación
Author Jorge Rivet
Course Fundamentos de la Programación
Institution Universidad Nacional de Santiago del Estero
Pages 6
File Size 208.2 KB
File Type PDF
Total Downloads 96
Total Views 148

Summary

Buenas practicas con Python...


Description

Buenas prácticas en Python Este documento contiene un conjunto de las buenas prácticas de programación que usaremos en la cátedra.

Indice Variables Nombre de las variables Variables Constantes Comparación de variables Permitir la entrada de valores dentro de un rango determinado

2 2 2 2 3

Funciones y datos útiles (Python) String ASCII Operadores Ciclos

4 4 4 4 5

NumPy Declaración de arreglos Indexado/intervalos de un arreglo “Trucos” o atajos

5 5 5 6

Variables Nombre de las variables Los nombres de las variables pueden tener longitud arbitraria. Pueden estar formados por letras y números, pero deben comenzar con una letra. Recuerde que al usar las mayúsculas y las minúsculas, Numero y numero son variables diferentes. - Es recomendable usar nombres descriptivos y cortos para las variables. A pesar que numeroDeAniosDelPerroDeMiTia es un nombre de variable válido, es más conveniente usar algo como edad_perro o aniosPerro, ya que durante el desarrollo del código éste se volvería muy confuso con nombres de variable muy largos.

Variables Constantes Es una convención en programación que las variables constantes estén en mayúsculas . Las constantes son variables que tienen por finalidad almacenar valores que nunca cambian desde la primera sentencia de asignación. Aunque puedes cambiar el valor como con cualquier otra variable, un nombre con todas las mayúsculas te recuerda no hacerlo. Como todas las convenciones, es tu decisión seguirla. Pero siguiendo esta convención le haces más fácil a otras y otros programadores leer tu código.

Comparación de variables Al realizarse una comparación entre dos datos, hay que tener en cuenta los símbolos que se emplean para la misma. Puede compararse el valor de dos variables, o el valor de una variable y un literal1. Si se tiene en cuenta el siguiente bloque de código: var = input("  Si ingresas 'A', la computadora explota> ") if var != A: #  Compara la variable var con la variable A print("Boom!") else: print("Fin del programa...")

El intérprete informará que no se definió una variable A en el programa, o sea, tratará de 1

Literal: Se le dice así a un símbolo que se describe a sí mismo, que representa su propio valor. Por ejemplo, el número 12.75, el carácter ‘A’, y la cadena “Hola Mundo” son literales, pero numeroAnios no, porque no describe por sí mismo el valor que tiene (ya sea un número, cadena, etc.).

comparar el valor de var con el valor de la variable A , la cual puede no estar definida o ser una variable con un valor distinto al que queremos. En cambio, si se cambia la línea del condicional por: if var != 'A': # Compara la variable var con el literal 'A'

El programa se ejecutará correctamente y comparará el valor de la variable con el literal ‘A’.

Permitir la entrada de valores dentro de un rango determinado Si se necesita que el ingreso de una variable sea dentro de un rango determinado, se debe establecer un rango de valores que puede tener la variable. Este proceso se realiza siempre que el algoritmo se diseña para un dominio acotado. Ejemplo: Tenemos un programa que precisa el ingreso de los datos de un perro. Se debe ingresar la edad ( edad ≥ 0 ), el nombre ( nombre =/ "" ) y la cantidad de patas del perro ( 0 ≤ patas ≤ 4 ). Un código por el cual se podría realizar ésto es: edad = int(input("Ingrese edad> ")) while edad < 0:  edad = int(input("Edad no valida> ")) nombre = input("  Ingrese nombre> ") while nombre == "  ": nombre = input("  Nombre no puede ser nulo> ") patas = int(input("  Ingrese cantidad de patas> ")) while patas < 0   or patas > 4  : patas = int(input("Cantidad de patas no valida> "))

La funcionalidad de los ciclos while en este bloque de código es de repetir el ingreso de datos mientras no se cumplan las condiciones de ingreso deseadas. Por ejemplo, si se necesita que la variable edad sea mayor o igual a 0, el ciclo del ingreso de while se ejecutará siempre que la variable edad sea menor a 0. En caso de que al comenzar el programa se haya ingresado un valor válido (por ejemplo, 6 ) , el programa nunca entrará en el cuerpo del primer while , ya que nunca es verdadera la condición de que edad < 0 , continuando la ejecución normal del programa. La funcionalidad es análoga para los siguientes ciclos del programa.

Funciones y datos útiles (Python) A pesar de estar en este documento, varios de los métodos y funciones usadas aquí no son del todo aptos para usar en exámenes (por ejemplo, .sort()), ya que a pesar de que se consigue el mismo resultado que desarrollando una función, el objetivo de los exámenes es evaluar la comprensión general de los conceptos fundamentales de la programación, y no necesariamente el manejo de un lenguaje de programación en particular. De todas formas, esta sección tendrá información útil que en algunos casos puede servir para “depurar” o probar algún programa o algoritmo que se desee hacer.

String foo = input() #  Ingresamos "hola AMEO" # .upper() transforma llos caracteres de una cadena a mayusculas print(foo.upper()) #  Imprime "HOLA AMEO" # .lower() transforma los caracteres de una cadena a minusculas print(foo.lower()) #  Imprime "hola ameo" # .capitalize() transforma los caracteres de una cadena a minusculas, y el primero a mayuscula print(foo.capitalize()) #  Imprime "Hola ameo" bar = "rIcArDo MiLoS hEcKiNg OwNs ShOwMaTcH aNd LeAvEs TiNeLlI cRyInG" # .title() convierte cada palabra a minusculas, y el primer caracter de cada palabra a mayuscula print(bar.title()) #  Imprime "Ricardo Milos Hecking Owns Showmatch And Leaves Tinelli Crying" # str(var) convierte una variable a string i = 1 0 print("El valor de i es " + str(i))

ASCII foo = input() #  Ingresamos el caracter '@' bar = ord(foo) # bar tiene el codigo de '@' (64) baz = chr(bar) # baz tiene el caracter correspondiente al codigo 64 ('@')

Operadores # Muchas asignaciones usadas en conjunto con operadores aritméticos pueden ser resumidas foo += bar # foo = foo + bar foo -= bar # foo = foo - bar foo foo foo foo

*= bar /= bar //= bar %= bar

# # # #

foo foo foo foo

= = = =

foo foo foo foo

* bar / bar // bar % bar

foo, bar = bar, foo

# Intercambia foo y bar

Ciclos # Los tres ciclos son equivalentes, producen el mismo resultado i = 0  while i < foo: print(i) i += 1   foo): for i in range(0, print(i) for i in range(foo): print(i)

NumPy Declaración de arreglos arr = np.array([5,  7, 3,  2, 1,  4, 6,  8, 0])  # Crea un arreglo con los elementos especificados blk = np.empty(10, dtype=np.int) zer = np.zeros(1  0, dtype=np.int)

# Crea un arreglo vacio de dimension 10 y tipo entero  Crea un arreglo inicializado con 0s y tipo entero #

Indexado/intervalos de un arreglo # arr[i:j] hace referencia al # del rango de indices [i, j) # print(arr[:])  Imprime print(arr[0:  2]  ) # Imprime print(arr[1:  4]  ) #  Imprime print(arr[2:  ]) #  Imprime print(arr[1:  4]  ) #  Imprime print(arr[:4]) #  Imprime print(arr[-1]) #  Imprime arr[i:j] = var

subconjunto de los elementos del arreglo dentro todos los elementos del vector. Equivalente a print(arr) los elementos con indices -> 0 & 1 los elementos con indices -> 1, 2, & 3 los elementos con indices -> 2 hasta N-1 (ultimo elemento) los elementos con indices -> 1, 2, & 3 los elementos con indices -> 0 hasta 3 el ultimo elemento

#  Da el valor de var a los elementos comprendidos en los indices [i, j)

# arr[i:j:s] hace referencia al subconjunto de los elementos del arreglo # dentro del rango de indices [i, j) en pasos (incrementos) de valor s print(arr[::-1]) #  Imprime todos los elementos del vector comenzando desde el # ultimo hasta el primer elemento print(arr[5:  2:  -1]) # Imprime los elementos con indices -> 5, 4, & 3 print(arr[4::  -1]) #  Imprime los elementos con indices -> 4 hasta el primer # elemento (indice 0)  -1]) #  Imprime los elementos con indices -> N hasta el indice 3 (al reves) print(arr[:2: print(arr[::2]  ) #  Imprime los elementos con indices -> 0, 2, 4,... hasta N - 1 print(arr[1::  2]) #  Imprime los elementos con indices -> 1, 3, 5,... hasta N - 1

“Trucos” o atajos -

-

Especificos de PyCharm: - CTRL + SHIFT + L acomoda automaticamente el codigo, aumentando la legibilidad y prolijidad del programa. También se puede hacer lo mismo ingresando en Code>Reformat Code dentro de los menús del programa. - SHIFT + F6 permite cambiar el nombre de una variable o estructura, y también cambia el mismo nombre en todas las ocurrencias de la misma el el código. Se puede hacer lo mismo haciendo clic derecho en el nombre del dato, y luego en Refactor>Rename. Python:

# Declaracion de un arreglo arr, cuyos elementos son valores enteros ingresados por el # usuario y separados por espacios en una misma linea. Su dimension fisica es la misma # que la cantidad de elementos ingresados por el usuario. arr = np.array(list(map(int, input().split()))) # Operador condicional ternario. Pueden ser anidados. # La estructura es: # (resultadoSiVerdadero) if (condicion) else (resultadoSiFalso) print("Que calor que hace chango" if temperatura > 27.0 else "Que frio que hace chango") # Preguntar si un elemento es de un tipo especifico. # Devuelve un valor booleano (True, False) indicando si var es un numero entero. # Sirve tambien para cualquier otro tipo de dato (bool, float, str, complex, etc).  No es un numero entero") print("Es un numero entero" if type(var) == int else " # Se pueden hacer dos o mas operaciones en una misma linea, siempre y cuando estas esten separadas por el punto y coma (;) print("hola"); print("chao")...


Similar Free PDFs