Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中更改子例程中的字符串_Python_String_Replace - Fatal编程技术网

在Python中更改子例程中的字符串

在Python中更改子例程中的字符串,python,string,replace,Python,String,Replace,这不会更改字符串。进行此类更改的最佳方式是什么?您必须从修改功能返回修改后的文本,否则,您的修改不会产生任何效果: def modify(text): text = text[:1] + 'Z' + text[2:] return text = 'abcdefg' modify(text) print text 由于modify函数中的文本是一个local变量,因此修改不会影响globaltext变量(您将其传递给modify函数),直到您指定它: text=modify(t

这不会更改字符串。进行此类更改的最佳方式是什么?

您必须
修改
功能返回修改后的文本,否则,您的修改不会产生任何效果:

def modify(text):
    text = text[:1] + 'Z' + text[2:]
    return

text = 'abcdefg'
modify(text)
print text
由于
modify
函数中的文本是一个
local
变量,因此修改不会影响
global
text
变量(您将其传递给
modify
函数),直到您指定它:


text=modify(text)

字符串是不可变的,您不能在函数中更改它们,也不能在函数外看到更改

正确的方法是返回修改后的字符串并在调用它的地方重新分配它

def modify(text):
    text = text[:1] + 'Z' + text[2:]
    return text

我不认为这是关于不可变的字符串。我认为问题在于OP认为对作为参数传递的名称的赋值会影响调用范围。您提供了正确的解决方案,但诊断不正确。@StevenRumbalski在这种情况下,他们应该检查“是”,这完全解决了问题。事实上,我结束这个问题是为了支持那个问题。欢迎来到堆栈溢出。发布你期望的内容。
def modify(text):
    text = text[:1] + 'Z' + text[2:]
    return text

text = 'abcdefg'
text = modify(text)
print text