certes, mais là on balaye deux fois
l'idéal serait de ne balayer qu'une fois :
texte="NJQT EXTC UXRBUXK RX VXNNLDX R XNQ HTX QT RBYYLJN OJXY SXN VLQGXVLQJHTXN"
alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
nb1=0
lettre1 = ''
nb2=0
lettre2 = ''
for lettre in alphabet :
c=texte.count(lettre)
if c>nb1 :
lettre2=lettre1
nb2=nb1
lettre1=lettre
nb1= c
elif c>nb2 :
lettre2=lettre
nb2=c
nb=len(texte)
print(lettre1,":",nb1,"fois, fréquence =",nb1/nb)
print(lettre2,":",nb2,"fois, fréquence =",nb2/nb)
*** Console de processus distant Réinitialisée ***
x : 12 fois, fréquence = 0.16666666666666666
n : 7 fois, fréquence = 0.09722222222222222
en effet quand on change de "candidat" pour la plus fréquente , l'ancienne plus fréquente doit devenir candidat à la seconde plus fréquente !
et puis :
for char in lettre1:
lettre 1 est un seul caractère !
texte=texte.replace(
lettre1,'')
aurait suffit, sans "for"