Вывод значений функций по определенному порядку

задача состояла в том, чтобы проанализировать анкеты (applications), где надо - убрать пробел и понять, какие анкеты невалидные, если, например, нет данных. Программа работает, пишет False, если в анкете отсутствует значение. Но! Она должна выводить имя, телефон и город по порядку, как это изначально записано в анкете, а она выводит сначала все имена, потом телефоны, потом город из-за range. Как сделать так, чтобы значения выводились по порядку?

def check_name(applications):
        for i in range(0, 5):
            tmp = applications[i]
            tmp1 = tmp.split(",")
            if " " in tmp1[0]:
                tmp.replace(" ", "")
                print(tmp1[0].lower())
            elif len(tmp1[0]) <= 5:
                print(tmp1[0].lower(), "-", not tmp1[0])
            else:
                print(tmp1[0].lower())
        return 0
    def check_phone(applications):
        for i in range(0, 5):
            tmp = applications[i]
            tmp1 = tmp.split(",")
            tmp2 = tmp1[1]
            if len(tmp1[1]) == 16:
                print(tmp1[1])
            elif " " in tmp1[1] and len(tmp1[1]) > 16:
                tmp1[1].replace(" ", "")
                print(tmp1[1])
            elif len(tmp1[1]) < 16 or tmp2[7] != 7 or tmp2[7] != 8:
                print(tmp1[1], "-", not tmp1[1])
        return 0
    def check_city(applications):
        for i in range(0, 5):
            tmp = applications[i]
            tmp1 = tmp.split(",")
            if " " in tmp1[2] or len(tmp1[2]) > 5:
                tmp1[2].replace(" ", "")
                print(tmp1[2].lower())
            elif len(tmp1[2]) <= 5:
                print(tmp1[2].lower(), "-", not tmp1[2])
        return 0
    def main():
        applications = ["name=Аня,phone=8800234 ,city=москва", "name=КОЛЯ,phone=8800900871 ,city=МОСКВА", "name=Валентина,phone=7950900871 ,city=волгоград", "name=,phone=8999901871,city=москва", "name=Иван,phone=7999901871,city=москва", "name=Инга,phone=,city=москва"]
        print(check_name(applications), check_phone(applications), check_city(applications))
        return 0
    if 5 > 0:
        main()

Ответы (2 шт):

Автор решения: CrazyElf

Структура программы должна быть другой:

for app in applications:
   name, phone, city = split_fields(app)
   print(check_name(name), check_phone(phone), check_city(city))

Функции, соответственно, не должны ничего перебирать, они должны работать только с одним конкретным значением поля.

А если идти дальше, то хорошо бы вообще класс сделать, который принимает на вход запись с анкетой и дальше внутри себя уже вызывает свои методы для работы с этой анкетой.

for app in applications:
   application = Application(app)
   print(application.check_fields())
→ Ссылка
Автор решения: hidwidwi

Не в этом месте нужно было цикл делать!

def check_name(applications):
    tmp1 = applications.split(",")
    if " " in tmp1[0]:
        tmp1.replace(" ", "")
        print(tmp1[0].lower(), ",", end=" ")
    elif len(tmp1[0]) <= 5:
        print(tmp1[0].lower(), "-", not tmp1[0], ",", end=" ")
    else:
        print(tmp1[0].lower(), ",", end=" ")
    return 0
def check_phone(applications):
    tmp1 = applications.split(",")
    tmp2 = tmp1[1]
    if len(tmp1[1]) == 16:
        print(tmp1[1], ",",  end=" ")
    elif " " in tmp1[1] and len(tmp1[1]) > 16:
        tmp1[1].replace(" ", "")
        print(tmp1[1], ",", end=" ")
    elif len(tmp1[1]) < 16 or tmp2[7] != 7 or tmp2[7] != 8:
        print(tmp1[1], "-", not tmp1[1], ",", end=" ")
    return 0
def check_city(applications):
    tmp1 = applications.split(",")
    if " " in tmp1[2] or len(tmp1[2]) > 5:
        tmp1[2].replace(" ", "")
        print(tmp1[2].lower())
    elif len(tmp1[2]) <= 5:
        print(tmp1[2].lower(), "-", not tmp1[2])
    return 0
def main():
    applications1 = ["name=Аня,phone=8800234 ,city=москва", "name=КОЛЯ,phone=8800900871 ,city=МОСКВА", "name=Валентина,phone=7950900871 ,city=волгоград", "name=,phone=8999901871,city=москва", "name=Иван,phone=7999901871,city=москва", "name=Инга,phone=,city=москва"]
    for i in range(len(applications1)):
        applications = applications1[i]
        print(check_name(applications), check_phone(applications), check_city(applications))
if __name__ == "__main__":
    main()
→ Ссылка