Написать программу ** Python. Программа будет регистрировать пользователя. Сначала...

+197 голосов
2.6m просмотров

Написать программу на Python. Программа будет регистрировать пользователя. Сначала выводиться строка "Ваше имя" (если имя содержит знаки (базовые - комма, слеш, знаки вопроса т.д.), то программа сообщает об ошибке и просит повторить снова. Дальше - "Ваш ник" (так же, как из именем - знаки запрещены некоторые). Дальше - "Придумайте пароль" (пароль должен состоять из 5+ символов, если меньше - ошибка и повторить). И дальше строка "Вы зарегестрированы".


Информатика (1.8k баллов) | 2.6m просмотров
Дан 1 ответ
+148 голосов

Вы уж меня простите, если длинновато получилось... Но главное же, что работает, не правда ли?

:)

Там скриншот прикрепил с выводом компилятора (один раз даже специально ошибся, чтобы можно было увидеть реакцию на неправильный ввод).

(Кстати, уже добавил текстовый файл с кодом. Просто копируйте весь текст и вставляйте куда нужно будет. Табуляция сработает автоматически):

forbidden_chars = '!"#$%&()*+,-./:;<=>?@[\]^_`{|}~'

#real_name

real_name = str(input("Your real name: "))

for chars in range(len(forbidden_chars)):

   if (forbidden_chars[chars] in real_name):

       rn = False

       break

   else:

       rn = True

while (rn == False):

   real_name = str(input("Line has forbidden chars. Try to write real name again: "))

   for chars in range(len(forbidden_chars)):

       if (forbidden_chars[chars] in real_name):

           rn = False

           break

       else:

           rn = True

#nick_name

nick_name = str(input("Your nick name: "))

for chars in range(len(forbidden_chars)):

   if (forbidden_chars[chars] in nick_name):

       nn = False

       break

   else:

       nn = True

while (nn == False):

   nick_name = str(input("Line has forbidden chars. Try to write nick name again: "))

   for chars in range(len(forbidden_chars)):

       if (forbidden_chars[chars] in nick_name):

           nn = False

           break

       else:

           nn = True

#password

password = str(input("Your password: "))

for chars in range(len(forbidden_chars)):

   if ((forbidden_chars[chars] in password) or (len(password) < 5)):

       ps = False

       break

   else:

       ps = True

while ((ps == False) or (len(password) < 5)):

   password = str(input("Line has forbidden chars or it is too short. Try to write password again: "))

   for chars in range(len(forbidden_chars)):

       if (forbidden_chars[chars] in password):

           ps = False

           break

       else:

           ps = True

#well_done

print("--------Well done!!!--------")

print("Your inputs:")

print("Real name: ",real_name)

print("Nick name: ",nick_name)

print("Password: ****",password[4:len(password)])

(474 баллов)
+71

Спасибо за совет. Постараюсь в будущем им пользоваться

+165

Ваш код можно сократить в 2 раза как минимум. Так же, вместо ручного выписывания всех знаков пунктуации, их можно просто получить из модуля string:
import string
string.punctuation -> '!"#$%&'()*+, -./:;<=>?@[\]^_`{|}~'

+65

Вы когда нибудь слышали о пользовательских функциях?

+117

Поменяйте последнюю строчку на следующую:
print("Password: ","*"*(len(password)))

+165

Могу Вам оформить