python - 单词之间只保留一个空格,用replace为什么会出错
PHPz
PHPz 2017-04-18 10:08:36
0
4
620

在python中,字符串是没有contains函数的,不过可以使用find来代替。现在有一串单词,有的相邻两个单词之间可能不止一个空格,现在我只想保留一个空格,使用下面的办法就是无效的,不知道为什么这样会出现死循环。我知道可以使用' '.join(a.split())来解决问题,但是下面的代码不知道为什么会出错,是我的思想错误,还是其他原因?在java等其他语言里面,使用这种思想可行么?
def StringUnderLine(str):

str.strip();
n=0;
while str.find('  '):
    str.replace('  ',' ')
    n=n+1
    print(n,end='')
print(str,end='')

a="1 2 3 4 5 "
b="1 "
c=" 2"
d="abc def"
StringUnderLine(a)
StringUnderLine(b)
StringUnderLine(c)
StringUnderLine(d)

PHPz
PHPz

学习是最好的投资!

répondre à tous(4)
Ty80

str.find(' ') renvoie -1 s'il n'est pas trouvé et la boucle while est True pour boucler à l'infini, donc while -1 bouclera sans fin
Rendre également str.replace(' ', ' ') efficace,
devrait

a = '1    3   5'
while a.find('  ') != -1:
    a = a.replace('  ', ' ')
   
如果只是a.replace('  ', ' '),那么循环执行的永远只是a = '1    3   5', 也就是初始字符串,
小葫芦

str = str.replace(' ',' ');
En JAVA, C#, la variable chaîne elle-même est immuable. En d’autres termes, replace ne modifie pas la chaîne d’origine.

洪涛

Laissez-moi d'abord m'éloigner du sujet, frère, si vous demandez à python, vous étiquetez uniquement python. Pourquoi étiquetez-vous autant de langues​​

.

Si vous n'êtes pas sûr de la longueur de l'espace, vous pouvez utiliser une correspondance régulière. Je ne connais pas python, je vais donc vous donner une idée
Je l'ai vérifié et j'ai trouvé que tout n'était pas nul. les nombres en python représentent vrai. str.find ne peut pas trouver de correspondance. Il renverra -1, et s'il la trouve, il renverra la première position correspondante, donc le frère ci-dessus a raison. sera équivalent à true lorsqu'il n'est pas trouvé. Lorsqu'il trouve la correspondance à la position 0, elle sera considérée comme fausse. Donc, si vous voulez voir si str.find trouve une correspondance, jugez-la avec != -1

洪涛

str n'a pas été modifié par l'affectation. replace renvoie une nouvelle chaîne au lieu de modifier directement str

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal