鱼C论坛

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

[已解决]Python3的29课课堂习题问题

[复制链接]
发表于 2016-10-7 21:51:47 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 coffee_cat 于 2016-10-7 22:06 编辑

def split_file(f):                  
    boy = []                       
    girl = []                       
    count = 1                     
    for each_line in f:            
        if each_line[:5] != '=====':   
            (role,line_spoken) = each_line.split(':',1)  #这里的split()用法中1是什么意思,看不懂
            if role == '小甲鱼':
                boy.append(line_spoken)
            else:                       
                girl.append(line_spoken)
        else:                  
            save_file(boy,girl,count)
            count += 1
            boy = []
            girl = []
    save_file(boy,girl,count)      
def save_file(boy,girl,count):      
    file_boy_name = '%s%c%d.txt' %('小甲鱼','_',count)
    file_girl_name = '%s%c%d.txt' %('小客服','_',count)
    f1 = open(file_boy_name,'xt')
    f1.writelines(boy)
    f2 = open(file_girl_name,'xt')
    f2.writelines(girl)
    f1.close()
    f2.close()
f = open('record.txt','rt')
split_file(f)
f.close()            

我用的是win7,学的是Python3,希望可以得到答案,谢谢。   
最佳答案
2016-10-7 22:20:33
这里的1是只对第一个遇到的字符进行分隔。
  1. >>> s = '123:qwe:ASD'
  2. >>> s.split(':')
  3. ['123', 'qwe', 'ASD']
  4. >>> s.split(':',1)
  5. ['123', 'qwe:ASD']
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-10-7 22:20:33 | 显示全部楼层    本楼为最佳答案   
这里的1是只对第一个遇到的字符进行分隔。
  1. >>> s = '123:qwe:ASD'
  2. >>> s.split(':')
  3. ['123', 'qwe', 'ASD']
  4. >>> s.split(':',1)
  5. ['123', 'qwe:ASD']
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-7 22:25:57 | 显示全部楼层
冬雪雪冬 发表于 2016-10-7 22:20
这里的1是只对第一个遇到的字符进行分隔。

可是当我输入2的时候
>>> s.split(':',2)
['123', 'qwe', 'ASD']
这个我就不能理解了,按理应该是在第二个进行分隔,为什么会都进行分隔
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-7 22:27:57 | 显示全部楼层
coffee_cat 发表于 2016-10-7 22:25
可是当我输入2的时候
>>> s.split(':',2)
['123', 'qwe', 'ASD']

不是对第几个,而是总共几个,你输入2就是对2个:都分隔。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-7 22:36:30 | 显示全部楼层
冬雪雪冬 发表于 2016-10-7 22:27
不是对第几个,而是总共几个,你输入2就是对2个:都分隔。

就是说,如果是1就是对第一个进行分隔,如果是2,就是对前两处进行分隔。是n,就是对前n处进行分隔?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-7 22:37:17 | 显示全部楼层
coffee_cat 发表于 2016-10-7 22:36
就是说,如果是1就是对第一个进行分隔,如果是2,就是对前两处进行分隔。是n,就是对前n处进行分隔?

是的

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
coffee_cat + 5 + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-7 22:39:04 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 05:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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