• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите! Код написаный на Python! Почему в цикл идет код?

ERROR_404

New member
04.07.2019
3
0
BIT
0
Python:
import random
import time
import colored
from termcolor import colored

print(colored("Steam Security Software ©",'red'))
print(colored("-------------------------", 'red'))
print(colored("<<<<Добро пожаловать>>>>", 'red'))
Player = 'Player'
Watcher = 'Watcher'
vs = input(colored("Are you a <Watcher> or <Player>?\n", 'cyan'))

if vs == "Player":
    alc = input(colored("Alliance - ", 'cyan'))
    log = input(colored("Login -  ", 'cyan'))
    print(colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + ("Приветствую пользователь"))
    wait = input(colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + ("Нажми <Enter> , для продолжение"))
    print(colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + ("Началась установка необходимых протоколов"))
    print(colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + ("Установка протокола ApIP71"))
    for i in range(2):
        num = random.random()*1000
        print((num), colored("- Установка завершена", 'green')),
        time.sleep(10)
    users = {}
    status = ""
    def displayMenu():
        status = input((colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + "Вы зарегестрированый пользователь? yes/no?")) 
        if status == "yes":
            oldUser()
        elif status == "no":
            newUser()
    def newUser():
       createLogin = input(colored("Введите никнейм: ", 'cyan'))
       if createLogin in users:
           print(("Создание логина\n"), (colored("- Successful", 'green')))
       else:
           createPassw = input(colored("Введите пароль: ", 'cyan'))
           users[createLogin] = createPassw
            
    def oldUser():
        login = input(colored("Введите никнейм: ", 'cyan'))
        passw = input(colored("Введите пароль: ", 'cyan'))
        if login in users and users[login] == passw:
            print(colored("\nLogin successful!\n", 'green'))
        else:
            print(colored("\nПользователь не существует или ошибка пароля!\n", 'red'))
else:
    print(colored("You dead "+ str(log) + "!", 'red'))
    wait = input(colored("Нажмите кнопку продолжить", 'red'))
    for i in range(100):
        num = random.random()*1000000000000
        print((num), colored("- ERROR", 'red'))
        time.sleep(0.3)
    print(colored("Game Over ", 'red') + str(log))
    print(colored("YOU OFF", 'red'))

while status != "a":
    status = displayMenu()
 

f22

Codeby Academy
Gold Team
05.05.2019
1 834
225
BIT
962
почему в цикл идёт код

Если я правильно понял твой вопрос, то
Python:
while status != "a":
    status = displayMenu()

Пока статус не будет равен букве "а",
отображатьМеню.


По сути это бесконечный цикл, поскольку в переменную status
записывается результат функции displayMenu, но эта функция ничего не возвращает


Если нужно, чтобы была возможность входа из цикла,
можно, например, сделать так

Python:
def displayMenu():
    status = input((colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + "Вы зарегестрированый пользователь? yes/no/exit?"))
    if status == "yes":
        oldUser()
    elif status == "no":
        newUser()
    elif status == "exit":
        raise SystemExit
        # или добавь здесь вызов другого метода
 
Последнее редактирование:

ERROR_404

New member
04.07.2019
3
0
BIT
0
Спасибо, что подсказал, но такой вопрос я только скрипкиди можешь в двух словах сказать что он должен возращать?
 

f22

Codeby Academy
Gold Team
05.05.2019
1 834
225
BIT
962
Спасибо, что подсказал, но такой вопрос я только скрипкиди можешь в двух словах сказать что он должен возращать?
Не за что!)
Он не обязательно должен что-то возвращать.
Просто автор скрипта решил сделать этот цикл бесконечным
и выбрал именно такое решение.
 

ERROR_404

New member
04.07.2019
3
0
BIT
0
Как тогда сделать что бы статус начал быть равен букве а?
 
Последнее редактирование:

f22

Codeby Academy
Gold Team
05.05.2019
1 834
225
BIT
962
Как тогда сделать что бы статус начал быть равен букве а?

Python:
def displayMenu():
    status = input((colored("["+ str(alc)+ "]:["+ str(log)+ "]:", 'red') + "Вы зарегестрированый пользователь? yes/no/exit?"))
    if status == "yes":
        oldUser()
    elif status == "no":
        newUser()
    
    return "a"
В этом случае выполнение скрипта сразу будет завершаться после ответа да или нет.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!