Le comportement de Python semble incohérent lors du remplacement de valeurs dans le cas suivant (avec python 3.6.5)
>>> emptyString = ' '
>>> emptyString.strip().replace('','0') #produces expected results
'0'
>>> notEmptyString = ' 50 '
>>> notEmptyString.strip().replace('','0') #expected '50'
'05000'
>>> shortString = notEmptyString.strip()
>>> shortString #results as expected
'50'
>>> shortString.replace('','0') #unexpected results - expected '50'
'05000'
C'est ce que j'aimerais voir :
- si la chaîne a une valeur, il suffit de supprimer() les espaces avant et après.
- si la chaîne de caractères est vide (c'est-à-dire "") ou si elle ne contient que des caractères vides (c'est-à-dire " "), elle est supprimée pour devenir "" et remplacée par '0'.
Exemple #1... string = " 10 ".... alors il suffit d'enlever le début et la fin de la chaîne. les espaces avant et après
Exemple n° 2... string = ' ' .... puis convertir en '0'
Je peux obtenir les résultats que je veux par d'autres moyens, mais je me demandais si quelqu'un comprenait pourquoi python produit ces résultats.
1 votes
Vous voulez peut-être définir une fonction qui fait quelque chose comme
def myreplace(string): return string if string.strip() else '0'