将所有大写字母替换为“ X”,并将所有小写字母替换为“ x”,同时保持所有空格或符号相同

时间:2018-10-28 22:29:29

标签: python anonymize

我正在尝试创建一个代码,在其中将输入字符串替换为“匿名”代码。我想用'X'替换所有大写字母,并用'x'替换所有小写字母,同时保持空格或符号不变。

我了解 <<变量>>。replace <<旧值,新值>> 如果 for 循环,但是实施它们时遇到麻烦,请帮忙吗?

对不起,如果我发布的代码不正确,我是新手

input_string   =  input( "Enter a string (e.g. your name): " ) 
lower = "abcdefghijklmnopqrstuvwxyz"
upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

for input in input_string:
    if input in input_string:
        input_string = lower.replace(input, "x")

    if input in upper:
        input_string = upper.replace(input, "X")`

print( "The anonymous version of the string is:", input_string )

2 个答案:

答案 0 :(得分:1)

python中的字符串是不可变的,因此您需要通过循环输入来构建一个新字符串。

在您的代码中,account-hook并没有这样做-表示用x替换与您的输入匹配的字母的内容。换句话说,您想改为使用lower.replace(input, "x"),但显然不想插入整个字母。


这是一个无需输入字母即可检查字符大小写的示例

input.replace

例如,另一种解决方案是使用input_string = input( "Enter a string (e.g. your name): " ) output_string = [] for c in input_string: if c.isupper(): output_string.append('X') elif c.islower(): output_string.append('x') else: output_string.append(c) print( "The anonymous version of the string is:", ''.join(output_string)) re.sub,但这取决于您了解它们如何工作

答案 1 :(得分:1)

有一些标准功能来指示字符为uppercaselowercase。这些是Unicode感知的(在Python 3和更高版本中),因此它们也可以使用带重音符号的字符。所以你可以使用

''.join('x' if x.islower() else 'X' if x.isupper() else x for x in text)

其中text是您的输入字符串。例如,

input_string   =  input( "Enter a string (e.g. your name): " ) 
result = ''.join('x' if x.islower() else 'X' if x.isupper() else x for x in input_string)

输入

I am trying to create a code where I substitute an input string into an 'anonymous' code.

产生

"X xx xxxxxx xx xxxxxx x xxxx xxxxx X xxxxxxxxxx xx xxxxx xxxxxx xxxx xx 'xxxxxxxxx' xxxx."