python 计算订单_从问题到程序:用Python学编程和计算

前言

第1章 程序设计和Python 1

1.1 计算机和程序1

1.1.1 “是什么”和“怎样做”的知识1

1.1.2 计算和程序3

1.1.3 编程语言7

1.2 Python语言简介10

1.2.1 Python语言的发展和应用10

1.2.2 Python系统和IDLE编程环境13

1.3 程序开发15

1.3.1 程序开发过程15

1.3.2 程序错误16

1.3.3 从问题到程序19

练习22

第2章 计算和编程初步 23

2.1 数值表达式和算术23

2.1.1 整数计算23

2.1.2 浮点数和复数27

2.2 数据对象、计算和类型29

2.2.1 对象和类型29

2.2.2 混合类型计算和类型转换30

2.2.3 数值类型和计算的简单总结31

2.3 内置函数和数学函数包32

2.3.1 函数及其使用33

2.3.2 处理数值的内置函数33

2.3.3 数学函数包34

2.4 字符串35

2.4.1 字符串和字符串类型35

2.4.2 字符串操作36

2.5 标识符、变量和赋值38

2.5.1 变量、名字和值38

2.5.2 简单顺序计算40

2.6 简单脚本程序41

2.6.1 脚本的编辑和执行41

2.6.2 程序和输入43

2.7 判断和条件控制45

2.7.1 条件判断和逻辑表达式45

2.7.2 if语句(条件语句)46

2.7.3 编程实例48

2.8 重复计算和循环49

2.8.1 重复计算50

2.8.2 for语句和重复计算51

2.8.3 while语句和迭代53

2.8.4 循环控制56

2.9 计算的抽象和函数56

2.9.1 计算的控制和抽象56

2.9.2 计算的抽象:函数57

2.9.3 函数定义和使用实例60

2.10 若干Python机制及其他62

2.10.1 已讨论的Python机制62

2.10.2 若干Python机制62

2.10.3 Python解释器64

2.11 补充材料64

2.11.1 语言细节65

2.11.2 编程技术70

练习71

第3章 基本编程技术 77

3.1 循环程序设计77

3.1.1 循环的需求和问题78

3.1.2 常见循环形式80

3.1.3 输入循环86

3.2 递归89

3.2.1 递归定义的函数89

3.2.2 乘幂的计算90

3.2.3 循环和递归91

3.2.4 斐波那契数列的计算92

3.2.5 最大公约数97

3.2.6 不容易用循环求解的递归问题100

3.2.7 更复杂的递归情况103

3.3 程序终止性103

3.3.1 调和级数的部分和104

3.3.2 程序终止性不可判定104

3.4 定义函数105

3.4.1 为什么定义函数105

3.4.2 学习定义函数108

3.4.3 函数:两种观点及其联系111

3.4.4 通用和专用的方法117

练习120

第4章 函数和程序结构 124

4.1 作用域、环境和状态124

4.1.1 作用域与函数定义124

4.1.2 环境和状态126

4.1.3 程序执行中的环境变化129

4.1.4 模块和环境133

4.2 函数定义和函数调用135

4.2.1 函数定义的结构135

4.2.2 函数调用中的问题140

4.2.3 带默认值形参和关键字实参143

4.3 编程框架和高阶函数145

4.3.1 编程框架和函数的函数参数145

4.3.2 匿名函数和lambda表达式149

4.3.3 随机数和模拟153

4.3.4 高阶函数155

4.4 程序的测试和调试156

4.4.1 测试157

4.4.2 排除程序里的错误162

4.4.3 使用IDLE的调试功能163

4.4.4 程序测试问题165

4.5 补充材料166

4.5.1 语言细节166

4.5.2 编程技术和规则169

练习169

第5章 数据的组织和操作 172

5.1 组合数据对象172

5.2 表173

5.2.1 简介174

5.2.2 表的构造和操作175

5.2.3 编程实例178

5.3 元组183

5.3.1 基础183

