我正在学习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
有人会解释吗?
答案 0 :(得分:0)
此代码定义一个函数。该功能无法运行。显然是要检查它是否是回文症
如果您运行该函数,它将基于单词返回boolean
或True
的{{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)。