python - 如何使用函数的输出对字符串进行切片?
问题描述
我是 Python 的新手。我正在尝试使用 2 个函数的输出作为 slice() 方法的开始值和结束值。
file=open("../dataFiles/mbox-short.txt", mode='r')
line=file.readline()
def firstposition ():
return int(line.find("@"))
def secondposition ():
return int(line.find(" ", firstposition))
while line != "":
i=line[firstposition:secondposition]
print(i)
line = file.readline()
file.close()
我从 PyLab 收到以下错误:
Syntax error line 19:
i=line[firstposition:secondposition]
TypeError:
slice indices must be integers or None or have an __index__ method
如果函数返回整数,为什么切片不接受它们?使用的 .txt 文件包含带有单词和电子邮件地址的行,目的是索引每个域的开始和结束。
解决方案
您正在尝试调用firstposition
并且secondposition
好像它们是变量,而不是函数。()
如果您通过添加到每个代码将它们称为函数,那么您的代码将起作用。
file=open("../dataFiles/mbox-short.txt", mode='r')
line=file.readline()
def firstposition ():
return int(line.find("@"))
def secondposition ():
return int(line.find(" ", firstposition()))
while line != "":
i=line[firstposition():secondposition()]
print(i)
line = file.readline()
file.close()
推荐阅读
- html - 如何匹配 ` ` 标记之前的文本然后返回 ` ` 节点?
- cmd - 使用 sendmidi 将 MIDI 发送到 Microsoft GS Wavetable Synth
- tensorflow - 运行预训练的 CNN 时不可调用非类型对象
- high-availability - 我有两个并行的系统,每个系统全年都有 99.9% 的正常运行时间。总体正常运行时间是多少?
- jq - jq没有得到预期的输出
- acumatica - 我们可以根据 Acumatica 中的逻辑更改站点地图名称(屏幕名称)吗
- java - 用Java画圆
- css - 具有可滚动 div 的 CSS,占用 100% 可用高度,但不向正文添加滚动条
- visual-studio-code - 更漂亮的 vscode “r 不是函数”
- python - Python3:os.system 不重定向标准输出