繁体   English   中英

Python's.replace() 究竟是如何工作的?

[英]How exactly does Python's .replace() works?

我试图替换两个不同的字符@. 在一个字符的字符串中| . 当我将替换变量分配给同一个变量时, @. | 有效,但使用不同的变量,它只会将点替换为| . 我可以知道造成差异的原因是什么吗?

使用相同的变量:

email = input("Please enter your email address : ")
for x in ('@','.'):
     email = email.replace(x,'|')
print(email)

Output:

Please enter your email address : sdf@sadfs.com
sdf|sadfs|com

使用其他变量:

email = input("Please enter your email address : ")
for x in ('@','.'):
     temp_email = email.replace(x,'|')
print(temp_email)

Output:

Please enter your email address : sdf@sadfs.com
sdf@sadfs|com

在第一个循环中,当循环执行时,您将两次覆盖email

email = email.replace(x,'|')

在第二个循环中,将其存储在temp_email中,因此email不会被覆盖。 当我们执行

temp_email = email.replace(x,'|')

第一次, x='@' ,所以temp_email变为sdf|sadfs.com 然后第二次执行, x='.' ,所以temp_email变为sdf@sadfs|com 这是因为它两次都在编辑email来创建temp_email ,但是email没有改变!

在你的 (for) 循环的第一次执行将把 @ 变成 '|' Temp_email = sdf@sadfs.com

但是 email 没有改变

所以 email = sdf@sadfs.com

在您的 (for) 循环的第二次执行时将轮流。 到“|”

然后

Temp_email = sdf@sadfs|com

然后它打印

这是您的预期代码

 <script src="//onlinegdb.com/embed/js/i-fTLYV9M?theme=dark"></script>

请给兄弟投票

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM