鱼C论坛

 找回密码
 立即注册
查看: 688|回复: 4

[已解决]大佬们帮帮我

[复制链接]
发表于 2020-4-28 01:58:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第29件第4题,我已经跟答案差不多了,就是跑不答案来
测了几下发现是
for eachline in file:
        if old in eachline:
            count+=eachline.count(old)
            eachline.replace(old,new)
中的replace函数并没将eachline里的旧词替换
为什么?????????





def replace_all(file_name,old,new):
    file=open(file_name)
    count=0
    content=[]
    for eachline in file:
        if old in eachline:
            count+=eachline.count(old)
            eachline.replace(old,new)
        content.append(eachline)
    print('文件',file_name,'中共有',count,'个【',old,'】')
    print('您确定要把所有的【',old,'】替换成【',new,'】吗?')
    b=input('【YES/NO】:')
    print(b)
    print(content)
    if b in ['yes','YES','Yes']:
        file.close()
        file_write = open(file_name, 'w')
        file_write.writelines(content)
        file_write.close()
    else:
        file.close()


x=input('请输入文件名:')
y=input('请输入需要替换的单词或字符:')
z=input('请输入新的单词后字符:')
replace_all(x,y,z)
最佳答案
2020-4-28 08:03:49
replace() 不会改变原字符串,它会返回新的字符串,所以应该:
eachline = eachline.replace(old, new)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 07:47:40 From FishC Mobile | 显示全部楼层
我也是,每次 str.replace() 总会出点小 Bug ,你可以试试指定 count
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 07:54:39 | 显示全部楼层
文本发上来,输入发上来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-28 08:03:49 | 显示全部楼层    本楼为最佳答案   
replace() 不会改变原字符串,它会返回新的字符串,所以应该:
eachline = eachline.replace(old, new)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 22:21:29 | 显示全部楼层
zltzlt 发表于 2020-4-28 08:03
replace() 不会改变原字符串,它会返回新的字符串,所以应该:

原来如此,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 22:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表