¡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"

Facto, facta… ¡Factoriales! #WSQ09

Este código se trata acerca de encontrar el resultado de el factorial de un número. Es decir si introducimos el número 5 y queremos encontrar el resultado de su factorial es: 1 * 2 * 3 * * 5 = 120. Sí lo sé, las matemáticas tienen nombres complicados para cosas sumamente sencillas.

El requerimiento para este código era no usar la función math.factorial(n) porque entonces el código se resumiría a una o 2 líneas así que lo tenemos que hacer de la forma ruda y aquí lo tenemos:

WSQ091

Este código fue hecho bajo un ciclo while.

Mientras que el segundo código lo hicimos así:

WSQ09

Este código fue hecho bajo un ciclo for.

En especial, esta tarea fue muy sencilla de hacer teniendo los conocimientos previos, este código lo había realizado en mi clase de Introducción a la Computación el semestre pasado con la diferencia que lo había realizado en el lenguaje C# y ahí podía usar do/while y eso hacía las cosas mucho más sencillas.

Para hacer una sentencia similar al do/while usé otro ciclo:

while True:
stuff()
if not condition():
break

Este ciclo lo encontré en la página StackOverflow. Tengo que decir que estos chicos si saben de lo que hablan.

A continuación anexo mi código en GitHub como siempre debería haberlo hecho.


# Este código es para encontrar el factorial de un número mediante un while loop.

while True:
    num = int(input("Venga, dame ese número: "))
    res = num - 1
    while res != 1:
        num *= res
        res -= 1
    print("Hola, tu resultado es {}".format(num))
    ques = str(input("¿Quieres intentarlo de nuevo?: "))
    if not ques == "y":
        break

# Este código es para encontrar el factorial de un número mediante un for loop.

while True:
    numb = int(input("Venga, dame ese número: "))
    fact 
Continue reading "Facto, facta… ¡Factoriales! #WSQ09"

¡Factoriales! #WSQ07

Esta pequeña tarea nos anima a hacer una suma factorial, es decir, al darle 2 números (rango) tenemos que sumar todos los números que hay en los mismos es decir: Al darle el rango (6, 10) el programa hará esta suma: 0+ 6 + 7 + 8 + 9 + 10

wsq07

El código básicamente se encarga de dejar a un lado todas los casos en los que sumar un rango no es posible y las funciones ‘if‘ y ‘elif‘ se encargan de eso. Por otro lado, la función ‘else‘ es la parte del código que se encarga, en caso de cumplir con las condiciones especificadas, de llevar a cabo la suma factorial.

Por último, si tenemos otra excepción, es decir, si por alguna u otra razón el usuario teclea una letra en vez de un número la excepción saltará y avisará al usuario que con el valor que ha introducido no es posible llevar a cabo la operación.

Python.svg