python字符串处理问题

运行发现程序找到了password中的符号但没有进行删除请问问题在哪里以及如何修改... 运行发现程序找到了password中的符号但没有进行删除 请问问题在哪里以及如何修改 展开
 我来答
阳光的雷咩咩
2019-08-15 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7886万
展开全部
  1. strip函数只能去除首尾字符,不能去掉中间字符

  2. strip函数没有副作用,也就是返回值才是去掉后的字符串

  3. 更简洁的写法left = ''.join([c for c in password if c in symbols])

GTA小鸡
高粉答主

2019-08-15 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

错误一:字符串对象不可以修改,strip()返回的是一个新字符串对象,而原来的对象password不变。

错误二:strip()函数的作用是移除字符串头尾指定的字符,对中间的字符无效。

错误三:在遍历字符串的过程中又改变了字符串的长度,将会导致x定位错误。

修正你的程序:

cleaned_password = ''

for x in range(0, len(password)):

    for i in symbols:

        if password[x] == i:

            break

    else:

        cleaned_password += password[x]

print(cleaned_password)

但是,这个程序本身效率低下,完全可以用一行代码完成同样的工作:

password = ''.join(filter(lambda x: x in symbols, password))

追问
那如果我同时要判断password中是否有与symbols重复的元素怎样比较简洁
追答
比较上面那行代码得到的结果与原始的password字符串是否相同即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy1397471
2019-08-15 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部
strip只删除字符串两头的,如果再字符串中间部分找到是不会删除的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式