使用while循环返回回文程序的结果

时间:2016-10-09 17:56:45

标签: python

n = str(input('Enter the string:'))
def palindrome(n):
    index = 0
    check = True
    while index<int(len(n)/2):
        if n[index]==n[-1-index]:
            index+=1
            return True
            break
        return False
if palindrome(n)==True:
    print('palindrome')
else:
    print('not palindrome')

我没有得到这个回文计划的正确答案。

5 个答案:

答案 0 :(得分:1)

使用raw_input:

n = str(raw_input('Enter the string:'))

答案 1 :(得分:1)

def palindrome(my_string):
    reverse_string = my_string[::-1]
    if list(my_string)==list(reverse_string):
       return True
    else:
       return False
my_string = input("ENTER THE STRING ")
if(palindrome(my_string)):
    print("Palindrome")
else:
    print("Not Palindrome")

答案 2 :(得分:0)

经典解决方案:

foreach

答案 3 :(得分:0)

while index < int(len(n) / 2):
    if n[index] != n[len(n) - index - 1]:
        return False
    index+=1
return True

答案 4 :(得分:0)

你的支票坏了。看看return True

def palindrome(n):
    index = 0
    check = True
    while index<int(len(n)/2):
        if n[index]==n[-1-index]:
            index+=1  # only increment on match !!!
            return True  # return True on *first* match !!!
            break  # unnecessary, return exits the loop
        return False  # never reached, but would only trigger if there are no matches

基本上,您通过字符串并在第一个匹配上报告True。因此,如果第一个和最后一个字母相同,则返回True。仅当没有字符对匹配时,才会返回False。这与想要检查的相反。它应该是这样的:

def palindrome(n):
    index = 0
    check = True
    while index < len(n)/2:
        if n[index] != n[-1-index]:
            return False  # one didn't match, cannot be a palindrome
        index+=1
    return True  # all did match, is a palindrome