¡Vectores! – #Quiz7

Creo que nunca dejaré de ver estas cosas, los vectores nos están invadiendo. Primero en mi clase de física, después en la clase de Ken y al final en la película que vi al finalizar el día. ¡Esto es increíble!

Este Quiz incluía un repaso a las listas y su función importante en este lenguaje de programación. Esta tarea consistía en introducir datos y calcular el producto cruz entre ellos, el producto cruz también se conoce como producto vectorial y  es así:

220px-Cross_product_parallelogram.svg Obviamente incluye vectores así que mi código resultó en el siguiente:

import random

dot_product = 0

n = int(input("Por favor, inserta el valor de n: "))

v = [None] * n
w = [None] * n

for i in range(0, n):
v[i] = random.randint(1, 100)
w[i] = random.randint(1, 100)

print(v)
print(w)

for i in range(0, n):
dot_product = dot_product + v[i] * w[i]

print("El producto escalar entre los 2 vectores es de " + str(dot_product))

En este código me serví de la enorme base de datos en forma de vídeos que es Youtube, precisamente me ayudó (sin saberlo) un chico colombiano, si quieren ver el vídeo pueden dar click aquí.

Mi código como siempre, está a su disposición en Github para manipularlo y mejorarlo.

Contador de palabras – #WSQ12

Aquí es cuando comenzamos a usar Python para cosas más interesantes y útiles en el mundo real. El problema a resolver en este #WSQ es indicarle a Python el nombre de un archivo, dejar que lo abra y posteriormente que busque cierta palabra dentro de el. Impresionante, ¿No es así?

palabras 1

Para resolver esta tarea Ken nos indicó un link que fue de muchísima ayuda, aunque si soy sincero, tengo que decir que mejor me vi el tutorial en Lynda.com ya que al ser más visuales hacen las cosas mucho más fáciles. Lamentablemente, sólo estaba disponible un tutorial orientado a Java pero me fue más que suficiente para poder aplicarlo a Python.

El código resultó en:

fname = input("Por favor, escribe el nombre del archivo que quieres buscar: ")
word = input("Exactamente, ¿Qué palabra estás buscando?: ").lower()
lower_case_word = word.lower()


def Counter(lower_case_word, fname):
counter = 0
with open(fname) as openfile:
for line in openfile:
line = line.lower()
counter += line.count(lower_case_word)
return(counter)

print("El numero total de la palabra " + str(word) + " en el archivo " + str(fname) + " es: " + str(Counter(lower_case_word, fname)))

Como siempre, si tienes alguna duda siempre puedes dejar un comentario o bien, checar mi código en Github, ahí está actualmente todo lo que hago. ¡Harías bien en darle un vistazo!

 

 

Euclids on the block! #Quiz6

Euclides es como mi dignidad, yo aseguro que existe pero nadie está de acuerdo con eso. Al igual que lo anterior dicho, la ente simplemente no puede ponerse de acuerdo sobre si Euclides existió o no, lo que no se puede negar ni de broma, es la utilidad de su algoritmo es la geometría.

Euclid_o_24537

Esta es la mejor imagen que pude encontrar.

El código resultó ser muy sencillo, creo que ha sido el más corto de todos pues la salida del programa sólo tenía que ser el MCD (máximo común divisor) y la función principal era portar el algoritmo de Euclides hacia el lenguaje de programación, el cual resultó en esto:

# --------------------- Este es el código correspondiente al Quiz 6 ----------------------------
def ade(a, b):
if a > b:
c = a - b
ade(b, c)
elif a < b:
c = b - a
ade(a, c)
else:
print(a)

ade(a=int(input("Vamos, introduce el primer número: ")), b=int(input("Ahora introduce el segundo número: ")))

Como siempre, mi código en Github está aquí.

 

Neil, an Alien #Quiz5

Este Quiz en especial fue uno de los más divertidos ya que encontré una imagen en Google me dio muchísima ternura y es la siguiente:

714e13b6-07eb-4ff2-9311-7cb8db52dd88

Cásate conmigo, Internet.

Si soy honesto, este Quiz me dió un poco de batalla, es decir… No fui capaz de resolverlo en clase y tuve que recurrir a la pagina de StackOverflow por enésima vez en el curso, pero al final de todo creo que fue la mejor idea que se me pudo haber ocurrido. Y mi código quedó de la siguiente manera:


# ------------------- Primera parte del código -------------------

def is_palindrome(word):
 mi = word.lower()
 temp = mi.replace(' ', '')
 if temp == temp[::-1]:
 print("¡Esta palabra es un palíndromo!")
 else:
 print("Lo sentimos, esto no es un palíndromo :(")

is_palindrome(word=str(input("Introduce una palabra para revisar si es un palíndromo o no: ")))

