Grand oral: NSI – 6 questions sur les langages et programmation

Langages et programmation


● P = NP, un problème à un million de dollars ?
● Tours de Hanoï : plus qu’un jeu d’enfants ?
● Les fractales : informatique et mathématiques imitent-elles la nature ?
● De la récurrence à la récursivité
● Les bugs : bête noire des développeurs ?
● Comment rendre l’informatique plus sûre ?

Pour aller plus loin

Visitez mon blog : http://grandoralbac.fr/

Métier : Retoucheur – retoucheuse d’image

Le travail des retoucheurs numériques se situe après celui des photographes et avant une utilisation définitive de l’image pour impression ou publication. Le retoucheur doit améliorer ou modifier les photos à l’aide de logiciels de retouche numérique. Il travaille l’image afin de corriger ou d’améliorer la couleur, la luminosité, le contraste, de gommer les imperfections et parfois même de composer des montages. Dans certains cas, comme dans le domaine de la publicité, l’image modifiée est très différente de la photographie initiale.

Pour en savoir plus


Les Metiers du Web

KIT de SURVIE : les réseaux informatiques disponible sur Kindle

Plus de 20 questions fondamentales

Cet ouvrage présente en 21 fiches de 4 ou 8 pages, les questions fondamentales à connaître sur les adresses IP et les réseaux informatiques. Chaque fiche répond à une question de manière structurée et visuelle à l’aide d’un exemple concret. La résolution détaillée est accompagnée par des conseils méthodologiques.

Cet ouvrage s’adresse aussi bien aux étudiants de bac S Sciences de l’ingénieur, et STI2D (toutes spécialités), mais aussi au BTS, DUT et licence.

Des outils GRATUITS pour vérifier vos calculs

Pour vérifier les résultats de chaque question, le livre vous propose GRATUITEMENT :

    • un logiciel ;
    • un outil de calcul en ligne ;
    • une application pour tablette ou smartphone.

Recevez sur votre Kindle ou un autre appareil un échantillon gratuit. KIT de SURVIE : les réseaux informatiques

Python : Vérifiez si la variable est un dictionnaire

Introduction

Les variables agissent comme un conteneur pour stocker des données. Un développeur peut utiliser des indices de type lorsqu’il crée des variables ou passe des arguments, cependant, c’est une fonctionnalité optionnelle de Python et de nombreuses bases de code, anciennes et nouvelles, n’en disposent pas encore. Il est plus courant qu’une variable en Python ne contienne aucune information du type de celle qui est stockée.

Si nous avions un code qui nécessitait un dictionnaire, mais qui manquait d’indications de type, comment pouvons-nous éviter les erreurs si la variable utilisée n’est pas un dictionnaire ?

Dans cet article, nous allons voir comment vérifier si une variable est un dictionnaire en Python, en utilisant les fonctions type() et isinstance(), ainsi que l’opérateur is :

  1. Vérifier si une variable est un dictionnaire avec la fonction type()
  2. Vérifiez si la variable est un dictionnaire avec son opérateur “is”
  3. Vérifiez si la variable est un dictionnaire avec isinstance()

Les développeurs utilisent généralement la fonction type(), qui peut toutefois être limitée dans certains contextes. Dans ce cas, il vaut mieux utiliser la fonction isinstance().

1 – Vérifier si une variable est un dictionnaire avec la fonction type()

Nous pouvons utiliser la fonction type() pour obtenir instantanément le type de n’importe quelle variable. Pour une variable de type Dictionnaire, elle doit retourner <classe ‘dict’> :

squares = {1: 1, 2: 4, 3: 9}
print(type(squares))

Il en résulte :

<class 'dict'>

2 – Vérifiez si la variable est un dictionnaire avec son opérateur “is”

En Python, est is un opérateur d’identité. Il vérifie si les deux opérandes sont identiques l’un à l’autre. Le fait qu’ils soient identiques indique qu’ils se réfèrent au même emplacement mémoire.

On peut utiliser l’opérateur is avec le résultat d’un appel type() avec une variable et la classe dict. Il n’affichera True que si le type() pointe vers le même emplacement mémoire que la classe dict. Sinon, il affichera False.

Comme contrôle de cohérence, nous pouvons utiliser la fonction id() pour obtenir l’adresse de l’objet en mémoire et vérifier la comparaison :

squares = {1: 1, 2: 4, 3: 9}
print(type(squares) is dict)  # True
print("Adresse mémoire du type(squares):", id(type(squares)))
print("Adresse mémoire du dictionnaire:", id(dict))  # Doit avoir la même ID que le type(squares)

Ce code produira la sortie suivante sur un interpréteur Python :

True
Adresse mémoire du type(squares): 1609576584
Adresse mémoire du dictionnaire: 1609576584

Remarque : l’adresse mémoire peut varier pour vous, mais la même identification doit être présente pour le type (squares) et le dict.