5.3.2 有理数程序包185

5.3.3 打包和拆分187

5.4 序列、不变对象和可变对象189

5.4.1 序列和序列操作189

5.4.2 描述式194

5.4.3 对象、变动和变量关联196

5.4.4 一些程序实例202

5.4.5 表处理204

5.5 字符串及其格式化生成209

5.5.1 字符串操作209

5.5.2 字符串的格式化213

5.5.3 一个简单的交互式计算器216

5.6 字典217

5.6.1 概念和操作218

5.6.2 字典与函数参数221

5.6.3 字典的应用实例222

5.7 集合224

5.7.1 概念和操作224

5.7.2 集合操作226

5.8 程序实例228

5.8.1 多项式计算228

5.8.2 另一个筛法实例231

5.9 若干语言和技术问题232

5.9.1 逻辑类型和逻辑判断232

5.9.2 函数参数的总结235

5.10 补充材料236

5.10.1 语言细节236

5.10.2 编程技术240

练习241

第6章 高级编程技术 248

6.1 文件:使用外存数据248

6.1.1 文件和输入/输出249

6.1.2 Python的文件功能251

6.1.3 文件处理程序实例256

6.2 生成器函数和闭包261

6.2.1 生成器函数261

6.2.2 闭包和装饰器265

6.2.3 编程实例274

6.3 异常和异常处理276

6.3.1 运行中的错误277

6.3.2 异常和异常处理279

6.3.3 异常处理的结构和技术282

6.3.4 try结构和raise语句详述284

6.3.5 预定义异常287

6.3.6 用异常作为控制机制288

6.4 数据处理和持久性291

6.4.1 文本生成291

6.4.2 数据记录和信息管理295

6.4.3 数据持久性300

6.4.4 with语句302

6.5 Python程序的几个问题304

6.5.1 Python程序及其运行304

6.5.2 程序格式307

6.5.3 怎样阅读Python手册308

6.6 补充材料309

6.6.1 语言细节309

6.6.2 编程技术313

练习315

第7章 数据抽象和面向对象编程 320

7.1 数据抽象、类和自定义类型320

7.1.1 类型和数据组合321

7.1.2 对象、类和类型323

7.2 Python的类和对象325

7.2.1 对象和操作325

7.2.2 类定义326

7.2.3 几点说明332

7.2.4 编程实例335

7.3 继承339

7.3.1 继承、基类和派生类340

7.3.2 编程实例344

7.3.3 多继承348

7.3.4 异常和类349

7.4 实例:学校人事管理350

7.4.1 概念分层和基础人员类350

7.4.2 具体人员类的设计和实现355

7.4.3 讨论358

7.5 特殊方法名和特殊功能的类359

7.5.1 容器类和迭代器359

*7.5.2 上下文管理器和with语句363

7.5.3 几个特殊方法名364

7.6 补充材料365

*7.6.1 Python类、对象和方法365

7.6.2 面向对象的技术和方法371

7.6.3 总结373

练习374

第8章 其他编程问题 377

8.1 图形用户界面377

8.1.1 人机界面的问题377

8.1.2 标准库包tkinter和图形用户界面380

*8.1.3 tkinter的ttk包400

8.1.4 GUI的简单应用和问题402

8.1.5 应用程序的GUI设计和实现404

8.1.6 总结和讨论412

8.2 并发程序设计414

8.2.1 并发程序415

8.2.2 Python并发库threading包418

8.2.3 定义自己的线程类422

8.2.4 并发程序的一些问题424

8.2.5 线程间通信和queue包431

8.2.6 一个GUI并发程序实例433

8.2.7 总结和讨论436

练习438

附录A Python语言速查 440

附录B 标准函数 444

附录C 书中使用的几个标准库包 448

附录D IDLE开发环境 449

