繁体   English   中英

连接字符串?

[英]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变量中保存的单词的副本

schange(s)是必然的值的名称word ,当你调用change(word)

在行s = s + "!" 要绑定s到通过连接绑定到值创建一个新的字符串s! ,没有做任何word

即使可能,最好不要有副作用,因此返回新值更好。

def change(s):
    return s + '!'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM