Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2023 20:48:00

Alduin
Зарегистрирован: 2023-01-10
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Найди слово

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



 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’

Отредактировано Alduin (Фев. 1, 2023 20:54:19)

Офлайн

#2 Фев. 1, 2023 21:21:00

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Найди слово

  
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]

Офлайн

#3 Фев. 1, 2023 21:34:06

Alduin
Зарегистрирован: 2023-01-10
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Найди слово

И если честно не моуг прочитать это
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

Офлайн

#4 Фев. 1, 2023 22:08:53

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Найди слово

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 ''

Офлайн

#5 Фев. 1, 2023 22:15:33

Alduin
Зарегистрирован: 2023-01-10
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Найди слово

Все сделал отмена

Офлайн

#6 Фев. 1, 2023 22:15:50

Alduin
Зарегистрирован: 2023-01-10
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Найди слово

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 ""

Офлайн

#7 Фев. 1, 2023 22:20:44

Alduin
Зарегистрирован: 2023-01-10
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Найди слово

step = reverse and -1 or 1
Можете это обььснить, и правильно ли читаю?
шаг = реверс и оно есть -1 (Тогда это ложь) или это 1 тогда это тру
Поправьте такое редко вижу

Отредактировано Alduin (Фев. 1, 2023 22:21:06)

Офлайн

#8 Фев. 1, 2023 22:39:37

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  122  -
Профиль   Отправить e-mail  

Найди слово

Alduin
Можете это обььснить, и правильно ли читаю?
это равносильно этой записи
  
step = -1 if reverse else 1

а вообще это логические выражения просто почитай про них и со временем поймешь
  
print(1 and 1)
print(1 and 0)
print(0 and 1)
print(0 or 1)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version