鱼C论坛

 找回密码
 立即注册
查看: 1795|回复: 5

[已解决]关于29课时的代码

[复制链接]
发表于 2017-7-27 18:28:49 | 显示全部楼层 |阅读模式

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

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

x
  1. f = open('dialogue.txt')
  2. boy = []
  3. girl = []
  4. count = 1

  5. for each_line in f:
  6.         if each_line[:5] != '======':
  7.                 (role,talk) = each_line.split(':',1)
  8.                 if role == '小甲鱼':
  9.                         boy.append(talk)
  10.                 else:
  11.                         girl.append(talk)
  12.         else:
  13.                 file_boy_name = 'boy_' + count + '.txt'
  14.                 file_girl_name = 'girl_' + count + '.txt'
  15.                
  16.                 #打开文件
  17.                 file_boy = open(file_boy_name,'w')
  18.                 file_girl = open(file_girl_name,'w')

  19.                 #写入文件
  20.                 file_boy.writelines(boy)
  21.                 file_girl.writelines(girl)

  22.                 #关闭文件
  23.                 file_boy.close()
  24.                 file_girl.close()

  25.                 count +=1
  26. f.close()
复制代码


运行报错:
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\python\draft.py", line 8, in <module>
    (role,talk) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)

dialogue文件内容如下:
小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:。。。。。。
==============================================
小客服:小甲鱼,有个好评很好笑哈。
小甲鱼:哦?
小客服:“有了小甲鱼,以后妈妈再也不用担心我的学习了~”
小甲鱼:哈哈哈,我看到了,我还发微博了呢~
===============================================
小客服:小甲鱼,今天有个会员找你。
小甲鱼:哦?什么事?
小客服:他说你一个学生月薪已经超过12K了!!
小甲鱼:哪里的?
小客服:上海的。


我实在弄不懂哪里出错了
最佳答案
2017-7-28 11:23:23
  1. each_line[:5] != '======':
复制代码

:5得到的结果是'====='
只有5个等号,而你等于的是6个等号,永远都不等。所以等号行也会执行下面的代码,实际上无法split,导致程序出错。

另外,这个文档里面的冒号和等号都直接复制出来用最好,否则也可能出错。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-27 18:45:31 | 显示全部楼层
你看看dialogue文件中的冒号与程序中的冒号一样吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-27 18:50:41 | 显示全部楼层
冬雪雪冬 发表于 2017-7-27 18:45
你看看dialogue文件中的冒号与程序中的冒号一样吗?

一样的英文冒号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-27 18:56:18 | 显示全部楼层

这是我从你的帖子里复制过来的

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

使用道具 举报

发表于 2017-7-28 11:23:23 | 显示全部楼层    本楼为最佳答案   
  1. each_line[:5] != '======':
复制代码

:5得到的结果是'====='
只有5个等号,而你等于的是6个等号,永远都不等。所以等号行也会执行下面的代码,实际上无法split,导致程序出错。

另外,这个文档里面的冒号和等号都直接复制出来用最好,否则也可能出错。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-28 16:36:48 | 显示全部楼层
ooxx7788 发表于 2017-7-28 11:23
:5得到的结果是'====='
只有5个等号,而你等于的是6个等号,永远都不等。所以等号行也会执行下面的代码 ...


卧艹,居然是这么个小细节,难怪想破脑袋也找不到问题在哪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-1 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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