[英]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.