Écrivez du code pour faire quelque chose de cool pour votre valentine.
La Saint-Valentin approche à grands pas. Je n'ai pas encore décidé quel cadeau je donnerai à ma compagne. Choisir le bon cadeau est généralement une tâche très difficile pour moi, car je ne suis tout simplement pas une personne créative dans le domaine de la romance. La
plupart du temps, je lui envoie simplement des fleurs avec une
carte-cadeau, car je ne voulais tout simplement pas refaire l'erreur en
lui envoyant une balance, ce qui la rendait vraiment folle, même si une balance intelligente en acier inoxydable numérique avec support Bluetooth semblait vraiment cool.
Cette année, je suppose que je vais faire quelque chose de différent. Au cours des dernières années, j'ai commencé à utiliser Python beaucoup plus qu'auparavant et j'ai trouvé des projets intéressants qui peuvent être réalisés avec seulement quelques lignes de code. Dans cet article, je voudrais partager trois mini-projets sympas qui peuvent potentiellement être des idées de cadeaux. Cependant,
juste un avertissement rapide, utilisez les à vos propres risques, car c'est une recommandation d'un soi-disant « nerd » ou « geek »: ).
Montrez votre coeur
La première chose facile à faire pour vous est de dessiner une forme de coeur en utilisant les bibliothèques numpy et mtaplotlib . Ainsi,
veuillez d'abord vous assurer que vous avez tous les deux installé sur
votre ordinateur ces librairies, par exemple en les installant à l'aide de l' outil pip . Copiez et collez le code suivant dans votre propre IDE Python.
import numpy as np import matplotlib.pyplot as plt x_coords = np.linspace(-200, 200, 600) y_coords = np.linspace(-200, 200, 600) heart_x = [] heart_y = [] for y in y_coords: for x in x_coords: if ((x*0.01)**2+(y*0.01)**2-1)**3-(x*0.01)**2*(y*0.01)**3 <= 0: heart_x.append(x) heart_y.append(y) plt.scatter(heart_x, heart_y, c="red") plt.axis('off') plt.show()
Comme vous pouvez le constater, nous utilisons la formule (x ** 2 + y ** 2–1 ) * * 3-x ** 2 * y ** 3 = 0 ,
dans laquelle ** signifie exponentiel à la puissance du nombre suivant le symbole, pour générer une série de points contribuant à la
forme du cœur.
Exécutez le code ci-dessus et vous verrez un cœur rouge comme ci-dessous. Vous pouvez jouer avec le code pour changer la taille, la résolution et même la couleur! Je vous laisse ces tâches si vous êtes assez audacieux pour utiliser cette idée de cadeau :).
Créer des images animées
Une autre chose intéressante à faire est de créer des images animées à l'aide de la bibliothèque imageio , qui peut générer des images animées à partir d'images statiques individuelles. Comme ci-dessus, votre ordinateur doit avoir installé la bibliothèque imageio .
Dans votre album photo, recherchez 10 images ou plus adaptées à la Saint-Valentin et déposez-les dans un dossier appelé « source_images », par exemple. Exécutez le code suivant dans votre IDE.
En fait, vous pouvez également créer des images animées à partir d'un clip vidéo.
import imageio from pathlib import Path # the path to the source folder of your images image_path = Path('source_images') # create a list of all .jpg files images = list(image_path.glob('*.jpg')) # read these images and save them to a list image_list = [] for file_name in images: image_list.append(imageio.imread(file_name)) # create the animated image from the list imageio.mimwrite('animated_from_images.gif', image_list)
Créer des nuages de mots
La dernière idée que je voudrais partager est que vous pouvez créer un nuage de mots pour votre bien-aimé. Pour ce faire, nous utiliserons les bibliothèques wordcloud , imageio et matplotlib . J'ai
écrit une fonction qui prend une chaîne, un fichier image qui fournit
le masque pour le nuage de mots et le fichier image de destination pour
le nuage de mots créé. De
plus, j'ai écrit une autre fonction qui génère des couleurs rouges
aléatoires avec la même teinte, la même saturation, mais une luminosité
différente. J'ai choisi la couleur rouge car c'est la couleur du thème de la Saint Valentin. Le code complet est fourni ci-dessous.
from wordcloud import WordCloud, STOPWORDS import imageio import matplotlib.pyplot as plt def random_red_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None): h = 0 s = 100 l = int(50 * (float(random_state.randint(60, 120))/100.0)) return "hsl({}, {}%, {}%)".format(h, s, l) def generate_word_cloud(words, image_file, saved_name): mask = imageio.imread(image_file) word_cloud = WordCloud(width = 400, height = 400, color_func = random_red_color_func, background_color = 'white', stopwords = STOPWORDS, mask = mask).generate(words) plt.figure(figsize = (10,8), facecolor = 'white', edgecolor='blue') plt.imshow(word_cloud) plt.axis('off') plt.tight_layout(pad=0) plt.savefig(saved_name)
Autres idées cools à explorer
Les mini-projets ci-dessus vous ont juste montré quelques idées amusantes qui peuvent potentiellement être utilisées pour votre Saint-Valentin. N'hésitez pas à explorer ces options en essayant différentes combinaisons de paramètres. De plus, vous pouvez combiner ces idées, comme je l'ai fait dans la troisième idée. Par
exemple, vous pouvez créer plusieurs nuages de mots et les mélanger
avec des images réelles pour créer des images animées plus
personnalisées.
Joyeuse Saint Valentin!