Supprimer les ponctuation d'une chaîne de caractères
Résolu/Fermé
balkis3005
Messages postés
9
Date d'inscription
dimanche 13 mars 2022
Statut
Membre
Dernière intervention
1 avril 2022
-
Modifié le 16 mars 2022 à 15:19
mamiemando Messages postés 33333 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 octobre 2024 - 16 mars 2022 à 19:35
mamiemando Messages postés 33333 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 31 octobre 2024 - 16 mars 2022 à 19:35
A voir également:
- Supprimer les ponctuation d'une chaîne de caractères
- Supprimer une page word - Guide
- Caractères ascii - Guide
- Supprimer compte instagram - Guide
- Caractères spéciaux clavier azerty - Guide
- Chaine tnt gratuite sur mobile - Guide
3 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
15 mars 2022 à 19:12
15 mars 2022 à 19:12
bonjour,
peux-tu partager du texte, et pas des images?
as-tu envisagé d'ajouter des print() dans ton programme, pour comprendre son comportement?
peux-tu partager du texte, et pas des images?
as-tu envisagé d'ajouter des print() dans ton programme, pour comprendre son comportement?
import string truc=[string.punctuation + string.digits] print (len(truc)) for x in truc: print(x)
mamiemando
Messages postés
33333
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
31 octobre 2024
7 800
Modifié le 16 mars 2022 à 15:17
Modifié le 16 mars 2022 à 15:17
Bonjour,
Si tu prends le temps de regarder ce que contient
Il faut bien voir qu'en python, comme les chaînes de caractères sont immutables. Tu ne peux donc pas supprimer le i-ème caractère.
Exemple :
... renvoie :
Si tu veux créer une chaîne obtenue en modifiant/combinant une ou plusieurs chaînes, tu vas être obligé de la reconstruire en mémoire. Du coup, tu as meilleur temps de construire la nouvelle chaîne en itérant sur celle d'origine.
Bonne chance
Si tu prends le temps de regarder ce que contient
truc, ce n'est ni une chaîne de caractère, ni une liste de caractère, mais une liste qui contient une chaîne de caractère :
['!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~0123456789']. Donc quand tu itères dessus,
xdésigne le première élément de cette liste (donc la chaîne
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~0123456789'), or cette chaîne n'est pas inclue dans
string.punctuation.
Il faut bien voir qu'en python, comme les chaînes de caractères sont immutables. Tu ne peux donc pas supprimer le i-ème caractère.
Exemple :
s = "abcde" del s[2]
... renvoie :
----> 1 del s[2]
TypeError: 'str' object doesn't support item deletion
Si tu veux créer une chaîne obtenue en modifiant/combinant une ou plusieurs chaînes, tu vas être obligé de la reconstruire en mémoire. Du coup, tu as meilleur temps de construire la nouvelle chaîne en itérant sur celle d'origine.
import string truc = string.punctuation + string.digits print(truc) s = "".join( a for a in truc if a not in string.punctuation ) print(s)
Bonne chance
balkis3005
Messages postés
9
Date d'inscription
dimanche 13 mars 2022
Statut
Membre
Dernière intervention
1 avril 2022
Modifié le 16 mars 2022 à 19:32
Modifié le 16 mars 2022 à 19:32
Dernière question.........
Dans mon programme je fais des checkboxes, qui influent sur une génération de mot de passe. Si une checkbox est cochée, le programme doit être capable de s'adapter.
Voici le code :
Du coup, quand je coche une boite (je teste majoritairement la première), la valeur de la variable
Dans mon programme je fais des checkboxes, qui influent sur une génération de mot de passe. Si une checkbox est cochée, le programme doit être capable de s'adapter.
Voici le code :
# creation des checkboutons val_button1 = 'non' check_button1 = Checkbutton(frame2, text='Ponctuations', font=('Helvetica', 20), bg='#4065A4', fg='black', justify=LEFT, onvalue='oui', offvalue='non') val_button2 = 'no' check_button2 = Checkbutton(frame2, text='Majuscule', font=('Helvetica', 20), bg='#4065A4', fg='black', justify=LEFT, variable=val_button2, onvalue='ya', offvalue='non') val_button4 = None check_button4 = Checkbutton(frame2, text='Chiffre', font=('Helvetica', 20), bg='#4065A4', fg='black', justify=LEFT, variable=val_button4, onvalue='oui', offvalue='non') val_button5 = None check_button5 = Checkbutton(frame2, text='Lettre', font=('Helvetica', 20), bg='#4065A4', fg='black', justify=LEFT, variable=val_button5, onvalue='oui', offvalue='non') # affichage des checkboutons check_button1.pack() check_button2.pack() check_button4.pack() check_button5.pack()
Du coup, quand je coche une boite (je teste majoritairement la première), la valeur de la variable
val_button1ne change pas. Pourtant, j'ai mis le
onvalueet le
offvalue... J'ai beau chercher, je n'ai rien trouvé...
mamiemando
Messages postés
33333
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
31 octobre 2024
7 800
Modifié le 16 mars 2022 à 19:36
Modifié le 16 mars 2022 à 19:36
Ce problème n'ayant rien à avoir avec la question initiale, merci de la poser dans un autre fil de discussion. Mais pour faire court, ça n'est pas comme ça qu'on fait proprement une interface en Tk. Notamment il n'y a pas de boucle d'événements, Je t'invite donc à regarder un tutoriel, par exemple celui-ci : ici la boucle d'événement est lancée avec
Bonne chance
root.mainloop()).
Bonne chance