如何弄清楚此Python代码的作用?

时间:2018-11-24 21:10:58

标签: python

我正在学习Python,我想知道这段代码的作用。

# This code is supposed to get an input of a word and not a sentence
def do_something(word):
  index = len(word)/2
  len_word = len(word)
  if index == 0:
     return True
  elif len_word % 2 == 0:
      return word[0:index] == word[-1:index-1:-1]
  else:
      return word[0:index+1] == word[-1:index-1:-1]

现在我尝试检查,但变量索引对我不起作用,可能是因为我使用的是3.7。

但是我在不使用变量的情况下进行了检查,仅对其进行了计数,我认为这段代码假定检查后半部分是否等于后半部分或类似的东西。

我也不确定为什么会有这行:

if index == 0:
 return True

有人会解释吗?

2 个答案:

答案 0 :(得分:0)

此代码定义一个函数。该功能无法运行。显然是要检查它是否是回文症

如果您运行该函数,它将基于单词返回booleanTrue的{​​{1}}值。

False被定义为index(或注释中提到的len(word)/2),因此显然是为了解决len(word)//2类似于{{1 }}

下一个省略号检查word的长度是否均匀。需要基于此调整检查回文的代码。因此,""word

之间的返回码略有不同

elif(以else为例)得到单词的前半部分return word[0:index] == word[-1:index-1:-1],后半部分相反 {{1 }}检查它们是否相同。它将在切片末尾用elif反转单词的后半部分。

答案 1 :(得分:0)

  if index == 0: 
     return True

检查输入是否只有1个单词。类似于1//2 == 0,但2或更大不等于0。

elif len_word % 2 == 0:
      return word[0:index] == word[-1:index-1:-1] # will return True or False

如果长度为偶数(2,4,6 ...),则将0 to index中字符串的字符与末尾直到index-1 and if matches返回True {{1} }假`

otherwise

如果长度为奇数(1,3,5 ...),则将return word[0:index+1] == word[-1:index-1:-1] 中字符串的字符与末尾直到0 to index+1返回True {{1}的字符串中的字符进行比较}假`。

注意:代码index-1 and if matches中应该有一个双斜杠otherwise的错误。一个斜杠是浮点除法,将返回0.5,因此第一种情况永远不会为true(索引== 0)。