Сделайте две петли в то время как одна петля - PullRequest
0 голосов
/ 03 октября 2018

У меня есть два цикла while, которые почти идентичны, за исключением нескольких чисел, которые изменились.Я искал вокруг, но я не могу найти решение моей проблемы.Любая помощь будет оценена.Я хочу сделать два цикла while одним циклом, но я не знаю как.Я искал ответ, но, кажется, ничто не относится к моей проблеме.

while True:
    print("User 1")
    login=input("Do you have an account? (yes/no) ")
    loggedin=False
    if login.lower()=="yes":
        login1=open("login.csv")
        reader = csv.reader(login1)
        username1=input("What is your username: ")
        password1=input("What is your password: ")
        for row in reader:
            if row[0]==username1:
                if row[1]==password1:
                    print("Welcome " + username1)
                    loggedin=True
                    break
        if loggedin==False:
            print("Invalid username or password. Please try again.")
            continue

    elif login.lower()=="no":
        print(" ")
        print("Make an account.")
        print(" ")
        username1=input("What is your username: ")
        password1=input("What is your password: ")
        break

    else:
        print("Invalid input.")
        continue

Единственное, что изменилось, это то, что число 1 изменилось на число 2 (за исключением строки [1]) Опять же, любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

От вас говорят, что единственное отличие - 1 становится 2. Я предполагаю, что вы просто пытаетесь снова запустить цикл для второго пользователя, возможно, здесь словарь, тогда вы могли бы просто повторить цикл, который вы уже создали для каждого пользователя.в этом диктанте вам придется подправлять свои циклы, я не могу их запустить, но идея формата будет примерно такой:

while True:
    users = {'User 1': [username1, password1], 'User 2': [username2, password2]}
    for k in users:
        print('{}'.format(k))
        login=input("Do you have an account? (yes/no) ")
        loggedin=False
        if login.lower()=="yes":
            login1=open("login.csv")
            reader = csv.reader(login1)
            users[k][0]=input("What is your username: ")
            users[k][1]=input("What is your password: ")
            for row in reader:
                if row[0]==users[k][0]:
                    if row[1]==users[k][1]:
                        print("Welcome " + users[k][0])
                        loggedin=True
                        break
            if loggedin==False:
                print("Invalid username or password. Please try again.")
                continue

        elif login.lower()=="no":
            print(" ")
            print("Make an account.")
            print(" ")
            users[k][0]=input("What is your username: ")
            users[k][1]=input("What is your password: ")
            break

        else:
            print("Invalid input.")
            continue
0 голосов
/ 03 октября 2018

Предполагая, что ваши циклы while находятся в перечисленных вами функциях, это самый простой способ, о котором я могу думать.

from threading import Thread
    t1 = Thread(target = firstFunction)
    t2 = Thread(target = secondFunction)
    t1.start()
    t2.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...