诗岑
2019-12-09 12:00
采纳率: 82.8%
浏览 263

字符串切片,哪里有错误

按照如下代码,遍历file中的字符串

import matplotlib.pyplot as plt
plt.figure()
plt.axes()
file=open("C:/Users/jyz_1/Desktop/新建文本文档.txt")
file=file.read()
lines=file.split("重庆")
x=[0,10,20,30,40]
tu1,tu2,tu3,tu4,tu5=0,0,0,0,0
tl1,tl2,tl3,tl4,tl5=0,0,0,0,0
for line in lines:
    tu=int(line[line.find("\n",line.index("\n")+1)+1:line.index("C")])
    tl=int(line[line.index("~")+1:line.find("C",line.index("C")+1)])

然后python报错:

Traceback (most recent call last):
  File "C:\Users\jyz_1\AppData\Local\Programs\Python\Python37-32\13.py", line 11, in <module>
    tu=int(line[line.find("\n",line.index("\n")+1)+1:line.index("C")])
ValueError: invalid literal for int() with base 10: '阴\n10'

使用debug发现是第二次索引file时tu的值错误
于是我在shell里尝试:

>>> lines=['2015-1-1\n阴\n11c~7c\n微风','2015-1-2\n阴\n10c~8c\n微风']
>>> for line in lines:
    line[line.find("\n",line.index("\n")+1)+1:line.index("c")]

'11'
'10'

结果并没有出错!那么是哪里有问题呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 空白如空 2019-12-09 13:45
    已采纳

    说明你这个划分出来有中文,中文转int错误

     invalid literal for int() with base 10: '阴\n10'
    

    ("C:/Users/jyz_1/Desktop/新建文本文档.txt")
    你这个文本的信息是怎么样的

    点赞 评论

相关推荐 更多相似问题