Найти - Пользователи
Полная версия: Найди слово
Начало » Python для новичков » Найди слово
1
Alduin
Нужна помощь!
Нужно найти слово согласно именно указанным аргументам функциям только так!!!
У меня выходит одна ошибку которую не знаю как решить



 def solve_riddle(riddle, word_length, start_letter, reverse=False):
    ind = riddle.index(start_letter)
    #print(riddle)
    #print(start_letter)
    #print(ind)
    #print(word_length)
    if reverse == False:
        print(reverse)
        print(riddle[ind:ind + word_length])
        return riddle[ind:ind + word_length]
    elif reverse == True: 
        # print(reverse)
        # print(riddle[ind:(word_length-ind):-1])
        return riddle[ind:(word_length-ind):-1]
    else: # если слово не найдено вернуть пустую строку
        return " "



Функция solve_riddle возвращает неверный результат: ‘re’. Ожидалось, что функция solve_riddle при получении параметра ('mi1powperet', 3, ‘r’, true) вернет следующую строку ‘rep’
xam1816
  
def solve_riddle(riddle, word_length, start_letter, reverse=False):
    step = reverse and -1 or 1
    i = riddle.index(start_letter)
    return riddle[i:i + word_length * step:step]
Alduin
И если честно не моуг прочитать это
step = reverse and -1 or 1


 def solve_riddle(riddle, word_length, start_letter, reverse=False):
    step = reverse and -1 or 1
    i = riddle.index(start_letter)
    return riddle[i:i + word_length * step:step]

Traceback (most recent call last):

File “”, line 3, in solve_riddle

ValueError: substring not found
xam1816
Alduin
ValueError: substring not found
это когда символа нет в строке ошибка вылазит
  
def solve_riddle(riddle, word_length, start_letter, reverse=False):
    step = reverse and -1 or 1
    i = start_letter in riddle and riddle.index(start_letter) or -1
    return i != -1 and riddle[i:i + word_length * step:step] or ''
Alduin
Все сделал отмена
Alduin
def solve_riddle(riddle, word_length, start_letter, reverse=False):
if start_letter in riddle:
return riddle[riddle.index(start_letter):riddle.index(start_letter) + word_length] if not reverse else riddle[riddle.rindex(start_letter) - word_length+1:riddle.rindex(start_letter)+1][::-1]
else:
return ""
Alduin
step = reverse and -1 or 1
Можете это обььснить, и правильно ли читаю?
шаг = реверс и оно есть -1 (Тогда это ложь) или это 1 тогда это тру
Поправьте такое редко вижу
xam1816
Alduin
Можете это обььснить, и правильно ли читаю?
это равносильно этой записи
  
step = -1 if reverse else 1

а вообще это логические выражения просто почитай про них и со временем поймешь
  
print(1 and 1)
print(1 and 0)
print(0 and 1)
print(0 or 1)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB