改进Python回文代码

ste*_*eve 2 python palindrome simplify

所以我最近实现了一个代码来检查一个单词,看它是不是回文.

def isPalindrome():
    string = input('Enter a string: ')
    string1 = string[::-1]
    if string[0] == string[(len(string)-1)] and string[1:(len(string)-2)] == string1[1:(len(string)-2)]:
            print('It is a palindrome')
    else:
        print('It is not a palindrome')
isPalindrome()
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人可以给我提示简化代码.

编辑 - 如果我要使用语句使函数成为迭代函数string == string1,我将如何停止无限循环?我需要一个计数来停止while循环吗?

Ter*_*ryA 6

不需要这么复杂的条件.你已经有一个反向字符串(string[::-1]).

你需要做的就是:

def isPalindrome():
    string1 = input('Enter a string: ')
    string2 = string1[::-1]
    if string1 == string2:
        return 'It is a palindrome'
    return 'It is not a palindrome'

isPalindrome()
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,不要string用作变量名.这就是内置模块的名称)

返回字符串而不是打印它们会更好.这样你的功能就不会return None(防止以后可能发生的一些事情)