对于一门课我正在学习如何切片整数。在下面的代码中,变量halflength
等于变量message
长度的一半。
new = message[halflength::]
halflength
等于整数,但每当我运行此代码时,我都会收到此错误:
TypeError:切片索引必须是整数或无或具有
__index__
方法
基本上我需要尝试创建一个等于原始字符串后半部分的新字符串。
示例:原始字符串1234将生成34作为新字符串。
答案 0 :(得分:3)
我认为问题是你在分割后获得halfLength的浮点类型,尝试将其转换为int,或者使用整数除法
halfLength = int(halfLength)
或
halfLength = len(message) // 2
答案 1 :(得分:2)
做你想做的事情尝试这样的事情:
halfLength=len(message)//2
newMessage=message[halfLength::]
如果你通过这种方式获得长度,它将始终是一个整数,然后你可以用它来获取部分蜇伤。
答案 2 :(得分:0)
确保半长为Integer类型。 您可以使用“isinstance”方法进行验证。
# python
Python 2.7.5 (default, Aug 2 2016, 04:20:16
>>> halflength = "4"
>>> isinstance(halflength,int)`
False`
>>> halflength=4
>>> isinstance(halflength,int)
True
>>>
试试这个:
message[int(halflength)::]