Проблема с if конструкцией
def easy(utext):
convert_to_list = list(utext)
print(convert_to_list)
lenght = len(convert_to_list)
s = abc[::-1]
for i in convert_to_list:
a = 0
if convert_to_list[:a] == abc[:a]:
new_generate_pass = []
#s = abc[::-1]
new_generate_pass.append(s[a])
print (new_generate_pass)
a = a + 1
utext = input("Введите ваше слово: ")
Вообщем такая проблема, по задумке когда попадаем в if два списка должны сравнивать свои значения по индексам и если есть одинаковые буквы "а" (к примеру) то должен выполняться код ниже. Но независимо есть совпадения букв или нет он выполняет все что описанно в if
Ответы (1 шт):
этот код
a = 0
if convert_to_list[:a] == abc[:a]
означает
if convert_to_list[:0] == abc[:0]
а list[:0] - это список нулевого размера (срез с 0 элемента до 0 элемента НЕ ВКЛЮЧИТЕЛЬНО)
вы ВСЕГДА (a перед проверкой устанавливается в 0) проверяете срезы двух списков, размер которых 0 - конечно же они всегда равны
подозреваю, что ваш код должен был выглядеть так:
a = 0
for i in convert_to_list:
if convert_to_list[a] == abc[a]:
new_generate_pass = []
#s = abc[::-1]
new_generate_pass.append(s[a])
print (new_generate_pass)
a = a + 1
да и тут есть вопрос к тому, что происходит внутри if:
вы создаете новый список new_generate_pass, заносите в него один элемент s[a] и выводите это на экран
т.е. из-за того, что внутри if вы создаете список, то вы его в принципе никогда больше чем на 1 элемент и не накопите :)