如何使用连续随机生成的字符将字符串填充到 length = n?

How do you pad a string to a length = n with consecutivley randomly generated characters?

我正在尝试获取用户输入的字符串,用户输入的字符串不能超过 70 个字符,但填充后,整个字符串的长度将为 100 个字符。

但是,我必须使用随机生成的字母来组成字符串的其余 100 个字符。我遇到的问题是我正在生成相同的单数字符,然后对其进行填充以满足 100 个字符的限制。如何使字符串包含随机字符?

我想要的示例:

用户输入:ABC

期望输出:ABCJ4RLKDIJHSJRLWOINGHZXNROQUTJHLOUHFPSNDUVMFHTQAQ 等最多 100 个字符。

我得到的是以下内容:

用户输入:ABC

输出:ABCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 等最多 100 个字符。

这是我的代码:

text = input("Enter your string: ")
if len(text) > 70: exit("Char limit cannot exceed 70")

print(text.ljust(100, random.choice(string.ascii_letters)))

好吧,ljust 不是您想要的工具,它需要一个 单个 字符并用它填充。

这真的不难实现:用你想要的长度减去你拥有的长度,生成许多随机字符,并将它们附加到字符串中。

这确实是 python 中的一个基本练习,如果对如何执行这些步骤中的任何一个有疑问,建议您多花一点时间与官方联系 python.org介绍。学习如何编写循环代码不会节省您今天的时间。

这是一个非常棒的尝试!你很接近,但你可以只使用字符串连接而不是 ljust :

import random
import string

text = input("Enter your string: ")
size = len(text)
if size > 70: 
    exit("Char limit cannot exceed 70")

# Append to the end of `text` with `100 - size` (the remaining) random chars
result = text + ''.join(random.choice(string.ascii_letters) for _ in range(100 - size))

assert len(result) == 100
assert result.startswith(text)
print(result)

您可以在循环中添加该随机函数以获得您想要的输出,enzo 的回答是准确的

我以我知道简单方式编辑了您的代码,但您可以根据自己的意愿进行编辑。

import string
import random
a = ""
while True:
    text = input("Enter your string: ")
    if len(text) > 70: 
        print("Char limit cannot exceed 70")
        continue
    else:
        for i in range (100 - len(text)):
            a += (random.choice(string.ascii_letters))
            
        break
print(text + a)

我希望这有用:)