@Neil.Sator les "b" sont effectivement une variable, ce qu'elle fait c'est de la concaténation de texte lettre par lettre en fonction de l'index de la lettre dans une chaine de caractères
Le signe + permet de la concaténation lorsque les éléments sont de type str, "+=" permet d'ajouter et non pas de redéfinir, pour
b = 'B'
b = b + 'J'
b = b + 'R'
print(b)
>> 'BJR'
Il sera plus facile de faire :
b = 'B'
b += 'J'
b += 'R'
print(b)
>> 'BJR'
ça marche bien entendu aussi pour les données de type int :
b = 15
b += 20
print (b)
>> 35
'NATAS'[0] va désigner la lettre ayant l'index 0 dans la chaine de caractères 'NATAS', donc 'N'
'NATAS'[1] va désigner la lettre ayant l'index 1 dans la chaine de caractères 'NATAS', donc 'A'
et ainsi de suite
Son script essaye de print 984 fois "666 SATAN" de manière dissimulé
( edit : elle ne décrémente pas sa valeur donc en fait c'est plutôt une boucle infinie et si ça ne l'était pas c'était pas non plus 984 fois vu que "a" vaut "666", honnêtement j'ai lu son code en diagonal par flemme, ce détail m'a échappé )
En général on utilise la syntaxe des crochets pour parcourir un array par un index ( normalement un int ) ou un dictionnaire par une key ( normalement un str ), mais ça marche aussi bien sur un str qui sera traité comme un array