参考文献及进一步阅读资料 452

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种强大的编程语言,可以用来编写各种类型的程序,包括ERP(企业资源计划)程序。 ERP程序是一种用于管理企业资源的应用程序,主要用于协调和整合企业内部的各个部门,包括销售、采购、生产、财务、人力资源等。ERP程序通常包括以下功能: 1. 计划和调度:用于管理生产计划和资源分配。 2. 采购管理:用于管理供应商信息、采购订单、采购收货等。 3. 库存管理:用于管理库存、仓库入出库、盘点等。 4. 销售管理:用于管理客户信息、销售订单、发货等。 5. 财务管理:用于管理财务据、账户、支付、结算等。 6. 人力资源管理:用于管理员工信息、薪资、绩效考核、招聘等。 Python可以使用各种库和框架来编写ERP程序,例如Django、Flask等Web框架、SQLAlchemy等ORM框架、Pandas等据处理库、NumPy等科计算库等。使用Python编写ERP程序可以提高开发效率、降低开发成本,并且Python具有良好的可维护性和可扩展性。 以下是使用Python编写ERP程序的一些示例代码: 1. 使用Flask编写一个简单的销售管理系统: ```python from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sales.db' db = SQLAlchemy(app) class Customer(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False) address = db.Column(db.String(100), nullable=False) phone = db.Column(db.String(20), nullable=False) class Order(db.Model): id = db.Column(db.Integer, primary_key=True) customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'), nullable=False) customer = db.relationship('Customer', backref=db.backref('orders', lazy=True)) date = db.Column(db.Date, nullable=False) total = db.Column(db.Float, nullable=False) @app.route('/') def index(): customers = Customer.query.all() return render_template('index.html', customers=customers) @app.route('/customer/add', methods=['GET', 'POST']) def add_customer(): if request.method == 'POST': name = request.form['name'] address = request.form['address'] phone = request.form['phone'] customer = Customer(name=name, address=address, phone=phone) db.session.add(customer) db.session.commit() return redirect(url_for('index')) else: return render_template('add_customer.html') @app.route('/order/add/<int:customer_id>', methods=['GET', 'POST']) def add_order(customer_id): customer = Customer.query.get_or_404(customer_id) if request.method == 'POST': date = request.form['date'] total = request.form['total'] order = Order(customer=customer, date=date, total=total) db.session.add(order) db.session.commit() return redirect(url_for('view_customer', customer_id=customer_id)) else: return render_template('add_order.html', customer=customer) @app.route('/customer/<int:customer_id>') def view_customer(customer_id): customer = Customer.query.get_or_404(customer_id) return render_template('view_customer.html', customer=customer) if __name__ == '__main__': app.run() ``` 2. 使用Pandas和Matplotlib编写一个简单的销售据分析程序: ```python import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('sales.csv') data['date'] = pd.to_datetime(data['date']) data.set_index('date', inplace=True) revenue = data['total'].resample('M').sum() quantity = data['quantity'].resample('M').sum() plt.figure(figsize=(10, 5)) plt.plot(revenue.index, revenue.values, label='Revenue') plt.plot(quantity.index, quantity.values, label='Quantity') plt.xlabel('Month') plt.ylabel('Amount') plt.legend() plt.show() ``` 3. 使用NumPy和SciPy编写一个简单的库存管理程序: ```python import numpy as np from scipy.optimize import minimize demand = np.array([100, 200, 150, 300, 250]) cost = np.array([10, 20, 30, 40, 50]) initial_stock = 50 def objective_function(stock): shortage = np.maximum(demand - stock, 0) excess = np.maximum(stock - demand, 0) total_cost = np.dot(shortage, cost) + np.dot(excess, 0.5 * cost) return total_cost result = minimize(objective_function, initial_stock, method='BFGS') optimal_stock = result.x[0] print('Optimal stock level:', optimal_stock) ``` 这是一个简单的库存管理问题,其中demand表示每个月的需求量,cost表示每个月的库存成本,initial_stock表示初始库存水平。在这个问题中,优化目标是最小化总成本,包括库存成本和短缺成本。使用SciPy中的minimize函可以找到最优的库存水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值