Cette méthode présente un inconvénient : elle ne fonctionne pas si la variable est un type qui est une sous-classe de dict. Par exemple, le code précédent ne fonctionnerait pas si la variable carrés était plutôt un dictionnaire ordonné :

from collections import OrderedDict

squares = OrderedDict([(1, 1), (2, 4), (3, 9)])
print(type(squares) is dict)  # False
print("Adresse mémoire du type(squares):", id(type(squares)))
print("Adresse mémoire du dictionnaire:", id(dict))  # Des ID différentes car elles sont de classes différentes

Si votre code est utilisé pour travailler sur des sous-classes de dictionnaires, vous préférez utiliser la méthode isinstance().

False
Adresse mémoire du type(squares): 94464512
Adresse mémoire du dictionnaire: 9481952

3 – Vérifiez si la variable est un dictionnaire avec isinstance()

Comme nous l’avons vu, l’opérateur is retournera True lorsque l’adresse mémoire des deux objets est la même. Si nous avons un dictionnaire de type héritage du dict de classe, il retournera False. Par exemple, un dictionnaire d’une sous-classe de dict comme OrderedDict ou defaultdict ne pointera pas vers la même adresse mémoire que celle de dict.

Ici, nous avons la fonction isinstance() à la rescousse. Cette fonction prend deux arguments ; un objet et une classe. Si l’objet est une instance de la classe ou de ses sous-classes, il retournera True. Si l’objet n’est pas une instance de la classe donnée, qu’elle soit directe ou indirecte, elle renvoie False.

Voici un exemple de code permettant de vérifier si la variable est un dictionnaire à l’aide de la fonction isinstance() :

from collections import OrderedDict

# Variable de type dict
squares = {1: 1, 2: 4, 3: 9}
print(isinstance(squares, dict))  # True

# Variable de type OrderedDict (sous-classe de dict)
cubes = OrderedDict(((1, 1), (2, 8)))
print(isinstance(cubes, dict))  # True

Ce code produira la sortie suivante sur un interpréteur Python :

True
True

Conclusion

Cet article a montré comment nous pouvons vérifier si une variable est un dictionnaire. Nous avons d’abord vu la fonction type() qui produit <classe ‘dict’> pour tout objet du dictionnaire. Ensuite, nous avons vu l’utilisation de l’opérateur is pour vérifier si le type de variable pointe vers dict dans l’emplacement mémoire. Cela renvoie Vrai ou Faux en conséquence.

Enfin, nous avons vu que l’opérateur is ne permet pas d’identifier les objets de dictionnaire hérités. Lorsque nous voulons capturer des objets hérités, nous pouvons utiliser la fonction isinstance(). Elle renvoie Vrai si l’objet est directement ou indirectement une instance de la classe donnée (dict dans cet article), et Faux dans le cas contraire.

Comme ces deux méthodes renvoient Vrai ou Faux, nous pouvons facilement les utiliser dans des déclarations conditionnelles. À moins que vous ne vouliez explicitement rejeter des sous-classes de dict, la fonction isinstance() est la manière la plus fiable de vérifier si une variable est un dictionnaire.

Pour aller plus loin

Pour approfondir vos connaissances, et développer vos compétences, je vous propose cette sélection de livre.

Comment visualiser l’algorithme d’effacement d’un élément dans un arbre binaire de recherche (ABR) ?

Un arbre de recherche binaire (ABR) est un arbre binaire dans lequel chaque sommet n’a que 2 enfants au maximum qui satisfait à la propriété d’un ABR : Tous les sommets dans le sous-arbre gauche d’un sommet doivent avoir une valeur inférieure à la sienne et tous les sommets dans le sous-arbre droit d’un sommet doivent avoir une valeur supérieure à la sienne (nous supposons que toutes les valeurs sont des entiers distincts dans cette visualisation et qu’un petit ajustement est nécessaire pour tenir compte des doublons et des non-entiers).

La visualisation des structures de données et des algorithmes par l’animation

Vous pouvez lire toute la théorie du monde sur les arbres de recherche binaire (ABR) et un arbres binaires, mais voir ces structures en action peut vraiment vous faire avancer. Si vous êtes le genre de programmeur qui apprend mieux avec des images plutôt qu’avec des mots, consultez VisualAlgo

 

VisualAlgo est un outil de visualisation d’algorithmes

VisualAlgo est un outil de visualisation d’algorithmes basé sur le web sans qu’il soit nécessaire d’installer un logiciel supplémentaire.

Il utilise les dernières technologies web : HTML5, CSS3, JavaScript.

Il permet aux utilisateurs de spécifier leurs propres entrées d’algorithme et la visualisation fonctionnera sur avec ces entrées. Il s’agit d’une collection de visualisations d’algorithmes avec une interface unifiée.

La visualisation est très efficace pour comprendre l’algorithme, et il en va de même pour comprendre la visualisation du programme. Ainsi, au fur et à mesure que la compréhension des algorithmes et de la programmation progresse, le site “VisualAlgo” permet d’apprendre simultanément les algorithmes et la programmation en visualisant le code du programme qui décrit l’algorithme en une seule fois.

