Adloun

É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.