Форум сайта python.su
0
появится вывод исключения:
Traceback (most recent call last): ... pyinputplus.RetryLimitException
Офлайн
0
не знаю, можно ли как-то от него избавиться, чтобы свой print указать вместо.
Офлайн
44
и вставьте ссылку на его url Офлайн
857
ffrr просто начал неправильно. Вместо того, чтобы сначала придумать программу, потом её полностью спроектировать и потом уже написать её код, он начал с самого последнего этапа и теперь не может нихрена сделать. Вот в этом вся проблема. Он допустил классическую ошибку новичка, который думает “чем быстрее я начну писать программу, тем быстрее я её напишу”.
Здесь писал, как спроектировать программу.
Здесь писал, как реализовать программу по её проекту.
Офлайн
0
Ну я согласен конечно же с py.user.next, что так надо по фэншую поступать, но когда нет хорошего базового фундамента python и есть возможность вообще хоть что-то написать только время от времени, то и сразу можно писать скрипт. Потом со временем с появлением больших знаний, можно его переписать оптимизировав IMHO.
Офлайн
857
ffrrИ тогда как раз ты и будешь его писать и переписывать, потому что в нём постоянно будет что-то отваливаться или работать не совсем так, как надо. Поэтому кажущееся изначально коротким время растянется на много раз.
и есть возможность вообще хоть что-то написать только время от времени, то и сразу можно писать скрипт
Офлайн
0
да, я полагаю ты прав. Вот напишу этот скрипт по старинке, а со следующего уже начну по твоей методике, с чувством, с толком, с расстановкой…
Офлайн
124
ffrrя тоже учусь,давай напишем твой скрипт вместе,а знающие поправят если что
Вот напишу этот скрипт по старинке
Офлайн
0
конечно, давай! я не против, вместе веселее))
Отредактировано ffrr (Окт. 30, 2020 11:33:48)
Офлайн
0
Переписал скрипт, добавив функции:
#!/usr/bin/env python3.8 import getpass import pymysql import hashlib import uuid import re import time import pyinputplus as pyip import os from uuid import getnode as mac test = 0 print("-------------------------") print("<<<<<<<<<Welcome>>>>>>>>>") print("-------------------------") print("Please enter a username (after 3 unlucky attempts system will reboot)") def user(): global username username = pyip.inputNum('Username (must be 12 numbers): ', min=111111111111, max=999999999999, limit=3) def pazz(): global password password = getpass.getpass(prompt="Enter secret password:") def maria(): global data global db db = pymysql.connect("hostname","user","pass","db") cursor = db.cursor() cursor.execute("SELECT userID, password from permissions") data = cursor.fetchone() maria() for i in range(3): test += 1 user() dbuser, dbpass = data if username == dbuser : pazz() if (hashlib.sha1(password.encode()).hexdigest() == dbpass): print(mac) print(dbuser) print("Authentication success") break else: print("Bad password") print(f"Left attempts=>{3-test}") # print('System will reboot now...') # time.sleep(3) # os.system("reboot") break else: print ("please try another username. This username is incorrect")
# ./auth.py ------------------------- <<<<<<<<<Welcome>>>>>>>>> ------------------------- Please enter a username (after 3 unlucky attempts system will reboot) Username (must be 12 numbers): 659605758502 please try another username. This username is incorrect Username (must be 12 numbers): 659605758502 please try another username. This username is incorrect Username (must be 12 numbers): 659605758502 please try another username. This username is incorrect
# ./auth.py ------------------------- <<<<<<<<<Welcome>>>>>>>>> ------------------------- Please enter a username (after 3 unlucky attempts system will reboot) Username (must be 12 numbers): 659605758501 Enter secret password: Bad password Left attempts=>2
Офлайн