我不明白在此代码中使用什么(+ =或.join())

时间:2019-06-14 08:02:59

标签: python-3.x

因此问题要求返回一个字符串,其中原始字符串的每个字符均为3次,即单词='hello' 那么字符串应该返回'hhheeelllooo' (Python代码)

在这种情况下,我尝试使用string.join,但它只返回'hhh',但是如果我使用string + = character * 3,它可以工作。所以有什么区别,为什么不起作用

def myfunc (text):
    string=''
    for letter in text:
        return string.join(letter*3)

但是

def myfunc (text):
string=''
for letter in text:
string+=letter*3
return string

有效

2 个答案:

答案 0 :(得分:1)

在编写return string.join(letter*3)时(即使不是您想要的),它将退出函数而不完成循环,因此仅返回第一个字母的结果。另外,string.join(X)适用于列表之类的序列,并使用字符串X将列表string中的元素粘合在一起,因此,如果要使用它,可以按以下方式使用它:

def myfunc(text):
    return ''.join([letter * 3 for letter in text])

print(myfunc('hello'))

输出:

hhheeellllllooo

答案 1 :(得分:1)

for letter in text:
        return string.join(letter*3)  # return at first letter,usel

它将起作用

''.join([i*3 for i in text])