我正在用Python3编写一个程序,它对一个文件执行许多操作,其中一个操作是在字符串中的每个单词之间添加随机数和字母。我希望随机字符不在单词的末尾,例如,对于单词Python:
P-y-t-h-o-n
其中-
是随机字符的位置。
到目前为止,我已经:
def addCharacters(string, strength, randomLettersNumbers):
newString = ''
for c in string:
letters = ''
for k in range(strength):
letters += random.choice(randomLettersNumbers)
newString += c + letters
return newString
其中strength
是每个字母之间要打印的随机字符数,string
是我正在打印的字母之间的随机字符数,randomLettersNumbers
是我的随机字符列表。然而,它也将它们打印在单词的外端,比如-P-y-t-h-o-n-
,我该如何修复它,使其只打印在单词的内端
只需在原始字符串的每个字母后添加随机字母和数字,但只需添加最后一个字母的情况除外。代码可能如下所示:
你的问题有些不同,你需要的是在应用“addCharacters”之前用空格分隔单词
关注这一行:
for c in string:
您的代码在字符串中的每个字母后插入额外内容,但看起来您需要在每个字母后插入额外内容,最后一个字母除外您需要一种方法来循环所有字符,最后一个除外;有几种方法可以做到这一点(例如,使用索引或列表切片,因为在Python中字符串有很多类似列表的行为)
在这一点上,我认为你不会在
string
的第一个字母之前看到随机字符。出于调试目的,硬编码随机字符而不是调用random.choice
将有助于可视化正在发生的事情我尝试了您的代码,似乎字符串前面插入的字符可能是由空格引起的。要避免在末尾插入随机字符,只需将字符串切片并在return语句中添加最后一个字符:
这段代码应该通过拆分句子来生成您想要的结果。然后对每个单词分别应用该方法,并在末尾添加空格。join()方法重新联接修改后的字符串
相关问题 更多 >
编程相关推荐