Я начинаю Python... Я хотел бы форматировать символы на Python, используя основные понятия и операции Tuples и Lists, как показано ниже...
номер = 1234567890
Ожидаемый результат -
число = XXXXXX7890
Пароль: pa55w0rd
Ожидание вывода при вводе пароля как -
пароль: ********
ИЛИ ЖЕ
пароль: ########
Всегда лучше использовать встроенные модули для таких вещей, как пароль. Один из способов сделать следующее:
import getpass
number = 1234567890
first = 'X' * max(0,len(str(number)[:-4]))
last = str(number)[-4:]
n = first + last
print(n)
# part 2
p = getpass.getpass(prompt='Enter the number : ')
if int(p) == 123:
print('Welcome..!!!')
else:
print('Please enter correct number..!!!')
Если вы не хотите отображать введенный пароль только для печати:
print('######')
Это не должно быть такой же длины, что вам просто нужно что-то напечатать.
Разбейте то, что нужно: вам нужно преобразовать в строку, чтобы выяснить, сколько символов заменить, сгенерировать заменяющую строку этой длины, а затем включить хвост исходной строки. Также вам нужно быть надежным против, например, строк слишком коротким, чтобы заменить любые символы.
'X' * max(0, len(str(number)) - 4) + str(number)[-4:]
Для второй части: используйте библиотеку.
Выполнение этого непосредственно более сложно, чем может показаться новичку, потому что вам нужно общаться с системами, которые вводят текст. Он будет зависеть от операционной системы, Windows - "примерно все остальное". Для ввода текста вне веб-браузера или графического интерфейса большинство систем имитируют древние текстовые терминальные устройства, потому что еще нет причин для его изменения. Эти устройства имеют режимы ввода текста (характер за раз, строка за раз, raw и т.д.) И меняют их, чтобы не сразу "эхо" вводимый символ включал некоторые сложные системные вызовы, а затем другое программирование, чтобы вместо этого повторять другой символ,
Таким образом, вы захотите использовать библиотеку, чтобы заботиться обо всех этих сложных деталях для вас. Что-то вроде ввода пароля. Учитывая последствия для безопасности, использование проверенного и усиленного кода вместо того, чтобы сворачивать ваши собственные, я настоятельно рекомендую. Имейте в виду, что есть всевозможные проблемы, связанные с обработкой паролей (постоянное сравнение времени, обработка памяти и т.д.), Чтобы как можно больше вы вообще не делали этого или переводили его в другую программу, а когда вы обрабатываете он использует существующие библиотеки.
Если вы можете, придерживайтесь стандартной библиотеки Python и используйте getpass, который не будет эхом ничего для паролей, а не печатать звезды.
Если вы действительно хотите звезды, затем выполните поиск https://pypi.org/ для получения и просмотрите все варианты, которые люди произвели. Большинство из тех, что я видел в быстром взгляде, не внушали уверенности; pysectools казались лучше других, но я не использовал его.