bonjour,
bin(5) affiche '0b101' sur 3 bits
bin(127) affiche '0b1111111' sur 7 bits
Comment obtenir (5) sur 7 bits avec les zéros devant ?
Je veux réaliser un compteur binaire.
@+
![]()
bonjour,
bin(5) affiche '0b101' sur 3 bits
bin(127) affiche '0b1111111' sur 7 bits
Comment obtenir (5) sur 7 bits avec les zéros devant ?
Je veux réaliser un compteur binaire.
@+
![]()
Bonjour,
Comme ça (Python 3):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bin(5)[2:].zfill(7) '0000101'
Il y a aussi cette solution (formatage des chaînes de caractères), qui je pense est plus concise et sympa
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >>> '{0:07b}'.format(5) '0000101'
ok, merci
Les deux sont valables
Ce que je veux aussi c'est modifier bit à bit avec des variables alphanumériques
0000000 0 >> a+a+a+a+a+a+a
0000001 1 >> a+a+a+a+a+a+b
0000010 2 >> a+a+a+a+a+b+a
0000011 3 >> a+a+a+a+a+b+b
0000100 4 >> a+a+a+a+b+a+a
...
0 induit un (a) et 1 induit un (b)
Je n'ai pas compris s'il s'agit de modifier ou de représenter (0=>'a' et 1=>'b').
S'il s'agit de représenter:
On peut faire aussi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 xb = '00000101' print('+'.join([('b' if b=="1" else 'a') for b in xb]) 'a+a+a+a+a+b+a+b'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 '+'.join(xb.replace('1', 'b').replace('0', 'a')) 'a+a+a+a+a+b+a+b'
Disons que moi aussi, je tâtonne.
C'est pour réaliser des permutations de lettres dans des mots.
Je cherche un moyen pour augmenter le nombre de lettres.
Ci-dessous, le code avec 3 lettres :
cesar_mot donne une lettre avec un pas p ou q
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 l31='UIB' for p in range(26): for q in range(26): a2=cesar_mot(l31[0],p) a1=cesar_mot(l31[1],p) a0=cesar_mot(l31[2],p) b2=cesar_mot(l31[0],q) b1=cesar_mot(l31[1],q) b0=cesar_mot(l31[2],q) u0=b2+b1+b0 u1=b2+b1+a0 u2=b2+a1+b0 u3=b2+a1+a0 u4=a2+b1+b0 u5=a2+b1+a0 u6=a2+a1+b0 u7=a2+a1+a0 verif_dico(u0,q,q,q) verif_dico(u1,q,q,p) verif_dico(u2,q,p,q) verif_dico(u3,q,p,p) verif_dico(u4,p,q,q) verif_dico(u5,p,q,p) verif_dico(u6,p,p,q) verif_dico(u7,p,p,p)
verif_dico va vérifier si ce mot recomposé existe dans un dico
u0,...,u7 est la recomposition du mot de 3 lettres ( 8 possibilités avec 2 bits , p et q )
Avec 7 lettres (128 possibilités de recomposition), j'essaye de trouver le moyen de construire
u0,...,u127 , en ne tapant pas toutes les lignes à la main.
verif_dico va également tester les 128 mots recomposés pour chaque doublet p,q
[Résolu]
0 : S O C Z I B M
1 : S O C Z I B E
2 : S O C Z I T M
3 : S O C Z I T E
4 : S O C Z A B M
5 : S O C Z A B E
6 : S O C Z A T M
7 : S O C Z A T E
8 : S O C R I B M
9 : S O C R I B E
10 : S O C R I T M
11 : S O C R I T E
12 : S O C R A B M
13 : S O C R A B E
14 : S O C R A T M
15 : S O C R A T E
.. : ....................
125 : K G U R A B E
126 : K G U R A T M
127 : K G U R A T E
Partager