鱼C论坛

 找回密码
 立即注册
查看: 1857|回复: 6

[已解决]关于count计数器问题?

[复制链接]
发表于 2018-4-15 23:18:06 | 显示全部楼层 |阅读模式

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

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

x
def save_file(boy,girl,count):
    file_name_boy = 'boy_' + str(count) + '.txt'    #命名文件boy_x
    file_name_girl = 'girl_' + str(count) + '.txt'  #命名文件girl_x

    boy_file = open(file_name_boy,'w')          #打开文件boy_x
    girl_file = open(file_name_girl,'w')        #打开文件girl_x

    boy_file.writelines(boy)        #将boy列表里的参数写入文件boy_x
    girl_file.writelines(girl)      #将girl列表里的参数写入文件girl_x

    boy_file.close()    #关闭boy_x文件
    girl_file.close()   #关闭girl_x文件

def split_file(file_name):
    f1 = open('E:/小甲鱼作业/29课堂练习/record.txt')
    boy = []
    girl = []
    count = 1   #初始化计数器count

    for each_line in f1:
        if each_line[:6] != '======':       #这里进行字符串分割操作
            (role,line_spoken) = each_line.split(':',1)
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:                   #文件的分别保存操作
            save_file(boy,girl,count)

            boy = []        #初始化boy和girl两个列表 计数器count加1
            girl = []
            count += 1
            
    save_file(boy,girl,count)  
#这里的count的值是3?对吧!但是前面不是有一个count=1的局部变量吗,count不是在for循环内的局部变量吗,求解惑

    f1.close()

split_file('E:/小甲鱼作业/29课堂练习/record.txt')   
最佳答案
2018-4-16 12:27:03
hi
一、
def split_file(file_name):
    f1 = open('E:/小甲鱼作业/29课堂练习/record.txt')
    boy = []
    girl = []
    count = 1   #初始化计数器count

    for each_line in f1:
        if each_line[:6] != '======':       #这里进行字符串分割操作
            (role,line_spoken) = each_line.split(':',1)
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:                   #文件的分别保存操作
            save_file(boy,girl,count)

            boy = []        #初始化boy和girl两个列表 计数器count加1
            girl = []
            count += 1
            
    save_file(boy,girl,count)  
#这里的count的值是3?对吧!但是前面不是有一个count=1的局部变量吗,count不是在for循环内的局部变量吗,求解惑
-- 变量count归属于split_file()函数,count=1的作用是初始化计数器,随后在for循环里进行处理。'count不是在for循环内的局部变量吗' 这个概念是错误的,count就是归属于split_file()函数的变量。

二、
count = 1
print('全局变量%d'%count)
def a():
    count =2
    print('11局部变量%d'%count)
    for count in range(10):
                       count +=1
                       print('局部变量%d'%count)
   
    print('22局部变量%d'%count)
#这里就不一样了,count = 1 属于全局变量;函数a()中的count属于局部变量,仅归属于a(); 这两个变量count之间没有任何联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-4-15 23:30:24 | 显示全部楼层
count = 1
print('全局变量%d'%count)
def a():
    count =2
    print('11局部变量%d'%count)
    for count in range(10):
                       count +=1
                       print('局部变量%d'%count)
   
    print('22局部变量%d'%count)
[/我这样试了一下 貌似懂了,但是还是希望有老师给讲解一下,帮助我理解!万分感谢!color]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-15 23:34:18 | 显示全部楼层
count = 1
print('全局变量%d'%count)
def a():
    count =2
    print('11局部变量%d'%count)
    for each in range(10):
                       #count +=1
                       print('局部变量%d'%count)
                       count +=1
   
    print('22局部变量%d'%count)
[/我又改了一点,我又不太懂了。。。请老司机解答color]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-16 12:27:03 | 显示全部楼层    本楼为最佳答案   
hi
一、
def split_file(file_name):
    f1 = open('E:/小甲鱼作业/29课堂练习/record.txt')
    boy = []
    girl = []
    count = 1   #初始化计数器count

    for each_line in f1:
        if each_line[:6] != '======':       #这里进行字符串分割操作
            (role,line_spoken) = each_line.split(':',1)
            if role == '小甲鱼':
                boy.append(line_spoken)
            if role == '小客服':
                girl.append(line_spoken)
        else:                   #文件的分别保存操作
            save_file(boy,girl,count)

            boy = []        #初始化boy和girl两个列表 计数器count加1
            girl = []
            count += 1
            
    save_file(boy,girl,count)  
#这里的count的值是3?对吧!但是前面不是有一个count=1的局部变量吗,count不是在for循环内的局部变量吗,求解惑
-- 变量count归属于split_file()函数,count=1的作用是初始化计数器,随后在for循环里进行处理。'count不是在for循环内的局部变量吗' 这个概念是错误的,count就是归属于split_file()函数的变量。

二、
count = 1
print('全局变量%d'%count)
def a():
    count =2
    print('11局部变量%d'%count)
    for count in range(10):
                       count +=1
                       print('局部变量%d'%count)
   
    print('22局部变量%d'%count)
#这里就不一样了,count = 1 属于全局变量;函数a()中的count属于局部变量,仅归属于a(); 这两个变量count之间没有任何联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-17 23:14:46 | 显示全部楼层
thexiosi 发表于 2018-4-16 12:27
hi
一、
def split_file(file_name):

一、
def split_file(file_name):
     f1 = open('E:/小甲鱼作业/29课堂练习/record.txt')
     boy = []
     girl = []
     count = 1   #初始化计数器count

     for each_line in f1:
         if each_line[:6] != '======':       #这里进行字符串分割操作
            (role,line_spoken) = each_line.split(':',1)
             if role == '小甲鱼':
                 boy.append(line_spoken)
             if role == '小客服':
                 girl.append(line_spoken)
         else:                   #文件的分别保存操作
            save_file(boy,girl,count)

             boy = []        #初始化boy和girl两个列表 计数器count加1
             girl = []
             count += 1
            
     save_file(boy,girl,count)  #计数器计算到这里时count的值是3,所以这里的值不会等于全局变量的1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-17 23:17:33 | 显示全部楼层
thexiosi 发表于 2018-4-16 12:27
hi
一、
def split_file(file_name):

count = 1
print('全局变量%d'%count)    #这里是1没有疑问
def a():
     count =2
     print('11局部变量%d'%count)       #这里是2也没有疑问
     for count in range(10):
                        count +=1
                        print('局部变量%d'%count)        #这里10次循环调用的是局部变量的初始值

     print('22局部变量%d'%count)      #这里有的小疑惑,它为啥不是2 也不是1 二十上面循环十次后的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-18 06:44:57 | 显示全部楼层
嘻嘻咯咯 发表于 2018-4-17 23:17
count = 1
print('全局变量%d'%count)    #这里是1没有疑问
def a():

hi 原因如下

局部变量count在for循环期间进行了累加运算,count += 1  等价于 count = count + 1,每一次for循环,都会自动+1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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