Создание палиндромной проверки с Python 'sl oop и операторами if - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь следовать инструкциям по созданию палиндрома. Мне дают половину функции, и я должен заполнить пробелы. В настоящее время я не могу заставить l oop работать правильно. Я также не уверен, как добавить символы в начало или конец строки, не используя + или запятую. Я не думаю, что это то, что меня просят сделать. Вот инструкции;

Функция is_palindrome проверяет, является ли строка палиндромом ... Заполните пробелы в этой функции, чтобы вернуть True, если переданная строка является палиндромом, и False, если нет.

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = input_string.replace(" ", "")
    reverse_string = input_string.replace(" ", "")
    # Traverse through each letter of the input string
    for word in input_string: # Originally, I was only given the a FOR statement here, I wrote in the rest
        new_string+=word.replace(" ","").upper()
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string. 

    if ___:
        new_string = ___
        reverse_string = ___
    # # Compare the strings
      if ___:
          return True
          return False

print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True

Я удалил пустые места и сделал все то же самое. Я назначил символы для new_string, но похоже, что я должен использовать join для добавления символов, но когда я это делаю, оператор print ничего не печатает. Я не уверен, как добавить элементы в обратном порядке. Я даже не уверен, нахожусь ли я на правильном пути, потому что я не уверен, что спрашивает заявление IF. Я бы подумал, что смогу использовать al oop для создания строки, а затем сравнить две строки.

Кроме того, кто-то может объяснить, почему new_string.join (word) ничего не печатает? Как я использую это неправильно?

Большое спасибо за любую возможную помощь.

Ответы [ 4 ]

0 голосов
/ 05 апреля 2020

Это сработало для меня , Этот код, что система ожидала увидеть.

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = ""
    reverse_string = ""
    # Traverse through each letter of the input string
    for word in input_string:
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string. 
        word = word.lower()
        if word != " ":
            new_string = new_string + word
            reverse_string = word + reverse_string
    # Compare the strings
    if new_string == reverse_string:
        return True
    return False

print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True

Функция is_palindrome

0 голосов
/ 08 марта 2020

Я написал эту программу,
Она также возвращает ожидаемый результат, но она отклоняется.
Не знаю, что именно они проверяют внутри, чтобы проверить код и его правильность.
Моя реализация:

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = ""
    reverse_string = ""
    # Traverse through each letter of the input string
    for letter in input_string.strip():
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string. 
        if letter !=' ':
            new_string = new_string+letter
            reverse_string = letter+reverse_string
    # Compare the strings
    if new_string.lower() == reverse_string.lower():
        return True
    return False

print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True

enter image description here

Если кто-нибудь знает, что именно мне здесь не хватает?

0 голосов
/ 08 марта 2020

Это сработало для меня , я попытался немного изменить мой код, теперь он работает с кодом ниже.

Вы можете увидеть, как он прошел тестирование и проверку кода, см. Скриншоты и код ниже.

enter image description here

def is_palindrome(input_string):
    # We'll create two strings, to compare them
    new_string = ""
    reverse_string = ""
    # Traverse through each letter of the input string
    for letter in input_string.strip():
        # Add any non-blank letters to the 
        # end of one string, and to the front
        # of the other string. 
        new_string = new_string+letter.replace(" ","")
        reverse_string = letter.replace(" ","")+reverse_string
    # Compare the strings
    if new_string.lower() == reverse_string.lower():
        return True
    return False

print(is_palindrome("Never Odd or Even")) # Should be True
print(is_palindrome("abc")) # Should be False
print(is_palindrome("kayak")) # Should be True
0 голосов
/ 26 февраля 2020
def is_palindrome(input_string):
 new_string = input_string.replace(" ", "").lower()
 reverse_string = input_string.replace(" ", "").lower()[::-1]
if new_string == reverse_string:
        return True
    return False

> This should do it.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...