鱼C论坛

 找回密码
 立即注册
查看: 1620|回复: 2

关于代码问题

[复制链接]
发表于 2020-7-12 21:36:22 | 显示全部楼层 |阅读模式

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

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

x
file_name=input("请输入文件名:")
f=open('file_name','w+')
yuan=str(input("请输入需要替换的单词或字符:"))
ti=str(input("请输入新的单词或字符:"))

list1=list(f)

length=len(list1)
count=0
for i in range(length):
    if 'list[i]'=='yuan':
        count+=1
print("文件",file_name,"中共有",count,"个",yuan)
print("您确定要把所有的【",yuan,"】替换为【",ti,"】吗?")
answer=input("【Yes/No】:")
if answer=="Yes":
    for i in range(length):
        if list1[i]==yuan:
            list1[i]=ti
f.close()
代码功能是将指定的字符全部换成另一个字符,想请教一下大家,这个代码哪有问题啊?为什么执行出来都只显示有0个需要替换的?求指教,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-12 21:41:46 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-7-12 22:00 编辑

错误1:
f=open('file_name','w+')
这一行,你的 file_name 加了引号
使程序的意思变成了 打开一个名叫 'file_name' 的文件

错误2:
你直接使用 w 模式打开,源文件里的内容就全部没有了(使用 w 打开无法做到读取文件内容)

应该先使用,r 模式先读取文件,然后再由 w 模式写入

错误3:
这句话……:
if 'list[i]'=='yuan':
        count+=1
'list[i ]' 绝对是不等于 'yuan', 的(因为都是字符串)

看你这两句的意思应该是想把 f 文件中的所有字符变成列表,但是不用 r 模式打开,不用 read() 根本无法做到读取文件
(f 只是一个对象,而不是字符串,要使用 r 模式打开之后,然后 f.read() 才能做到文件读取)
list1=list(f)

length=len(list1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-12 21:54:49 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-12 21:56 编辑





错误1:
你将 open 里面的 file_name 加上引号是指打开名为 file_name 文件了,而且 你 w 打开会导致覆盖你的文件为空文件

错误2:
if 'list[i]'=='yuan': 
都加上了引号,表示的是这两个字符串是否相等

显然不相等,而且这里这样的判断没用,因为list1 里面的是文件一行一行的字符串内容,而判断你输入的部分字符

错误就不说了,楼上好像总结的差不多了,参考下下面的代码吧:
file_name=input("请输入文件名:")
f=open(file_name)
yuan=input("请输入需要替换的单词或字符:")
ti=input("请输入新的单词或字符:")

list1=list(f)
f.close()
length=len(list1)
count=0
for i in range(length):
    if yuan in list1[i]:
        count += list1[i].count(yuan)
        list1[i] = list1[i].replace(yuan,ti)

print("文件",file_name,"中共有",count,"个",yuan)
print("您确定要把所有的【",yuan,"】替换为【",ti,"】吗?")
answer=input("【Yes/No】:")
if answer=="Yes":
    f = open(file_name, 'w')
    f.writelines(list1)
    f.close()




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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