Python

Помогите с задачей по Python. Одно задание осталось, что-то не получается.

Напишите программу, которая запрашивает у пользователя пароль до тех пор, пока он не введёт надежный пароль. Используется латиница.
Пример:
Придумайте пароль: qwerty
Пароль ненадёжный. Попробуйте ещё раз.
Придумайте пароль: qwerty12
Пароль ненадёжный. Попробуйте ещё раз.
Придумайте пароль: qWErty123
Это надёжный пароль!
VE
V Ertu
56
Руслан Гужва
Руслан Гужва
93 671
Лучший ответ
Руслан Гужва Уберем лишнее

Руслан Гужва Счетчик не нужен

Что ты имеешь под "Надежный пароль"? Что там должно быть?
V Ertu При регистрации на сайте помимо логина нужно ещё придумать надёжный пароль. Этот пароль должен состоять минимум из восьми символов, в нём должна быть хотя бы одна большая буква и хотя бы три цифры. Тогда он будет считаться надёжным.
На Python проще простого
while (True):
pass = input()
for item in pass:
if pass.isdigit():
if pass.isalpha():
if pass.islower():
if pass.isupper():
break
break

Вывод сообщения о правильном или неправильном пароле сам реализуешь, это не сложно.
Слава Ефимов Мой код проверяет, есть ли заглавные, строчные буквы и цифры в строке пароля.
"Используется латиница."
У всех выше условие не выполнено. Задача реализована не верно.
Как вариант реализовать:
if sum(map(str.isupper, password)) >= 1 and sum(map(str.isdigit, password)) >= 3 and len(password) >= 8 and re.match(r'^[a-zA-Z0-9]+$', password):
print('Это надёжный пароль!')
break

В скилбоксе map позже изучается:
import re

while True:
_password = input('Придумайте пароль: ')
_up_count, dig_count = 0, 0

_for i in password:
__if i.isupper():
___up_count += 1
__if i.isdigit():
___dig_count += 1
_if len(password) >= 8 and up_count >= 1 and dig_count >= 3 and re.match(r'^[a-zA-Z0-9]+$', password):
__print('Это надёжный пароль!')
__break
_elif not re.match(r'^[a-zA-Z0-9]+$', password):
__print('Для ввода пароля используется латиница.')
_else:
__print('Пароль ненадёжный. Попробуйте ещё раз.')
password = input('Придумайте пароль: ')
pas_list = ''
upper = True
for i in password:
````if i.isdigit():
````````pas_list += i
````if i.isupper():
````````upper = False

if len(password) < 9 or upper or len(pas_list) < 3:
````print('Пароль ненадёжный. Попробуйте ещё раз.')
else:
````print('Это надёжный пароль!')
RK
Ravenol Kz
132
while True:
password = input('Придумайте пароль: ')
numbers = len([sym for sym in password if sym.isdigit()])
upper = len([letter for letter in password if letter.isupper()])
if upper and len(password) >= 8 and numbers >= 3:
print('Это надёжный пароль')
break
else:
print('Пароль ненадёжный. Попробуйте ещё раз.')
# 8 букв, 1 заглавная, 3 цифры
total = 0
while True:
password = input('Придумайте проль: ')
if len(password) >= 8:
for passw in password:
if passw in '0123456789':
total += 1
if passw.upper() in password:
total += 1
if total >= 4:
print('Пароль надёжный')
break
elif total < 4:
print("Пароль не надёжный ")
взял у @Bibi Bakala