Python问答系统

Version: 1.0 Author: Richard Liang Start Date: 2026.03.23 Language: Python 3 Status: Completed

这是一个基于Python开发的命令行问答系统,支持用户输入问题并返回预设答案,同时附带ASCII艺术输出。

功能特点

技术栈

示例代码

# 定义问题和答案
questions = [
    {
        "question": "南京是一座怎样的城市?",
        "answer": "南京是中国四大古都之一,拥有 2500 多年的建城史和近 500 年的建都史,素有“六朝古都”之称。它不仅是中华文明的重要发源地之一,也是中国近代历史的见证者。南京以其丰富的历史文化遗产闻名,如中山陵、明孝陵、夫子庙等,每年吸引大量游客。同时,南京也是一座现代化的大都市,拥有发达的科技产业和教育资源。南京大学、东南大学等高校为城市输送了大量人才,推动了科技创新和经济发展。南京将古典韵味与现代活力完美结合,是一座兼具历史底蕴和现代气息的城市。",
        "ascii_art": r"""
:.:.:...::...:.............:.:...:.........:...............:....:....:.
::..:.:..:..:.:.:.:....:....:...:...........:........:.:.:.....:..:.:..
::.:.:.:...:.:.:......:....:.:.:...........:.:...:....:.:.:......:.:.:.
:.:.:.:.::..:.:.:.:.........:........:...............:.:.:....:.:.:.:..
::.....:..:..........................::................................
::...................................::................................
:.:.:.:.:...:.:........:.............:...............:.:.:......:.:.:..
.:.:.:.:.:::.:.:......:......:........:......:...:..:.:.:.:....:.:.:...
:.:.:.:.:...:..........:....:........:............:..:.:.:......:.:.:..
.:.:.:.:..::..:.:.....:......:........:...............:.:.:....:.:.:...
:.:.:.:.:....:.:.....:......:........:+.......:........:.:.:..:.:.:....
.:.:.:.:.:..:.:.:..........:.:.......%%...................:....:.:.....
:.:.:...:....:.:............:........@%............................:...
:...........:.:.....................-##-...............:............:..
::..................................+:%*...............................
...................................-+*%*+..............................
:...........:.:....................+=%=#%..............................
.:.:..:.:..:.:........:............=+--#*...............:.:....:.:.:...
:.:..:.:....:.:......:.:..........**+.#***...............:....:.:.:.:..
.:..:.:.:....:.:......:...........*-*-##*+.......................:.....
:.:..:.:....:.:......:............*-==###*...........%..:..............
::....:......:....................#:==%#%=...........@.:...............
:.:.:.......:.....................*=++%*#=...........@............:.:..
::.:.:............................#+**##%=...........@.............:...
:.................................#=-%%*%+...........@:................
:.................................=-=*%##+...........%-................
::...:.:..........................--*=%+##..........#.=..........:.:...
:.:.:.............:...............=+*=%+%#..........# #:..........:.:..
::.:..............:...............#+=###%%..........# +*+..............
:.................:..............:==:=%***-.........# =+++.............
:.................................=-==%#*+..........* ++*#.............
:................+=...............+-.-##%#..........* **+%:............
:................:-...............+-==###%..........# .:%#*............
:.................................=-*%%@*#..........#-=:%#*............
:...............=................%.*==%*#+%.........*-= -##-...........
:...............*................*:+..#*%#=...:.....*== :##-...........
.:..............*................:-#=-%##+...:-.....+=-. %#%...........
:.:.:..........-.+................:=..%*#=..=::+....+=:. %#%...........
:..:..........=  =:........=......:-.:#*#+..: :*....+--:.###...........
                   ——紫峰大厦
        """
    },
    {
        "question": "南京的历史文化和现代发展如何结合?",
        "answer": "南京在保护历史文化的同时,积极推动现代科技发展,形成了独特的“古韵金陵,数字创新”模式。例如,夫子庙景区不仅保留了古代建筑风格,还引入了智慧旅游系统,游客可以通过手机 App 获取实时导览信息。明城墙作为世界文化遗产,周围建成了现代化的城市公园,成为市民休闲的好去处。此外,南京大力发展智能交通、人工智能和智能制造等新兴产业,吸引了众多高科技企业入驻。这种历史与现代的交融,使南京既保留了传统文化的魅力,又展现了科技创新的活力。",
        "ascii_art": r"""
    -:                                          :.                                             
                                                 ++:                                        ==-                                             
                                                .:-+------===================================::                                             
                                                -:::::::::::::::::::::::::::::::::::::::::::::-.                                            
                                                =:=++++++++++++++++++++++++++++++++++++++++++-+-                                            
                                                *::--:::::::::::::::::::::::::::::::::::::::::+-                                            
                                                %::=+:::::::::::::::+:::::::-:::::::+::::::-::-:                                            
                                                %::=+:::::-:::::::::*:::::::::::::::#:::::::-::=.                                           
                                                *::-=:::::-:::::::::*::::::::-::::::#:::::::*::+.                                           
                                               --::=:::::-+:::::::::*::::::::+::::::*:::::::+::--                                           
                                               *::-*:::::-*:::::::::=::::::::#::::::=:::::::-=::*                                           
                                               +::-=:::::-+::::::::--::::::::*:::::::+::::::-+::-=                                          
                                              +-::*::::::-:::::::::+-::::::::-:::::::*:::::::--::%.                                         

                                        ::::-+:::=:::::::-::::::::::::::::::::::::::::::::::::-::::*--.                                     
                                        =++=-:::::::::::::::::::::::::::::::::::::::::::::::::::::::-*-                                     
                                        .#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:                                     
                                         :#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::==                                      

                                          .#-::::::::::::::::::::::::::::::::::::::::::::::::::::::++                                       
                                           .#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=                                        
        
                                           .+*#*+++++++++++##**+++++++++++++++++++++#*#+++++++++%**=                                        
        
                                           .**#*+++++++++++##**+++++++++++++++++++++#*#+++++++++%**=                                        
        
                                           .**#*+++++++++++##**+++++++++++++++++++++#*#+++++++++%**=                                        
        
                                           .**#*+++++++++++##**+++++++++++++++++++++#*#+++++++++%**=                                        
        
                                           :%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*                                        
        
                                           =-::::::::::::::::::::::::::::::::::::::::::::::::::::::=+                                       
                                          -+::-:::::::::::::::::::::::::::::=::::::::::::+:::::+-:::==                                      

                                        .=*::+=:::::::+:::::::::::::::::::::+-:::::::::::+-:::::+::::+-                                     
                                   .:---*=::==:::::::--::::::::::--::::::::::*::::::::::::*:::::::+::----.                                

                                   :*+=-:::-=::::::::=:::::::::::-=::::::::::+-:::::::::::==:::::=-::::-++*+                                

                                    *::::::=-::::::::-::::::::::::::::::::::::-::::::::::::-::::::::::::::*:                                

                                    -+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*+                                 
                                    .+#==-===---=----====--=---===----------=------------::::::::::::::-%=                                  
                                       +##********************##******************##*****************##%.                                   
                                       +*#++++++++++++++++++#**#+++++++++++++++++****++++++++++++++++##%                                    
    
                                  .....+#%******************#**#*************************************##%:...:.                              
                                 -+====+**++*++++++***++*+++**+*++++++++++++++++++++*++++++*+++*++**+***====+-                              
                                 #================================++++++++++++===============================*.                             
                                 *===============================+-----------#===============================+-                             
                                =+===+.........................*=*+::::::::::%==+-........................:+==#                             
                                *+==++                         *==+-::::::::++==*-                        .*==#.                            

                               .+===+*..:::::::::::::::::::::::*==**++++++++%===*=..::::::::::::::::::::::-*===+                            

                               =+====****######################+================+****#####################*+===%                            

                               =+==============================================================================+-                           

                              .+================================================================================#                           

                              -*=====================================*%%##%*====================================*.                          

                              -*====================================#%*****#%====================================*                          

                             .+====================================##*******#*===================================*                          

                             :#===================================*#*********%=====================================                         

                             -*===================================*#**********#==================================++                         

                             *===================================+#***********%====================================:                        

                             #===================================*#***********#===================================+=                        

                            .+===================================*#***********#+===================================-                        

                            +====================================+#***********#+===================================+:                       


                                          ——南京大学

        """
    }
]

# 循环让用户选择问题并回答
def ask_question():
    while True:
        print("\n请选择一个问题 (输入数字 1 到 2):")
        for i, q in enumerate(questions, 1):
            print(f"{i}. {q['question']}")
        print("0. 退出")
        
        try:
            choice = int(input("你的选择:"))
        except ValueError:
            print("请输入一个有效的数字!")
            continue
        
        if choice == 0:
            print("感谢使用!再见!")
            break
        
        if 1 <= choice <= len(questions):
            question = questions[choice - 1]
            print(f"\n问题:{question['question']}")
            print(f"回答:{question['answer']}")
            print(question['ascii_art'])
        else:
            print("无效的选择,请重新选择!")

# 启动程序
ask_question()

        

GitHub 项目仓库

查看源码与项目文档