关于#python#的问题,如何解决?

编写一个函数,可以循环要求用户输入姓名,判断该用户是否姓张,如果姓张则返还‘欢迎尊敬的张先生’这样的表述
如果不姓张,则只返还欢迎光临,并且提示用户按q退出系统。
最终将用户输入的用户名存储为一个列表,最终输入出该列表。


res = []
while True:
    name = input("请输入你的用户名, 或输入q退出系统")
    if name == "q":
        print(res)
        break

    res.append(name)
    if name[0] == "张":
        print("欢迎尊敬的张先生")
    else:
        print("欢迎光临")


def getname():
    names=[]
    while 1:
        name=input("请输入姓名: ")
        if len(name)<=0:
            continue
        if name[0]=='q':
            break
        if name[0]=='张' or name[0]=='張':
            print("欢迎尊敬的张先生")
        else:
            print("欢迎光临(按q退出系统)")
        if not name in names:
            names.append(name)
    print('用户名:')
    for i in names:
        print("-"+i)
    print('系统退出成功!')
    

def JudgeName():
    list = []
    while True:
        name = input('请输入姓氏:')
        if name == 'q':
            return print(list)
        elif name == '张': 
            print("欢迎尊敬的张先生")
        else:
            print("欢迎光临,按q退出")
        list.append(name)
        
JudgeName()

 
 

#coding:utf-8

def name():
    name_lists = []
    while True:
        na = input("请输入你的姓名(退出循环请键盘输入q):")
        if na != 'q':
            name_lists.append(na)
        if na[0] == "张" and na[0] != 'q':
            print("欢迎尊敬的张先生")
            continue
        elif na == 'q':
            print(name_lists)
            break
        else:
            print("欢迎光临")
            continue

name()
#coding:utf-8
a=input("请输入姓名(输入'q'退出)")
while True:
    if a=="q":
        exit()
    if a[0]=="张":
        print("欢迎尊敬的张先生")
    else:
        print("欢迎光临")