鱼C论坛

 找回密码
 立即注册
查看: 2170|回复: 7

[已解决]请教这里为啥count 还是0?

[复制链接]
发表于 2021-6-23 22:05:56 | 显示全部楼层 |阅读模式
7鱼币
def test1(file_name,tem1,tem2):
    f = open ('D:\\%s.txt'%file_name,encoding='utf-8')
    count = 0
    for each in f:
        for file_content in each:
            if file_content == 'tem1':
                count += 1
    f.close()
    print ('一共有%d个%s,是否确认全部替换为%s?YES/NO:' % (count,tem1,tem2),end='')
    anwser = input()
    while 1:
        if anwser != 'YES' and anwser != 'NO':
            anwser = input('输入有误,请重新输入:')
        elif anwser == 'YES':
            e = open ('D:\\%s.txt' % file_name,'w',encoding='utf-8')
            for each in e:
                time1 = 0
                for file_content in each:
                    if file_content == 'tem1':
                        time1 += 1
                if time1 == 0:
                    e.write(each)
                else:
                    list1 = each.split(tem1)
                    each1 = tem2.join(list1)
                    e.write(each1)
            e.close()
            break
test1('something1','一','初')
最佳答案
2021-6-23 22:05:57
本帖最后由 fish_nian 于 2021-6-23 22:37 编辑

你这一行有问题
if file_content == 'tem1':
这个变量使用引号引起来了,那么就不是变量了,而是字符串,这段话中没有tem1这个词当然显示为0了
将引号去了
if file_content == tem1:
就显示正确答案了
一共有2个一,是否确认全部替换为初?YES/NO:

最佳答案

查看完整内容

你这一行有问题 这个变量使用引号引起来了,那么就不是变量了,而是字符串,这段话中没有tem1这个词当然显示为0了 将引号去了 就显示正确答案了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-23 22:05:57 | 显示全部楼层    本楼为最佳答案   
本帖最后由 fish_nian 于 2021-6-23 22:37 编辑

你这一行有问题
if file_content == 'tem1':
这个变量使用引号引起来了,那么就不是变量了,而是字符串,这段话中没有tem1这个词当然显示为0了
将引号去了
if file_content == tem1:
就显示正确答案了
一共有2个一,是否确认全部替换为初?YES/NO:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-23 22:07:00 | 显示全部楼层
第七行那里的count,下面是我输入文件的内容:
原来姹紫嫣红开遍
似这般都付与断井颓垣
良辰美景奈何天
赏心乐事谁家院
朝飞暮卷,云霞翠轩,雨丝风片,烟波画船
锦屏人忒看这韶光贱
梦长梦短俱是梦
年来年去是何年
这般花花草草由人恋
生生死死随人愿,便酸酸楚楚无人怨
待打并香魂一片,阴雨梅天,守的个梅根相见
三分春色描来易,一段伤心画出难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-23 22:07:59 | 显示全部楼层
f = open ('D:\\something1.txt',encoding='utf-8')
count = 0
for each in f:
        for d in each:
                if d == '原':
                        print (5)
                        count += 1
print (count)

我写了这个相似的代码,结果都打印出了5 和1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-23 22:08:55 | 显示全部楼层
不知道为啥放在最上面那个代码里面就有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-23 22:35:42 | 显示全部楼层
如果解答了请给个最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-24 14:58:04 | 显示全部楼层
fish_nian 发表于 2021-6-23 22:35
如果解答了请给个最佳答案

想了半天没想出哪儿出问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-6-24 16:21:56 | 显示全部楼层
杨东明 发表于 2021-6-24 14:58
想了半天没想出哪儿出问题了

仔细看看就能发现错在什么地方了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 06:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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