编写一个函数,将一个字符串重复 n 次,并将每次重复与另一个字符串分开

Writing a function that repeats a string n times and separates each repetition with another string

我正在尝试编写一个需要 3 个输入的函数:一个字符串(名为 word)、一个整数(名为 n)、另一个字符串(名为 delim'、 那么该函数必须重复名为 word n 次的字符串(这很简单)并且在每次重复之间它必须插入名为 delim.

的字符串

我知道这段代码有效:

print('me', 'cat', 'table', sep='&')

但这段代码没有:

print(cat*3, sep='&')

我写的代码几乎没用,但我还是会 post — 可能还有其他我不知道的错误或不准确之处。

def repeat(word, n, delim):
    print(word*n , sep=delim)

def main():
    string=input('insert a string:  ')
    n=int(input('insert number of repetition:  '))
    delim=input('insert the separator:  ')

    repeat(string, n, delim)

main()

例如,给定此输入:

word='cat', n=3, delim='petting'

我希望程序回馈:

catpettingcatpettingcat

您可以使用 iterable unpacking 并且只能使用 print 功能:

def repeat(word, n, delim):
    print(*n*[word], sep=delim)

或者直接使用str.join:

def repeat(word, n, delim):
    print(delim.join(word for _ in range(n)))

您正在寻找print('petting'.join(["cat"]*3))

$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('petting'.join(["cat"]*3))
catpettingcatpettingcat
>>> 

返回字符串对象的函数

def repeat(word, n, sep='&'):
    return sep.join(word for _ in range(n))

print(repeat('Hallo', 3))

输出

hallo&hallo&hallo

要重复单词,您可以使用循环和变量来存储重复方法的输出。这是您如何实现它的示例。

def repeat(word, n, delim):
    str = ''
    for i in range(n): # this will repeat the next line n times.
        str += word + delim 
    return str[0:len(str) - len(delim)] # len(delim) will remove the last 'delim' from 'str'. 

在您的 main 方法中,您需要打印从 repeat 方法返回的内容。例如:

print(repeat(string, n, delim))

你可以试试这个

def myprint(word, n, delim):
    ans = [word] * n 
    return delim.join(ans)
    
print(myprint('cat',3,'petting'))
catpettingcatpettingcat