Le site est interactif, vous pouvez donc choisir ou insérer des éléments dans la collection d’exemples et de regarder comment elle fonctionne visuellement.

Le coin supérieur gauche fournit généralement une explication de ce qui se passe, tandis qu’un pseudo-code apparaît en bas à droite.

C’est un très bon outil pour visualiser les concepts de structure de données et les algorithmes.

Pour aller plus loin

Pour approfondir cette notion, et développer vos compétences vous pouvez consulter cette ouvrage.

Grand oral: NSI – 7 questions sur l’algorithmique

Algorithmique

● Femmes et numérique : quelle histoire ? quel avenir ?
● Ada Lovelace, pionnière du langage informatique
● Alan Turing, et l’informatique fut
● Quelle est la différence entre le web 1.0 et le web 2.0 ?

● Comment créer une machine intelligente ?
● Comment lutter contre les biais algorithmiques ?
● Quels sont les enjeux de la reconnaissance faciale (notamment éthiques) ?
● Quels sont les enjeux de l’intelligence artificielle ?
● Transformation d’images : Deep Fakes, une arme de désinformation massive ? La fin
de la preuve par l’image ?
● Qu’apporte la récursivité dans un algorithme ?
● Quel est l’impact de la complexité d’un algorithme sur son efficacité ?

Pour aller plus loin

Visitez mon blog : http://grandoralbac.fr/

Métier : Géomaticien – Géomaticienne

Le géomaticien est un expert qui recueille les informations géographiques, les enregistre, les administre et les exploite à l’aide de moyens informatiques. Il utilise ces données pour modéliser le territoire. Il élabore des cartes pour des collectivités territoriales ou des clients privés. Ces cartes permettent de rendre les données compréhensibles et accessibles. Elles constituent une aide indispensable aux actions d’études, de protection, de gestion et de valorisation des territoires.

Clique sur la fiche métier de l’Onisep: Géomaticien – Géomaticienne

Les métiers de l’informatique

Python – Comment convertir une liste en dictionnaire ?

À partir d’une liste, comment écrire un programme en Python pour convertir la liste donnée en dictionnaire de sorte que tous les éléments impairs aient la clé et que les éléments pairs aient la valeur. Comme le dictionnaire python n’est pas ordonné, la sortie peut être dans n’importe quel ordre.

Exemples :

Input : ['a', 1, 'b', 2, 'c', 3]
Output : {'a': 1, 'b': 2, 'c': 3}

Input : ['Paris', 71, 'Rouen', 42]
Output : {'Paris': 71, 'Rouen': 42}

Méthode n°1 : compréhension de liste

Pour convertir une liste en dictionnaire, on peut utiliser la compréhension de liste et faire une paire clé:valeur d’éléments consécutifs. Enfin, on peut taper la liste en dict type.

def Convert(lst):
	res_dct = {lst[i]: lst[i + 1] for i in range(0, len(lst), 2)}
	return res_dct
		
lst = ['a', 1, 'b', 2, 'c', 3]
print(Convert(lst))
Output
{'a': 1, 'b': 2, 'c': 3}

Méthode n°2 : Utilisation de la méthode zip()

Créez d’abord un itérateur et initialisez-le à la variable “it”. Ensuite, utilisez la méthode du zip, pour zipper les clés et les valeurs ensemble. Enfin, vous pouvez le transformer en type dict.

def Convert(a):
	it = iter(a)
	res_dct = dict(zip(it, it))
	return res_dct
		
lst = ['a', 1, 'b', 2, 'c', 3]
print(Convert(lst))
Output
{'a': 1, 'b': 2, 'c': 3}

Pour aller plus loin

Pour approfondir vos connaissances, et développer vos compétences, je vous propose cette sélection de livre.

Grand oral: NSI – 15 questions sur l’impact sociétal et éthique de l’informatique

L’impact sociétal et éthique de l’informatique

  • Comment protéger les données numériques sur les réseaux sociaux ?
  • Quelle est l’empreinte carbone du numérique en termes de consommation ?
  • Pourquoi chiffrer ses communications ?
  • Les réseaux sociaux sont-ils compatibles avec la politique ?
  • Les réseaux sociaux sont-ils compatibles avec le journalisme ?
  • Les réseaux sociaux permettent-ils de lutter contre les infox ?
  • L’informatique va-t-elle révolutionner le dessin animé ?
  • L’informatique va-t-elle révolutionner la composition musicale ?
  • L’informatique va-t-elle révolutionner l’art ?
  • L’informatique va-t-elle révolutionner le cinéma ?
  • L’informatique va-t-elle révolutionner la médecine ?
  • L’informatique va-t-elle révolutionner la physique ?
  • L’informatique va-t-elle révolutionner l’entreprise ?
  • Le numérique : facteur de démocratisation ou de fractures sociales ?
  • Informatique : quel impact sur le climat ?

Pour aller plus loin

Visitez mon blog : http://grandoralbac.fr/