новичок ужасно застрял на том, что, скорее всего, простой вопрос

#python-3.x

#python-3.x

Вопрос:

Блок-схема

Попытка создать генератор паролей

Не удается заставить оператор if работать правильно или знать, действительно ли это правильный способ решения проблемы. Мне нужно, чтобы он делил каждое представление числа букв на 3 и возвращал #, если это целое число.

 password = input("password: ")
password = password.lower()
output = []
for character in password:
  number = ord(character) - 96
  output.append(number)

x = output
if x / 3:
  print ("#")

  print (output)
  

Я получаю эту ошибку:
Ошибка типа: можно только объединить list (не «int») в list

Комментарии:

1. добро пожаловать в сообщество. во-первых, не говорите, что вам нужна помощь с заданием, потому что это не сообщество помощи домашним заданиям. не говорите спасибо и все такое. не требуется. Наконец, на данный момент вопрос плохо сформулирован. попробуйте посмотреть на другие вопросы и учиться. поместите соответствующие блоки кода или полный код и убедитесь, что у вас есть ошибка или неожиданный вывод, который сделает вопрос сфокусированным. прямо сейчас это просто плохо написанный вопрос.

2. вместо того, чтобы задавать ошибку всей программы, вы можете сначала попытаться решить исключение. Для математических задач попробуйте нарисовать график, чтобы сделать логику понятной.

3. пожалуйста, исправьте отступ

4. x — это список. Вы пытаетесь разделить список на 3. Что вы планируете делать? Планируете ли вы разделить [1,2,3] / 3 ?

5. Что вы ожидаете сделать x / 3 ?

Ответ №1:

Я не знаю, что вы пытаетесь сделать с кратным на 3. Чтобы вы начали, вот пример кода. Посмотрите, поможет ли это вам начать работу в правильном направлении.

 password = input('enter password :').lower()
output = []
for c in password:
    num = ord(c) - 96
    output.append(num)

all_div_by_3 = True
for i in output:
    if i%3 != 0:  #checks if remainder of i/3 is zero. if zero, then divisible, else not divisible.
        all_div_by_3 = False
        break

if all_div_by_3: #is same as if all_div_by_3 == True:
    print ('all divisible by 3')
else:
    print ('all characters are not divisible by 3')
  

Вывод из этого следующий:

 enter password :cliff
all divisible by 3

enter password :rock
all characters are not divisible by 3
  

Ответ №2:

После долгих чтений и исследований здесь стало очевидно, что мне нужно использовать функции if, elif и else . ниже приведен завершенный проект.

 password = input("password: ") 
password = password.lower()
output = []
for character in password:
 number = ord(character) - 96
 output.append(number)
for i in output:
 if(i% 3 == 0) :
  print('#', end ="")
 elif(i% 5 == 0) :
  print('%', end ="") 
 else:
  print(chr(i 98), end="")