Changement majuscule en minuscule avec Python
Lalali
-
critou -
critou -
Bonjour,
j'essaye de faire un algorithme qui change une lettre en majuscule en minuscule si son opposé dans le mot (qui a été changé en liste préalablement) est en minuscule.
for i in range(len(mot_liste)):
if mot_liste[len(mot_liste)-1-i].isupper()== 0:
if mot_liste[i].isupper()== 1:
mot_liste[len(mot_liste)-1-i] = mot_liste[len(mot_liste)-1-i].lower()
return mot_liste
(les indentations n'apparaissent pas)
quand j'essaye avec une liste constituée de lettres, ça ne change rien à la liste et je ne comprends pas pourquoi
merci de votre aide
j'essaye de faire un algorithme qui change une lettre en majuscule en minuscule si son opposé dans le mot (qui a été changé en liste préalablement) est en minuscule.
for i in range(len(mot_liste)):
if mot_liste[len(mot_liste)-1-i].isupper()== 0:
if mot_liste[i].isupper()== 1:
mot_liste[len(mot_liste)-1-i] = mot_liste[len(mot_liste)-1-i].lower()
return mot_liste
(les indentations n'apparaissent pas)
quand j'essaye avec une liste constituée de lettres, ça ne change rien à la liste et je ne comprends pas pourquoi
merci de votre aide
A voir également:
- Minuscule python
- Code ascii de a minuscule - Guide
- Citizen code python avis - Accueil - Outils
- E accent minuscule - Guide
- Mettre en minuscule - Guide
- C cédille minuscule - Forum Windows
1 réponse
Bonjour.
L'opposé de l'index 0 dans un itérable indexable est -1, pour 1, -2, pour 2, -3, etc.
Sachant cela, tu peux bien comprendre qu'utiliser la longueur de la liste pour calculer l'index n'a pas d'intérêt.
De plus, si j'ai bien compris, tu veux transformer les 2 lettres opposées du mot, si une des deux est en minuscule, il suffit donc de parcourir la moitié du mot et de regarder si une des 2 lettres est en minuscule, et transformer les 2 en minuscules si cela est le cas.
Note que pour un mot de longueur impaire, cela n'a pas trop de sens, puisque la lettre opposée de la lettre centrale est elle-même.
ps: pour que ton code garde son indentation, il faut utiliser les balises codes du forum.
L'opposé de l'index 0 dans un itérable indexable est -1, pour 1, -2, pour 2, -3, etc.
Sachant cela, tu peux bien comprendre qu'utiliser la longueur de la liste pour calculer l'index n'a pas d'intérêt.
De plus, si j'ai bien compris, tu veux transformer les 2 lettres opposées du mot, si une des deux est en minuscule, il suffit donc de parcourir la moitié du mot et de regarder si une des 2 lettres est en minuscule, et transformer les 2 en minuscules si cela est le cas.
mot = 'AbCdEFGH' mot_liste = list(mot) for i in range(int(len(mot)/2)): if mot[i].islower() or mot[-i-1].islower(): mot_liste[i] = mot[i].lower() mot_liste[-i-1] = mot[-i-1].lower() print(mot) print("".join(mot_liste))
Note que pour un mot de longueur impaire, cela n'a pas trop de sens, puisque la lettre opposée de la lettre centrale est elle-même.
ps: pour que ton code garde son indentation, il faut utiliser les balises codes du forum.
ex: ['C', 'O', 'u', 'C', 'o', 'u'] doit donner ['c', 'o', 'U', 'c', 'O', 'U']
ça ne marche pas non plus..
N'utilise pas ces affreux == dans tes conditions, cela ne sert à rien.
Sinon, ici c'est pareil, inutile de parcourir la liste en entier, il n'y a besoin que de regarder une des moitiés.
Simple non ?