2024-04-20 10:50:15 发布
网友
为什么这两个结果不一样呢。此函数的目的是用定义的字符串(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)
您可能希望在func函数中打印x,而不是s。你发现你正在打印相同的值。你知道吗
func
x
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'
字符串在Python中是不可变的。replace()不修改给定的字符串,它返回一个新字符串。所以当你这么做的时候:
replace()
x = x.replace(x, y)
在第一个函数中,它创建一个新字符串并将其赋给局部变量x。原始变量s中的字符串不受影响。你知道吗
此外,函数参数是通过值传递的,而不是通过引用传递的。因此在函数中赋值给x并不赋值给外部变量s。你知道吗
您可能希望在
func
函数中打印x
,而不是s
。你发现你正在打印相同的值。你知道吗字符串在Python中是不可变的。
replace()
不修改给定的字符串,它返回一个新字符串。所以当你这么做的时候:在第一个函数中,它创建一个新字符串并将其赋给局部变量
x
。原始变量s
中的字符串不受影响。你知道吗此外,函数参数是通过值传递的,而不是通过引用传递的。因此在函数中赋值给
x
并不赋值给外部变量s
。你知道吗相关问题 更多 >
编程相关推荐