我试图重写第5-8行只有2行使用结构更换方法
s = 'pa55w-r@'
result = ''
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
result += '*'
else:
result += c
print(result)
下面是我到目前为止得到的。你知道吗
s = 'pa55w-r@'
result = ''
for c in s:
if(c not in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'):
result = s.replace(c,"*")
print(result)
但是,我不知道为什么输出是
pa55w-r*
而不是
pa55w*r*
原始代码有哪些?我尝试过与Using str.replace in a for loop的另一个示例进行比较,但是建议添加一个else语句,我实际上删除了它,将代码从3行压缩为2行。如有任何意见,我们将不胜感激
啊,我差点忘了提,我不能使用regex方法,这似乎是我在整个stackoverflow搜索技巧期间看到的常见答案。你知道吗
问题是结果变量只能看到一个替换过程。解决方法是对s进行连续赋值,使其越来越接近预期结果:
这将输出:
相关问题 更多 >
编程相关推荐