小白求助 为什么字符串没有被替换

qq_45781976 2019-12-03 12:47:25
w = input(‘93python22’) for x in w: if '0'<= x <= '9': continue else: w.replace(x,'') print(w)
...全文
45 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄哥Python培训 2019-12-03
  • 打赏
  • 举报
回复
replace 的方法返回一个新的字符串对象,并没有修改原来的字符串。

In [7]: w = '93python22'

In [8]: w.replace('p', '')
Out[8]: '93ython22'

In [9]: w
Out[9]: '93python22'
黄哥Python培训 2019-12-03
  • 打赏
  • 举报
回复
原来的字符串对象是不可变对象 可以这样



In [17]: w = '93python22'

In [18]: s = ""

In [19]: for char in w:
    ...:     if char.isdigit():
    ...:         s += char
    ...:

In [20]: s
Out[20]: '9322'

In [21]:

qq_45781976 2019-12-03
  • 打赏
  • 举报
回复
引用 2 楼 Vv.Stone3 的回复:

w = '93python22'
for x in w:
    if '0' <= x <= '9':
        continue
    else:
        w = w.replace(x,'')

print(w)
哦哦哦可以了不好意思
qq_45781976 2019-12-03
  • 打赏
  • 举报
回复
引用 1 楼 黄哥Python培训 的回复:
replace 的方法返回一个新的字符串对象,并没有修改原来的字符串。

In [7]: w = '93python22'

In [8]: w.replace('p', '')
Out[8]: '93ython22'

In [9]: w
Out[9]: '93python22'
那我重新设置一个变量还是不行啊
qq_45781976 2019-12-03
  • 打赏
  • 举报
回复
引用 2 楼 Vv.Stone3 的回复:

w = '93python22'
for x in w:
    if '0' <= x <= '9':
        continue
    else:
        w = w.replace(x,'')

print(w)
还是不行
jmzl 2019-12-03
  • 打赏
  • 举报
回复
字符串是常量不能修改
So.ne 2019-12-03
  • 打赏
  • 举报
回复

w = '93python22'
for x in w:
    if '0' <= x <= '9':
        continue
    else:
        w = w.replace(x,'')

print(w)

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