python - Python一一显示字母,其余为点,空格为空格
问题描述
我正在做一个单词猜测器(用于 Discord)并且我有这个功能(我以前做过不同的事情,但在上一个问题中得到了一些帮助):
def hidden_word(self, keyword, counter=0):
hidden = len(keyword) - counter
dots = '.' * hidden
return keyword[:counter] + dots
这需要要猜测的单词(称为关键字)和要显示的字母数量(计数器),例如,如果关键字是“test”并且计数器是 2,则该函数将返回“te..”
虽然如果关键字包含多个单词,例如“test word”(带有计数器 2),该函数将返回“te.......”,但这里的问题是不清楚关键字是否包含多个字。
我理想的输出是“te....”
经过一些研究,我认为这可以很容易地解决re.sub
,如下所示:
# this function is called every x seconds
helpword = [re.sub(r'\S', '.', keyword)] # Returns "te.. ...." but not easily modifiable
helpword[counter] = keyword[counter] # Replace a dot with the following letter in the keyword
给出:TypeError:'str' 对象不支持项目分配,所以这不起作用。
我怎么能这样做?
ps我的完整代码在这里
解决方案
你好,代码不是很漂亮,但它可以工作
def hidden_word( keyword, counter=0):
first_word = keyword.split(' ')[0]
end=first_word[:counter]+"."*(len(first_word)-counter)+" "+" ".join(["."*len(i) for
i in keyword.split(' ')[1:]])
return end
hidden_word("hello world !",2)
推荐阅读
- powershell - Powershell 将 URL 分配给变量而不是将它们放在文件中
- go - 显示 URL 而非 Go 请求 GCP 响应的代码
- postgresql - 如何在Postgres中的数字序列之前提取一组字符串?
- c++ - 在循环条件内哪个更有效,我
假设对于给定的整数 N,我需要运行 N 次的循环平方根。
在 C++ 中,我可以通过以下两种方式做到这一点——
1)
long long sqrtN = std::sqrt(N); for (long long i=1; i < sqrtN; i++)
- inno-setup - 为什么 Visual & Installer 在我构建安装程序时总是创建一个“输出”文件夹?
- django - 创建带有外键的对象
- android - 使用 Amazon Cognito 未经身份验证的身份池 ID 是否允许在 Android 应用程序之外访问我的 dynamodb?
- c# - 网站发布后未找到 SignalR 集线器
- c# - SafeMailItem 和 MailItem 的 HTMLBody 属性内容不同
- python - 即使我做了'import tensorflow.compat.v1 as tf',为什么 tf2.2.0ver?