微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用连续随机生成的字符将字符串填充为长度 = n?

我正在尝试获取用户输入的字符串,该字符串不能超过来自用户的 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)))

解决方法

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

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

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

,

这是一次非常棒的尝试!你很接近,但你可以使用字符串连接而不是 ljust as Marcus Müller explained:

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)

我希望这是有用的:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。