29讲课后作业4,实现“全部替换”功能
4. 编写一个程序,实现“全部替换”功能。def file_save(file_name, word_num, new_word):
f = open(file_name)
count = 0
num = 0
con = []
for each in f:
if word_num in each:
count = each.count(word_num)
#count += each.count(word_num)
num += count #num += count放在if语句中和放在if语句外面有区别吗?我个人理解是没有区别,问题是运行之后统计有区别
each = each.replace(word_num, new_word)
con.append(each)
#num += count
print('文件 %s 中共有%s个【%s】' % (file_name, num, word_num))
print('确定单词【%s】转换为【%s】吗?' % (word_num, new_word))
decide = input('【YES/NO】:' )
if decide in ['YES', 'Yes', 'yes']:
f_w = open(file_name, 'w') #写入方式打开原文件
f_w.writelines(con) #将修改之后的文件内容(con列表内),覆盖原文件内容
f_w.close()
f.close()
file_name = input('input file name:')
word_num = input('input need replace word:')
new_word = input('input new word:')
file_save(file_name, word_num, new_word)
#num += count放在if语句中和放在if语句外面有区别吗?我个人理解是没有区别,问题是运行之后统计有区别
num += count放在if语句中执行,运行结果是统计数正确的
num += count放在if语句外执行,运行结果是统计数就不对了
所以是我理解有问题吗?新手求解答 放在里边和外边是有区别的,放在里边是正确的。你放在if语句外边的话就是说无论if后边的条件是否正确,都会执行num += count这条语句的,当if条件不成立的时候,正常来讲是不需要执行这条语句的,但是你放到了外边,程序会把你上次执行if语句时count的值再加一遍,这样显然是不对的。 chong0918 发表于 2020-8-27 00:17
放在里边和外边是有区别的,放在里边是正确的。你放在if语句外边的话就是说无论if后边的条件是否正确,都会 ...
{:5_104:}卧槽,我丫的傻逼了
页:
[1]