【问题标题】:Replace all upper case characters with 'X' and all lower case characters with 'x' whilst keeping any spaces or symbols the same用“X”替换所有大写字符,用“x”替换所有小写字符,同时保持所有空格或符号相同
【发布时间】:2018-10-28 22:29:29
【问题描述】:

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

我了解 >.replace>iffor 循环,但我无法实现它们来做我想做的事,请帮忙?

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

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 )

【问题讨论】:

  • 请展示您的尝试并解释具体问题所在。
  • 研究使用re.sub函数
  • ----------------
  • edit您的问题包含格式化代码
  • 试过了,可以吗?

标签: python anonymize


【解决方案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."

【讨论】:

  • 谢谢你,先生,我爱你
【解决方案2】:

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

在您的代码中,lower.replace(input, "x") 没有这样做 - 表示将字母表的内容(其字符与您的输入相匹配)替换为 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"[A-Z]", "X",但这取决于您了解它们的工作原理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2021-06-08
    • 2018-07-09
    相关资源
    最近更新 更多