UUAU114 2023-10-26 20:30 采纳率: 0%
浏览 5

python函数问题

#python小组作业 写好了代码但有部分看不懂 求教

# 1.登录页面的图案设计
import os
import sys
import numpy as np

import matplotlib.pyplot as plt

def ShowUI():
    for i in range(1, 11):
        for j in range(1, 7 - i):
            print(' ', end=' ')
        for k in range(1, 2 * i):
            print('*', end=' ')
        print()

        for m in range(5, 20 - i):
            print(' ', end=' ')

    # 打印房顶
    for i in range(6):
        for o in range(1, 6):
            print('*', end=' ')
        for k in range(1, 7):
            print(' ', end=' ')
        for j in range(8):
            print('*', end=' ')
        i += 1
        print('*')

        for m in range(15, 25):
            print(' ', end='')
    # 打印房屋(矩形)

    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    print("         《          景点管理系统                  》")
    print("         《                                       》")
    print("         《         1-显示景点信息                 》")
    print("         《         2-添加景点信息                 》")
    print("         《         3-删除景点信息                 》")
    print("         《         4-修改景点信息                 》")
    print("         《         5-景点图片展示                 》")
    print("         《         6-退出系统                    》")
    print("          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    # 读取文件信息
    areaInfo = readFile()

    # 2.用户点击进入窗口
    while True:
        # answer = eval(input("请选择您的操作:"))
        answer = input("请选择您的操作:")
        if answer == '1':
            ShowAreaInfo(areaInfo)
        # 添加景点信息
        elif answer == '2':
            areaInfo = AddAreaInfo(areaInfo)
        # 删除景点信息
        elif answer == '3':
            areaInfo = DelAreaInfo(areaInfo)
        # 修改景点信息
        elif answer == '4':
            areaInfo = ModiAreaInfo(areaInfo)
        # 景点图片展示
        elif answer == '5':
            ShoeAreaPic()
        # 退出系统
        elif answer == '6':
            sys.exit()
        else:
            print('输入无效!')


def readFile():
    file = r"景点信息.csv"
    areas = []
    areaInfo = {}
    with open(file, mode='r', encoding='utf8') as f:
        lines = f.readlines()
    f.close()
    for content in lines:
        info = content.strip().split(',')
        areas.append(info)
        areaInfo[info[0]] = [info[1], info[2]]
    return areaInfo


# 保存文件
def SaveFile(result):
    if not result: return
    content = ''
    for k, v in result.items():
        content += '{},{},{}\n'.format(k, v[0], v[1])
    file = r"景点信息.csv"
    with open(file, mode='w', encoding='utf8') as f:
        f.write(content)
    f.close()


def ShowAreaInfo(result):
    for k, v in result.items():
        print('{}\t{}\t{}'.format(k, v[0], v[1]))


# 添加景点信息
def AddAreaInfo(areaInfo):
    print('{}添加景点信息{}'.format('=' * 10, '=' * 10))
    answer = input("请分别输入编号、名称、城市,以中文逗号间隔:")
    info = answer.split(',')
    if len(info) < 3:
        print('景点信息输入有误,添加景点失败!')
        return areaInfo
    if info[0] in areaInfo.keys():
        print('景点编号已存在,添加景点失败!')
        return areaInfo
    areaInfo[info[0]] = [info[1], info[2]]
    SaveFile(areaInfo)
    return areaInfo


# 删除景点信息
def DelAreaInfo(areaInfo):
    print('{}删除景点信息{}'.format('=' * 10, '=' * 10))
    ID = input('请输入景点ID:')
    if ID in areaInfo.keys():
        areaInfo.pop(ID)
        SaveFile(areaInfo)
        print('删除景点信息成功!!!')
    else:
        print('景点编号不存在,删除景点失败!')
    return areaInfo


# 修改景点信息
def ModiAreaInfo(areaInfo):
    print('{}修改景点信息{}'.format('=' * 10, '=' * 10))
    ID = input('请输入景点ID:')
    if ID in areaInfo.keys:
        answer = input("请分别输入景点名称、城市,以中文逗号间隔:")
        info = answer.split(',')
        if len(info) < 2:
            print('景点信息输入有误,修改景点信息失败!')
            return areaInfo
        areaInfo[ID] = [info[0], info[1]]
    SaveFile(areaInfo)
    return areaInfo


# 景点图片展示
def ShoeAreaPic():
    k=' ' * 7
    print(k+' '*20+'<>')
    print(k+' '*20+'¦¦')
    print(k+' '*18+'¦¦'*3)
    print(k+' '*15+'¦¦'*6)
    print(k+' '*7+'¦'+'_'*4+'¦¦'*9+'_'*4+'¦')
    print(k+' '*5+'='*32)
    print(k+' '*7+'¦¦'+' '*24+'¦¦')
    print(k+' '*7+'¦¦'+' '*6+'¦'+' '*4+'¦'+' '*4+'¦'+' '*7+'¦¦')
    print(k+' '*7+'¦¦'+' '*6+'¦'+' '*4+'¦'+' '*4+'¦'+' '*7+'¦¦')
    print(k+' '*7+'¦¦'+' '*6+'ˉ'*11+' '*7+'¦¦')
    print(k+' '*7+'¦¦'+' '*24+'¦¦')
    print(k+' '*7+'¦¦'+' '*24+'¦¦')
    print('='*56)

    path='./img/'
    # files=os.listdir('./img/')
    flag=True
    areaPicPaths={}
    num=1
    for root, dirs, files in os.walk(path):
        area=root.split('/')[-1]
        if area:
            # areaPicPaths[num]={area:[os.path.join(root,p) for p in files]}
            areaPicPaths[num]={area:[root+'/'+p for p in files]}
            # print(root, dirs, files)
            num+=1
        else:
            continue
    print(k+' '*16,'杭州八景')
    for i,v in areaPicPaths.items():
        print('{}{}-{}'.format(k+' '*16,i,list(v.keys())[0]))
    print('{}{}-{}'.format(k+' '*16,num,'返回主界面'))
    print('='*56)
    while True:
        answer=eval(input("请选择您的操作:"))
        if answer in areaPicPaths:
            ShowPic(list(areaPicPaths[answer].values())[0])
        elif answer==num:
            break
        else:
            print('输入无效!')
    ShowUI()

def ShowPic(imgs):
    fig = plt.figure(figsize=(12, 4),)
    # matplotlib.use('Qt5Agg')
    plt.style.use('_mpl-gallery')
    num=len(imgs)
    num_row=num//2 if num>1 else 1
    for i in range(num):
        img = plt.imread(imgs[i])
        plt.subplot(num_row, 2, i + 1)
        plt.imshow(img)
        plt.xticks([])
        plt.yticks([])
    plt.show()
if __name__ == '__main__':
    ShowUI()


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-26 23:41
    关注

    【以下回答由 GPT 生成】

    这段代码实现了一个登录页面的图案设计和一个景点管理系统的菜单。下面是对代码中不同部分的注释和解释:

    import os
    import sys
    import numpy as np
    import matplotlib.pyplot as plt
    

    这些是导入需要使用的模块。

    def ShowUI():
    

    定义了一个名为ShowUI的函数。

    for i in range(1, 11):
        for j in range(1, 7 - i):
            print(' ', end='')
        for k in range(1, 2 * i):
            print('*', end=' ')
        print()
    
        for m in range(5, 20 - i):
            print(' ', end='')
    

    这部分代码打印出了登录页面的图案,它使用了嵌套循环来控制每行的输出。

    # 打印房顶
    for i in range(6):
        for o in range(1, 6):
            print('*', end=' ')
        for k in range(1, 7):
            print(' ', end=' ')
        for j in range(8):
            print('*', end=' ')
        i += 1
        print('*')
    
        for m in range(15, 25):
            print(' ', end='')
    
    # 打印房屋(矩形)
    

    这部分代码打印出了登录页面的房顶部分,也是使用嵌套循环来控制每行的输出。

    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    print("         《          景点管理系统                  》")
    print("         《                                       》")
    print("         《         1-显示景点信息                 》")
    print("         《         2-添加景点信息                 》")
    print("         《         3-删除景点信息                 》")
    print("         《         4-修改景点信息                 》")
    print("         《         5-景点图片展示                 》")
    print("         《         
    

    这部分代码打印出了景点管理系统的菜单,显示了不同的选项供用户选择。

    ShowUI()
    

    这行代码是调用ShowUI函数,用来显示登录页面的图案和景点管理系统的菜单。

    希望以上的解释对您有帮助。如果有任何进一步的问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月26日