模块化编程

#用"from ... import *"来执行代码模块中的函数,就不需要提到模块名,而且可以使用模块中定义的变量
#如果你需要使用完全限定名(FQN)来用模块名限定函数名(这也是Python里推荐的做法),可以用"import..."
from transaction_module import *
#import transaction_module
#items = ["DONUT","LATTE","FILTER","MUFFIN"]
#prices = [1.50,2.0,1.80,1.20]
running = True

while running:
    option = 1
    for choice in items:
        print(str(option)+"."+choice)
        option = option + 1
    print(str(option)+".Quit")

    choice = int(input("your choice is:"))
    if choice == option:
        running = False
    else:
        credit_card = int(input("your credit card is:"))
        save_transaction(prices[choice-1]*100,credit_card,items[choice-1])
        print("Yes")
#模块文件
#transaction_module.py

#import re
def save_transaction(price,credit_card,item):
    file = open("transaction.txt","a")
    file.write("%16s%07d %16s\n"%(credit_card,price,item))
    file.close()

def pare_sale_info():
    file = open("sale_info.txt")
    a = []
    for each_line in file:
        (card_num,item_num) = each_line.split(" ")
        a.append([int(card_num),int(item_num)])
    return(a)

items = ["DONUT","LATTE","FILTER","MUFFIN"]
prices = [1.50,2.0,1.80,1.20]
#后面仅做模块调试使用
sale_info = pare_sale_info()
i = 0
for each_info in sale_info:
    save_transaction(prices[each_info[1]-1]*100,each_info[0],items[each_info[1]-1])
    #print(item)

操作相关的文件:

#sale_info.txt

6382746238764830     1
6382746238764840     2
6382746238764850     3
6382746238764860     4
6382746238764870     1
6382746238764880     2
6382746238764890     3
6382746238764900     4
6382746238764910     1
6382746238764920     2
6382746238764930     3
6382746238764940     4
6382746238764950     1
6382746238764960     2
6382746238764970     3
#transaction.txt

63827462387648300000150            DONUT
63827462387648400000200            LATTE
63827462387648500000180           FILTER
63827462387648600000120           MUFFIN
63827462387648700000150            DONUT
63827462387648800000200            LATTE
63827462387648900000180           FILTER
63827462387649000000120           MUFFIN
63827462387649100000150            DONUT
63827462387649200000200            LATTE
63827462387649300000180           FILTER
63827462387649400000120           MUFFIN
63827462387649500000150            DONUT
63827462387649600000200            LATTE
63827462387649700000180           FILTER
63827462387648300000150            DONUT
63827462387648400000200            LATTE
63827462387648500000180           FILTER
63827462387648600000120           MUFFIN
时间: 2024-08-05 15:01:58

模块化编程的相关文章

从273二手车的M站点初探js模块化编程

前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数据. 273这个M站点是产品推荐我看的.第一眼看这个产品时我就再想他们这个三次加载和翻页按钮的方式,那么小分页的pageIndex是怎么计算的.所以就顺便看了下源码. 提到看源码时用到了Chrome浏览器的格式化工具(还是朋友推荐我的,不过这个格式化按钮的确不明显,不会的话自行百度). 三次加载和分

Javascript模块化编程(二):AMD规范

作者: 阮一峰 日期: 2012年10月30日 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块. 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套!考虑到Javascript模块现在还没有官方规范,这一点就更重要了. 目前,通行的Javascript模块规范共有两种

JS的模块化编程

今天学了一下JS的模块化编程,感觉JavaScript真的是博大精深,CommonJS,requireJS,NodeJS,Seajs,在此记录一下经验.JavaScript设计之初并不是一种模块化编程语言,不支'类'和'模块'的概念,但ES6中却将正式支持"类"和"模块".有了模块,我们可以更方便地使用别人的代码,想要什么功能,就加载什么模块. 不过这样做的前提是大家必须以同样的方式编写模块,考虑到Javascript模块现在还没有官方规范,因此各种规范应运而生.

黑马程序员---C基础6【#include指令】【模块化编程】【计算机的进制】【原码、反码、补码】【位运算符】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [#include指令] 1.文件包含命令的格式: 1)#include “”双引号是包含用户自己书写定义的文件(可以是头文件,也可以是普通的文件)#include是预处理指令,不是一个语句,不需要加封号 2)#include<>   包含一个系统(编译器自带)的头文件 2.文件包含的实质: 把指定文件内容插入该命令行位置取代该命令行, include不一定非要写在第一行: 3.includ

模块化编程:阮一峰 模块化编程

由于一个页面写的js太多了,都写在一个文件中,不好调试.所以我的目标就是如何能把所需的js文件,分割成易于维护的代码块,之间能相互调用方法和属性.虽然采用命名空间也能应付,但是不知道什么才是最好的做法. 看了这一系列文章,感觉是处理模块间的依赖关系.这也确实是需要做的事情,比如使用jquery UI,bootstrap等好用的库时,就需要处理好模块的关系. javascripts模块化编程(一):模块的写法 一.原始写法:函数的堆积 二.对象写法:会暴露所有的模块成员 三.立即执行函数:不暴露私

Javascript模块化编程(一):模块的写法

作者: 阮一峰 日期: 2012年10月26日 随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑. Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. 但是,Javascript不是一种模块化编程语言,它不支持"类&qu

Javascript模块化编程

(一):模块的写法 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑. Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. 但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论"模块"(module)了.(正在制定中的ECMAScript标准第六版,将正式支持"

用模块化编程

用模块化编程 最近想边学边整一下模块化编程,那么先从为何要使用模块化编程说起吧,可能你刚听说模块化编程,也没有关系,本篇讲的是很基础的东西. 一开始写代码的时候,我们可能只需要一个js文件,去实现一个很小的功能,比如下面这样: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&g

使用requireJS实现模块化编程

RequireJS是一个工具库,主要用于客户端的模块管理.他可以让客户端的代码分成一个个模块,实现异步或动态加载,从而提高代码的性能和可维护性.他的模块管理遵守AMD规范(Asynchronous Module Definition). RequireJS的基本思想就是:通过define方法,将代码定义为模块:通过require方法,实现代码的模块加载. 第一步,将requirejs.js文件使用script标签嵌入到网页,然后即可以使用requireJS进行模块化编程. <script dat

嵌入式 Linux C语言(十一)——C语言模块化编程

嵌入式 Linux C语言(十一)--C语言模块化编程 一.C语言模块化编程 所谓模块化编程,就是指一个程序包含多个源文件(.c 文件和 .h 文件),每个模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明.C语言模块化编程中对.c..h文件的潜规则: 1..c 文件主要负责实现,也就是定义函数:.h 文件主要负责声明,比如函数声明.宏定义等,结构的定义.自定义数据类型一般也放在头文件中,不能在.h文件中定义变量.将一个功能模块的代码单独编写成一个.c文件,然后把该