python插入字符串中间

2024-05-01 21:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是新来的Python,有一本书和玩,所以请友好。主要是我一直在玩ASCII艺术

我想做的是把一些艺术隐藏在文本中。所以说我有一个字符串打印出“word”,我想做的是编写一个函数,帮助我在单词中间插入一个字符,不管这个单词有多长,它总是将我的艺术字符放在单词的中间。所以我的输出是 “沃德”。 到目前为止,我开始做的是:

def dashinsert(str):
    return str[:2] + '-' + str[2:]

我知道这不是一个需要接近的地方,我只是一个初学者,但是任何方向看都是值得赞赏的,我也不确定我是否做得对

我的目标是从中吸取教训,然后在不同位置的单词中插入随机字符,从而在文本中创造艺术。我键入一个段落,艺术就会自动插入。现在我只是想把这个插入部分取下来


Tags: 函数字符串文本returndef地方ascii字符
3条回答

你有个好的开始!我对我的Python有点生疏,但是您可以尝试添加一个position参数来改变字符串中插入破折号的位置(现在,它被硬编码为position 2:

def dashinsert(str, position):
    length = len(str)
    if (position > length or position < 0):
         return str
    return str[:position] + '-' + str[position:]

或者,您可能希望更改插入的字符类型:

def characterinsert(str, position, insertion):
    length = len(str)
    if (position > length or position < 0):
         return str
    return str[:position] + insertion + str[position:]

或者,您可能希望随机化插入字符的位置:

import random

def dashinsert(str, insertion):
    length = len(str)
    position = random.randint(0,length)
    return str[:position] + insertion + str[position:]

然后,您可以使用更高级的方法,使用**kwargs*args更改传递到函数中的参数。这里有一个关于这两个概念的很好的tutorial to start learning

def insert_string(org_string, string, pos=None):
    # default position middle of org_string
    if pos is None:
        pos = len(org_string) / 2
    return org_string[:pos] + string + org_string[pos:]


if __name__ == "__main__":
    new_string = insert_string("world", "-")
    print new_string

输出

wo-rd

整数除法使用双斜杠

def dashinsert(str):
    midPoint = len(str)//2
    return str[:midPoint] + '-' + str[midPoint:]

相关问题 更多 >