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
- E accent minuscule - Guide
- Mettre en minuscule - Guide
- Citizen code python avis - Accueil - Outils
- Inversion majuscule 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']
for i in range(len(mot_liste)): if mot_liste[i].isupper()== 0: #le caractère i est une minuscule if mot_liste[-i-1].isupper()== 1: #le caractère opposé est en majuscule mot_liste[i] = mot_liste[i].upper() #on passe le caractère i en majuscule mot_liste [-i-1]=mot_liste[-i-1].lower() #on passe son opposé en minuscule else: #le caractère i,est une majuscule if mot_liste[-i-1].isupper()== 0: #le caractère opposé est une minuscule mot_liste[i]=mot_liste[i].lower() #on passe le caractère i en minuscule mot_liste[-i-1]=mot_liste[-i-1].upper() #on passe son opposé en majusucleç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.
mot = 'COuCou' mot_liste = list(mot) for i in range(int(len(mot)/2)): minuscule_gauche = mot[i].islower() minuscule_droite = mot[-i-1].islower() # Casses différentes entre les 2 lettres if minuscule_gauche != minuscule_droite: # Si lettre de gauche est en minuscule if minuscule_gauche: mot_liste[i] = mot[i].upper() mot_liste[-i-1] = mot[-i-1].lower() # lettre de gauche est en majuscule else: mot_liste[i] = mot[i].lower() mot_liste[-i-1] = mot[-i-1].upper() print(mot) print("".join(mot_liste))Simple non ?