我正在尝试创建一个代码,在其中将输入字符串替换为“匿名”代码。我想用'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 )
答案 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)
有一些标准功能来指示字符为uppercase或lowercase。这些是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."