#coding=utf-8
filename = '1.txt'
with open(filename) as f:
lines = f.readlines()
pi_string = ''
for line in lines :
pi_string += line.strip()
birthday = raw_input("enter your birthday:")
if birthday in pi_string:
print "yes"
print birthday
pi_string.replace(birthday.strip(),'abc')
print pi_string
else:
print "no"
获取用户输入后,然后替换掉存在的字符,但是打印结果并没有替换掉!
原因
在Python中字符串是immutable对象,是不可变对象。
所以string使用replace需要重新赋值,生成一个新的对象。
之前没有重新引用,导致该变量 指向的是 以前的对象,实则已经发生变化,只是没有重新引用而已。
所以要想打印出替换后的字符串需要重新赋值
把上面打印部分的代码改成
pp =pi_string.replace(birthday.strip(),'abc')
print pp
就可以看到替换后的字符串
输出结果:
enter your birthday:1
yes
1
3.abc4abc592653589793238462643383279