我正在尝试一段时间来想象一种在Python中生成单词的所有可能大写的方法。例如:
hello
Hello
HEllo
...
heLLo
...
HeLlO
我发现了一些内置函数,它们可以处理大小写(例如.capitalize()
),但它们似乎可以解决典型案例(简单句子,参考书目)。我会很感激能看到我想到的for
循环的位置,以及递归不是解决方案(我不会在这里提到它们,它们是错误的)
澄清:由于5到9人(通过暂停,downvote和评论)需要澄清,我会尝试使用不同的单词制作一个。
我有一个由a到z的字符组成的字符串(后面称为 word )。我希望,在Python中,获取所述单词的列表,但是以所有可能的方式大写(即大写字母的混合(如
M
)和小写一些(如f
)。这会产生一个类似于上面的列表(包含 wordhello
的变体。
我很高兴我没有问过如何将两个数字相乘,我需要用代数环中的速成课程来澄清。
答案 0 :(得分:5)
import itertools
for chars in itertools.product('hH', 'eE', 'lL', 'lL', 'oO'):
print(''.join(chars))
OR
word = 'hello'
for chars in itertools.product(*zip(word, word.upper())):
print(''.join(chars))
输出:
hello
hellO
helLo
helLO
heLlo
heLlO
heLLo
heLLO
...
答案 1 :(得分:0)
重新解释问题的 get 时,也可能意味着:
如何评估键盘输入错误的移位键(假设情况不重要)?
然后,我可能会尝试这个
import re
m = re.match(user_input, "hello", re.IGNORECASE);
......或者只是这个
user_input.lower() == "hello"