我正在尝试创建一个代码,将输入字符串替换为"匿名"代码。我想用"X"替换所有大写字符,用"X"替换所有小写字符,同时保持任何空格或符号不变。
我理解<lt;变量>>.replace<lt;旧值、新值>>和如果和用于循环,但在实现它们以执行我想要的操作时遇到问题,请提供帮助?
很抱歉,如果我发布的代码不正确,我是这个的新手
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 )
有一些标准函数可以指示字符是大写还是小写。这些是支持Unicode的(在Python3和更新版本中(,因此它们也适用于重音字符。所以你可以使用
''.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."
在你的代码中,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"
,但这取决于您学习它们是如何工作的