Есть ли какая-либо причина, по которой этот код не будет работать в начале какого-либо кода на Python?

#python

#python

Вопрос:

Этот код находится в начале, и когда я запускаю код, он ничего не делает и ничего не отображается, пожалуйста, помогите?

 users = {}
status = ""

def register():
    username = input("Please input the first 2 letters of your first name and your birth year ")
    password = input("Please input your desired password ")
    file = open("accountfile.txt","a")  
    file.write(username)   
    file.write(" ")
    file.write(password)
    file.write("n")
    file.close()
    if login():
        print("You are now logged in...")
    else:
        print("You aren't logged in!")

def login():
    username = input("Please enter your username")
    password = input("Please enter your password")  
    for line in open("accountfile.txt","r").readlines(): 
        login_info = line.split() 
        if username == login_info[0] and password == login_info[1]:
            print("Correct credentials!")
            return True
    print("Incorrect credentials.")
    return False
  

Я ожидаю, что результатом будет система входа в систему, которая затем приведет к тестированию, но когда я запускаю ее, все, что я получаю, это пустое пространство

Комментарии:

1. Вы не вызываете какую-либо функцию. Если только вы не делитесь всем своим кодом.

Ответ №1:

Все, что вы делаете, это создаете пару переменных и объявляете некоторые функции.

Ни одна из этих вещей не приведет к какому-либо выводу. Если вы хотите, чтобы функции выполнялись, вам действительно нужно будет вызывать их откуда-нибудь, например, поставив register() или login() (без отступа) после определений функций.

Ответ №2:

Вы определили функции, но не вызвали ни одну из них, вы должны вызвать одну или обе в конце вашего скрипта, например :

 def login():
    username = input("Please enter your username")
    password = input("Please enter your password")
    for line in open("accountfile.txt","r").readlines(): 
        login_info = line.split() 
        if username == login_info[0] and password == login_info[1]:
            print("Correct credentials!")
            return True
    print("Incorrect credentials.")
    return False

login()
  

Комментарии:

1. Хххххххх это не имеет значения, я просто показываю ему, что проблема в том, что он не вызывает функцию: p

2. Читаемость имеет совсем небольшое значение. Вы здесь пишете код не для себя.

3. Изменение input на raw_input — это неправильная вещь, которую нужно делать, если это выполняется под Python 3 (что вы должны все чаще предполагать, если не указано иное).