为什么这两个人没有相同的结果。此函数的目的是用定义的字符串(y)替换s(x)的值。这纯粹是为了理解/练习使用函数。
s = "a"
def func(x,y):
x = x.replace(x,y)
print(s)
func(s,"b")
和
s = "a"
s = s.replace(s,"b")
print(s)
答案 0 :(得分:2)
您可能希望在x
函数内打印func
而不是s
。你发现你打印的是相同的值。
s = "a"
def func(x,y):
x = x.replace(x,y)
print(x)
func(s,"b") # prints 'b'
s = "a"
s = s.replace(s, "b")
print(s) # prints 'b'
答案 1 :(得分:0)
字符串在Python中是不可变的。 replace()
不修改给定的字符串,它返回一个新字符串。所以当你这样做时:
x = x.replace(x, y)
在第一个函数中,它创建一个新字符串并将其分配给局部变量x
。原始变量s
中的字符串不受影响。
此外,函数参数按值传递,而不是通过引用传递。因此,在函数中分配给x
不会分配给外部变量s
。