[英]concatenating strings?
def change(s):
s = s + "!"
word = "holiday"
change(word)
print word
为什么这个节目的输出是“节日”而不是“节日!”? 是因为3行代码不属于函数吗? 如果是这样,为什么它会在函数之外,因为它是在更改函数之后?
尝试这个:
def change(s):
return s + "!"
像这样使用它:
word = 'holiday'
print change(word)
或者像这样:
word = 'holiday'
word = change(word)
print word
请注意,对函数内部的参数字符串所做的任何修改都不会在函数外部看到,因为函数中的s
参数是函数范围的本地参数,以及您执行的任何更改(例如在代码中)问题)只会在函数内部显示,而不是在外部。 Python中的所有函数参数都按值传递 。
您只是在函数change
修改局部变量s
。 这不会修改变量word
。 如果要修改word
,则需要返回change
结果并将其指定为word
:
def change(s):
s = s + "!"
return s
word = "holiday"
word = change(word)
print word
您没有从更改中返回值。
尝试:
def change(s):
s = s + "!"
return s
word = "holiday"
word = change(word)
print word
所以在上面的例子中,s被修改,然后word被重新赋值为修改后的值。
您正在将该单词的“副本”而不是该单词实例传递给该函数。 因此,更改将应用于您在函数内的s变量中保存的单词的副本
s
的change(s)
是必然的值的名称word
,当你调用change(word)
。
在行s = s + "!"
要绑定s
到通过连接绑定到值创建一个新的字符串s
和!
,没有做任何word
。
即使可能,最好不要有副作用,因此返回新值更好。
def change(s):
return s + '!'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.