# ------------------- Segunda parte del código -------------------

lista_cool = int(input("Ingresa datos a esta lista (<=0 para terminar): "))
ins = []
while lista_cool > 0:
ins.append(lista_cool)
lista_cool = int(input("Ingresa datos a esta lista (<=0 para terminar): "))

print("Esta es la lista con los datos que introdujiste: ", ins)


def find_threes(x):
div = []
for i in x:
if i % 3 == 0:
div.append(i)
sum = 0
for i in range(0, len(div)):
sum = sum + div[i]
print("Estos son los números divisibles entre 3 de tu lista: ", div)
print("Y esta es la suma los numeros divisibles entre 3: ", sum)

find_threes(ins)

Aquí esta, como siempre, mi código en Github, dénse.

cara_enojada_emoji_pegatina_redonda-r064e88c660674edd9cc4110375f13d6d_v9waf_8byvr_324

Hey Ken, quiero mis puntos extra.

¡Fibonacci! #Quiz3

Hola de nuevo, y creo que después de mucho tiempo voy a postear de nuevo y esto se debe a que… ¡Me di cuenta que los Quizes también se deben de postear! Imaginarán mi cara cuando me di cuenta de esto, pero en fin, los códigos siempre estuvieron en mi Github así que esto es puro trámite, a continuación explicaré de lo que va cada parte de mi código.

portada-49

Sí, esta sucesión está en todos lados.

1: Esta parte del código tiene debe de tener dentro de él una función, dicha función deberá de calcular la distancia que existe entre 2 puntos en un plano X, Y y constó de lo siguiente:

# Este código te ayudará a encontrar la distancia entre 2 puntos y también te ayudará a encontrar la sucesión de números Fibonacci.

import math # Este módulo permite usar math.sqrt.

# ------------------- Primera parte del código -------------------

def distancia(x1, x2, y1, y2):
 d = math.sqrt(((x2 - x1)**2)+((y2 - y1)**2))
 print("La distancia es 5 unidades", d)

distancia(x1=int(input("Inserta el valor para x1: ")), y1=int(input("Inserta el valor para y1: ")),
x2=int(input("Inserta el valor para x2: ")), y2=int(input("Inserta el valor para y2: ")))

2: Esta parte de mi código se encarga de calcular una famosa sucesión en todo el universo, y además, creo que también es uno de los códigos más populares debido a que todos los maestros siempre se encargan de dejarlos en cualquier curso de programación. De cualquier modo, este es mi código:

 

# --------------------- Segunda parte del código -----------------

fi = 1.618033988749895


def fibonacci(n):
fibnum = (fi ** n - (1 - fi) ** n) / math.sqrt(5)
print("El resultado es", round(fibnum))

fibonacci(n=int(input("Introduce el número hasta el cuál quieres que llegue la serie Fibonacci: ")))

Este ha sido de lejos, uno de los Quizes más fáciles. A

Continue reading “¡Fibonacci! #Quiz3”

LychreL…?! ¡Cheryl! – #WQS11

El amor nos hace hacer cosas estúpidas, a algunos los incita a comprar más de un centenar de flores, a soportar el frío más intenso pero muy por encima de todos nosotros, Wade VanLandingham decidió nombrar así a un puñado de números de los cuales se tiene la sospecha que existen pero que hasta el momento su existencia no ha sido demostrada.

449px-California_196.svg

Ojalá hubiera una imagen mejor de un 196…

Un número de Lychrel va exactamente de lo siguiente:

Un número de Lychrel es un número natural que no puede formar un palíndromo a través del proceso iterativo repetitivo de invertir sus dígitos y sumar los números resultantes. Este proceso es a veces llamado algoritmo-196 (en inglés 196-algorithm), a raíz del número más famoso asociado con el proceso. En base decimal, no ha sido demostrado que los números de Lychrel existan, pero algunos, incluyendo el 196, son sospechosos por motivos estadísticos y de heurística. El nombre «Lychrel» fue acuñado por Wade VanLandingham como un anagrama aproximado de Cheryl, el nombre de su novia.

Con información de Wikipedia.

En mi opinión personal, creo que este es el código más difícil al que nuestro maestro nos ha sometido pues he tardado al menos 3 días enteros pensando en como resolverlo y al fin, este es mi código:

# Este programa te ayudará a encontrar los números Lychrel que probablemente existan en un rango determinado por tí.

def inverse(x):
x = str(x)
x = x[::-1]
x = int(x)
return x

