【问题标题】:Using variables as slice indices for python使用变量作为 python 的切片索引
【发布时间】:2017-11-29 14:15:39
【问题描述】:

我正在学习如何对整数进行切片。在下面的代码中,变量halflength 等于变量message 长度的一半。

new = message[halflength::]

halflength 等于一个整数,但是每当我运行此代码时,我都会收到此错误:

TypeError: 切片索引必须是整数或 None 或具有__index__ 方法

基本上我需要尝试创建一个等于原始字符串后半部分的新字符串。

示例:原始字符串 1234 将生成 34 作为新字符串。

【问题讨论】:

  • 你能告诉我们你在哪里定义halflength吗?
  • 它适用于我的任意整数。我觉得你不小心有一个浮动。
  • 向我们展示您如何初始化halflength。它似乎不是整数。
  • 信息不足,无法继续。请把你的代码放在这里。通常在发现错误之前就已经引入了很多错误。

标签: python string slice


【解决方案1】:

我认为问题是你在除法后得到一个半长度的浮点类型,尝试将其转换为 int,或者使用整数除法

halfLength = int(halfLength)

halfLength = len(message) // 2

【讨论】:

    【解决方案2】:

    要做你想做的事,试试这样:

    halfLength=len(message)//2
    newMessage=message[halfLength::]
    

    如果您以这种方式获得长度,它将始终是一个整数,然后您可以使用它来获取部分刺。

    【讨论】:

    • len(message) // 2 *
    • 抱歉刚刚修好了
    【解决方案3】:

    确保半长是整数类型。 您可以使用“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)::]
    

    【讨论】:

      猜你喜欢
      • 2011-11-29
      • 2018-03-02
      • 1970-01-01
      • 2013-03-18
      • 2018-05-06
      • 2020-04-01
      • 2014-01-08
      • 1970-01-01
      • 2015-02-18
      相关资源
      最近更新 更多