Écrire une fonction Python doublets(valences, charge) qui renvoie le…
Exercice d'entraînement · niveau 3 (difficile) · chimie (première), chapitre 6 — Schémas de Lewis, géométrie et polarité · Polarité et conséquences
Énoncé
Écrire une fonction Python doublets(valences, charge) qui renvoie le nombre total de doublets d'une entité, à partir de la liste des électrons de valence de ses atomes et de sa charge. La tester sur , et .
Corrigé
def doublets(valences, charge):
# valences : electrons de valence de chaque atome ; charge : entier signe
total = sum(valences) - charge # charge + : on retire ; charge - : on ajoute
if total % 2 != 0:
raise ValueError("nombre d'electrons impair : entite radicalaire")
return total // 2
print(doublets([1, 1, 6], 0)) # H2O -> 4
print(doublets([5, 1, 1, 1, 1], +1)) # NH4+ -> 4
print(doublets([6, 1], -1)) # OH- -> 4
Le signe est tout l'exercice : - charge retire un électron pour une charge positive et en ajoute un pour une charge négative — exactement la règle du cours, écrite une fois pour toutes.
Contrôle : les trois entités renvoient , et l'on retrouve bien électrons de valence à chaque fois. Le raise signale les entités à nombre impair d'électrons (comme ), pour lesquelles la notion de doublets ne suffit pas.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.