• 20193103陈柏维《Python程序设计》实验四报告


    20193103 2019-2020-2 《Python程序设计》实验四报告

    课程:《Python程序设计》 班级: 1931 姓名: 陈柏维 学号:20193103 实验教师:王志强 实验日期:2020年6月14日 必修/选修: 公选课

    1.实验内容

    Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等 本次实践我选择做一个餐厅点菜程序。

    2. 实验过程及结果

    # coding UTF-8
    # version = version_1_2

    today_menu = ["今天菜单如下", "1 宫保鸡丁", "2 青椒鸡米粒", "3 白萝卜焖肉", "4 蒜薹腊肉", "5 豆腐包肉 ",
                 "6 鲤鱼跃龙门", "7 凉拌莲藕", "8 红烧南瓜", "9 大白菜", "10 青菜", "11 荷包蛋(另加2元)", "12 蛋炒饭(10元)"]
    price = [0, 0, 12, 0, 0, 10, 13, 0, 9, 11, 14, 0, 10, 0, 15, 0]


    def getTodayMenu():
       return today_menu


    def showTodayMenu(interable):
       for today_menu_details in today_menu:
           print(today_menu_details)


    def showCombineNote():
       print("提示:一荤一素10,两素菜9元,一荤两素11,,三素菜10,两荤菜12,两荤一素13,两荤两素14,两荤三素15元")
       print("请输入您点餐的编号,编号之间用逗号分开,不同份数之间用空格隔开 例如输入1,9,10 2,6,8 3,10,谢谢 : ")


    def dealWithUserInput():
       user_choise = input()

       user_choise_list = user_choise.split()

       price_total = 0
       price_one = 0
       choosed_list = []
       pay_total = 0

       for one_order in user_choise_list:
           count_i = count_j = 0
           hebaodan = 0
           danchaofan = 0
           one_order_list = one_order.split(",")
           for menu_item in one_order_list:
               if menu_item.strip().isdigit():
                   if int(menu_item.strip()) < 7:
                       count_j += 1
                   elif int(menu_item.strip()) < 11:
                       count_i += 1
                   elif int(menu_item.strip()) == 11:
                       hebaodan += 1
                   elif int(menu_item.strip()) == 12:
                       danchaofan += 1
                   choosed_list.append(int(menu_item))
               else:
                   print("您输入的有非数字类型,请重新运行程序,谢谢")
                   exit()
               choosed_list.append(0)
           if price[count_i * 4 + count_j] == 0 and "12" not in one_order:
               print("您输入的不是一个正确的组合,请重新运行程序, 谢谢")
               exit()
           else:
               price_one = price[count_i * 4 + count_j] + hebaodan * 2 + danchaofan * 10
           price_total += price_one

       if price_total >= 30:
           pay_total = price_total - 4

       elif price_total >= 26:
           pay_total = price_total - 3

       elif price_total >= 20:
           pay_total = price_total - 2
       else:
           pay_total = price_total

       print("您预订了 %d 份美食,具体如下: " % len(user_choise_list))

       for choosed_item in choosed_list:
           if choosed_item == 0:
               print()
           else:
               print(today_menu[choosed_item])
       print("您共需要支付 %d 元,谢谢" % pay_total)


    print("欢迎进入点餐系统")

    today_menu = getTodayMenu()
    showTodayMenu(today_menu)
    showCombineNote()
    dealWithUserInput()

    结果:

    3. 实验过程中遇到的问题和解决过程

    对于各种函数的运用不太熟悉,在函数的定义时由于缩进的错误导致诸多问题,在多层if与else语句的运用时有点乱。

    其他(感悟、思考等)

    这一个学期的学习,我对python有了更新的认识,python是不同于c的编程语言,python的简短明了让编程变得高效,但我对python的掌握不完全,需多加练习,我相信,在未来的学习与应用中,我可以靠python实现很多,比如对数学难题的解答等,python的学习对我的帮助绝不仅仅是知识的增长,更是解决困难方法的增加。

  • 相关阅读:
    nput="file" 浏览时只显示指定excel文件,筛选特定文件类型
    SSM三大框架的运行流程、原理、核心技术详解
    HttpServletRequest和ServletRequest的区别
    拦截器(Interceptor)与过滤器(Filter)的区别
    springboot整合webservice
    SpringBoot配置Cors解决跨域请求问题
    多线程同步锁和死锁以及synchronized与static synchronized 的区别
    大批量数据导出excel
    查看MySql版本号命令
    分布式锁初认识
  • 原文地址:https://www.cnblogs.com/chenbowei/p/13125161.html
Copyright © 2020-2023  润新知