numbers = []
lychrel = []
x = int(input(&quot;Ingresa el número del cual quieres comenzar a evaluar: &quot;))
x1 = int(input(&quot;Ingresa el número hasta el cual quieres evaluar: &quot;))
print(&quot;El rango de número que vamos a analizar es de %s a %s&quot; % (x, x1))
for i in range(x1-x+1):
numbers.append(x)
x = (x 
Sin título
Continue reading "LychreL…?! ¡Cheryl! – #WQS11"

Elige un número #WSQ06

Este programa de lejos fue el más divertido de todos. Y creo con el que también aprendí más pues aprendí a usar un módulo importante: el módulo random. Esta tarea consistía en crear un código que al ejecutarlo funcionara como un juego, en el mismo tenías que encontrar el número que eligiera la máquina entre el 1 y el 100. Si no lo lograbas a la primera, bueno, podrías siempre podías intentarlo de nuevo hasta encontrar el número correcto.

Este es el código que emplee para llevar a cabo esta tarea:

fun with.png

¡Y lo explicaré un poco! En la primera línea inmediatamente después del comentario podemos darnos cuenta que existe un ‘import random‘ y esto no hace otra cosa mas que invocar un archivo incluido en la librería de Python llamado random.py este archivo es capaz de seleccionar un número al “azar” entre el rango de número que indiques, o bien, del tipo de número que indiques. Esto se denota cuando más adelante a la variable ‘correct‘ le asigno un valor de ‘random.randint(1, 100)’ este segmento de código le dice que se tendrá que elegir un número entre y el rango de elección lo indico con los números 1 al 100. Es decir, se elegirá un número entero al azar entre el 1 y el 100.

fun

Para contabilizar el número de intentos utilicé la variable ‘attempts‘ y cada vez que haya un intento fallido, este se sumará a los otros previamente utilizados.

Como siempre, el código lo adjunto en la siguiente liga como un archivo .py.

Python.svg

¡Diversión con números! #WSQ03

Bueno, este programa fue muy fácil de hacer y… Aunque la forma de hacer este tipo de programas en este lenguaje de programación es muy similar a otros, la sintaxis más bien parece confundirnos un poco. Esta confusión es alimentada por nuestros conocimientos previos de otros lenguajes tales como C# o Java.

Lo primero que hice fue conseguir los libros necesarios (es español por supuesto) para aprender la manera correcta de llamar órdenes para posteriormente ejecutarlas y que el programa hiciera justo lo que yo quería que hiciera y este es mi código final.

code

Inmediatamente después de nuestro comentario acerca de lo que nuestro programa hace imprimimos un mensaje en pantalla animando a el usuario a introducir el primer dígito para posteriormente hacer las operaciones correspondientes, para lograr nuestro cometido primero nombramos a nuestra primera variable como ‘numero_a‘ esta variable estará seguida de un signo igual lo que significa que le asignaremos un valor, este valor será un valor en forma de dígito numérico que el usuario introduzca en la consola. Para esto usamos la orden ‘int(input())‘, la palabra ‘input()‘ nos indica que la consola se pausará un momento hasta que el usuario introduzca un valor, este puede ser un número o una letra mientras que la palabra ‘int()‘ nos ayudará a convertir el valor que el usuario introduzca a un valor entero (integer). La forma en que planteamos esta orden, ‘int(input())‘ es un buen ejemplo de que la Python y la concatenación de órdenes no están peleados de ningún modo.

Las demás variables son muy claras en cuanto a lo que significan con excepción de ‘.format(cociente)‘. Este orden puede parecer confusa al principio, pero con el tiempo se volverá de lo más normal pues es

Python.svg

Continue reading “¡Diversión con números! #WSQ03”

print (“¡Hola Mundo!”) #WSQ02

Python es un lenguaje tan versátil en el no es necesario un archivo de código para poder correr un simple programa, simplemente puedes escribir un pedazo de código en la terminal y puedes empezar a ver los resultados al instante, cabe destacar que este modo de usar el lenguaje de Python se denomina modo de comando. En este aspecto este lenguaje me encanta ya que hasta cierto punto es atractivo para los nuevos usuarios que son totalmente nuevos en el arte de programar.

Hola Mundo

Este código lo proporciona una consola dentro del programa PyCharm y vamos a desglosar un poco del mismo a continuación:

En primera instancia la primera línea de código es un mensaje del intérprete en este caso el programa dentro del cual estamos corriendo nuestra consola.

En la segunda línea los símbolos ‘>>>‘ nos indican que el interprete está listo para que nosotros introduzcamos nuestras propias líneas de código y sentencias. Más adelante en la misma línea de código introducimos el comando ‘print‘ el cual es una sentencia que muestra un valor o un resultado, este valor es precisamente las palabras que introducimos ‘Hola Mundo’ (las comillas no se muestran ya que estas indican el inicio y el final del valor).

Bien, con esto en mente ya podemos comenzar a adentrarnos en el mundo de Python.