Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
3 / 3 / 0
Регистрация: 17.09.2019
Сообщений: 47

После проверки if else не работает код дальше

30.10.2019, 16:04. Показов 6836. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! сделал такую небольшую программу, проверка ПИН-кода проходит гладко если вводишь числа с первого раза правильно (4 числа, и потом повтор ввода 4 числа), но когда введёшь к примеру 3 числа он запросит снова, введёшь правильно, то дальше не идёт, там пишет:
Traceback (most recent call last):
File "test.py", line 22, in <module>
pin_code = int(pin_code)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'


а если я делаю убираю int(pin_code) то код идёт дальше, но не происходит проверки потому что int никогда будет равен str и в итоге проверка пин-кода завершается - quit('Заблокировано') - даже если вводишь правильно.
Не понимаю, не могу разобраться кто шарит может поймёт в чём тут проблема? Видимо я чего-то не доглядел или не вижу паходу простое решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
print('*PIN-code system, created by Maxim Myamishev*')
 
while True:
    def inpCode():
        try:
            inp_code = str(int(input('Придумайте ПИН-код (не более 4 цифр): ')))
            if len(inp_code) > 4:
                print('Введено больше 4 цифр')
                inpCode()
            elif len(inp_code) < 4:
                print('Введено меньше 4 цифр')
                inpCode()
            elif len(inp_code) == 4:
                chek_code = str(int(input('Повторите ваш PIN-код для сохранения: ')))
                if chek_code == inp_code:
                    return inp_code
        except ValueError:
            inpCode()
 
    inter_code = inpCode()
    pin_code = inter_code
    pin_code = int(pin_code)
 
    number_taken = 0
    sttr_chek = 0
 
    while number_taken in range(3):
        print('\nВведите свой PIN-код: ')
        taken = 3
        print('Осталось попыток - ' + str(taken - number_taken))
        sttr_chek = int(input())
        number_taken = number_taken + 1
        if sttr_chek == pin_code:
            print('PIN-код принят \n')
            break
        elif sttr_chek != pin_code:
            if number_taken == 3:
                quit('Заблокировано')
            else:
                print('Не верно повторите ввод')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2019, 16:04
Ответы с готовыми решениями:

После первого if не идёт дальше код
#define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include&lt;math.h&gt; int main(void) { double x, y; double a=2.0, b =3.0 ; ...

Выполнить PHP код после нажатия на кнопку, но, после проверки на регулярку
Здравствуйте. Срочно нужна ваша помощь! Заранее спасибо. Делаю страницу отправки кодов, но не могу сделать правильно и вообще не знаю...

Не работает код, застряет и дальше не идёт, ошибок не выбивает
try IdFtp1.ChangeDir('/users/'+login+'/'); except on E: EIdProtocolReplyError do begin if E.ReplyErrorCode = 550 then ...

20
3 / 3 / 0
Регистрация: 17.09.2019
Сообщений: 47
09.11.2019, 00:31  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
чуть подправил.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
print('*PIN-code system, created by Maxim Myamishev*')
def inpCode():
    while True:
        inp_code = input('Придумайте ПИН-код ( 4 цифры): ')
        if len(inp_code) != 4:
            print('Введено неверное количество цифр')
        else:
            if  inp_code == input('Повторите ваш PIN-код для сохранения: '):
                print('OK\n')
                return inp_code
            else:
                print(' не совпали! повторите ввод')
inter_code = inpCode() # создаем пин код
taken = 3 
while taken:
if inter_code == input('Введите свой PIN-код: '):
        print('PIN-код принят \n')
        break
    else:
        print('Не верно повторите ввод')
        taken -= 1
        if  taken:
            print('Осталось попыток -', taken)
        else:
            quit('Заблокировано'
О благодарствую, так конечно лучше! Я ещё не такой опытный
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2019, 00:31

После вызова функции возвращается назад не выполняя код дальше
В обработчике WM_PAINT пишу текст, нужно написать конкретный текст исходя из текущего значения переменной bool CurrentWsSTatus =...

После проверки на isset не подкгружает код
Не могу понять почему после проверки переменной $_REQUEST на isset, сайт не подгружает код... pod-life.ru Когда заходим первый раз на...

После проверки js выполнить php код
Помогите пожалуйста разобраться. Есть функция которая отправляет форму и выводит финальное success сообщение о том, что данные...

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

Не работает код проверки логина и пароля
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; #include &lt;cstring&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru