Python: указание значений Start и Stop с помощью range () - PullRequest
0 голосов
/ 14 апреля 2019

Я написал программу, которая оценивает, является ли входная строка палиндромом.Частью этого является цикл for (код A), который использует функцию range () для нацеливания строковых символов в переменную «a» и создания новой строки «b», которая перевернута «a».У меня есть цикл for, работающий нормально в коде A, но моя первоначальная версия (код B) не удалась.Любые идеи, почему никакая переменная не выводится для переменной 'b' в коде B?Это потому, что я даю функции range () стоп-значение, которого она никогда не достигнет, если она использует значение шага по умолчанию +1?Спасибо!

Код A - это работает:)

def Code_A(a):
    b=''
    for i in range (len (a)-1,-1,-1):
        b+=a[i]
    return b

print 'Code A Output: '+ Code_A('abcdefg')

Код B - это не работает: (

def Code_B(a):
    b=''
    for i in range (len (a)-1,-1):
        b+=a[i]
    return b

print 'Code B Output: '+ Code_B('abcdefg')

Вывод

Code A Output: gfedcba
Code B Output:

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Простой способ проверить, является ли строка палиндромом, состоит в том, чтобы проверить строку по ее инверсии следующим образом:

def is_palindrome(s):
    return s == s[::-1]

Мы бы получили:

is_palindrome('kayak') # True

is_palindrome('city') # False

примечание: он не дает прямого ответа на вопрос, но предлагает точное решение проблемы палиндрома

0 голосов
/ 14 апреля 2019

Ну, конечно, это не работает.

Для случая, когда stop > start, range будет пустым, если step < 0, и неопределенным, если step == 0, поскольку вы не можете получить от start до stop, добавив кратное step.

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