运输问题python编程_15课python快递编程代码人Python语法简单才会越来越被编程界欢迎...

明确项目目的

分析流程,拆解项目

逐步执行,代码实现

3.1 先能用

3.2 再改进

3.3 精细化

节课的项目和上个项目难度差不多,从我们学习完函数之后,我们就可以做出一些有用的程序了。这节课,我们做一个闪电快递配送的项目, 用来解决快递配送的人员与送货量的配比问题。

这次开发实用程序的流程和上次是一模一样。

接下来,我们一步一步来实现这个项目。明确项目目的先来看一下项目需求:

看完了项目需求,那个快递老板朋友又来了。

既然我那BOSS朋友要得急,那我们使用“敏捷开发”。 我们来分析一下这个项目。分析流程,拆解项目我们的任务就是做一个“快递配送调配程序”,虽然这朋友要的比较着急,但是我们也不着急于编程开发,应该先梳理清楚需求,做出的程序功能达到什么样的效果。计算器,首先配送站BOSS要输入信息,然后自动计算出结果。为了搞清楚计算过程,我们得到计算公式。梳理需求,得到下图结果:

根据上面的分析,试着补全代码,将计算公式写在下面,运行程序。

因为这BOSS朋友着急,先做出程序,以后再优化吧。所以,我们把程序版本大致规划成3个阶段。

明确每个阶段任务后,接下来我们逐步用代码实现功能。

江湖秘籍:%f是字符串格式化,格式字符串为浮点数,%.1f的意思是格式化字符串为浮点数,并且保留一位小数。

发现:向上取整是math.ceil(), 括号内放数字。

也就是使用math.ceil()方法,就能把数字向上取整。并且在开始位置,有一句import math, 怎么有些似曾相识. 在上个项目实战中,我们使用随机数,也用过import math代码。

现在解决了项目bug,感觉应该可以了。

等等,BOSS朋友需要使用两个函数才能计算配送次数,计算配送员数,有没有办法能够让她使用一个函数就能完成功能。

如何解决这个问题?还是用之前方法流程来处理:

要想实现这样效果,我们怎么传递参数,才能让函数区分是【计算配送次数】还是【计算配送员数】。

OK,现在这个程序已经可以运行了。

但是,我们在调用函数的时候,你还要输入参数名与参数值,太麻烦,我们能不能有个简单方法。

是不是简单的多了,但是还没完。

BOSS朋友不想每次都去调用函数,才能计算结果,那就给她整个交互过程。

增加可交互性,让BOSS朋友只输入内容即可, 使用input()函数。

看,是不是可以输入了。但是,有bug唉。不信,贴图来看。

当我们选择计算配送次数, 项目大小为2.2倍,快递员数为1时。 计算工时:需要配送次数 = 2.2*100/20/1 ,得到的结果应该是11次,可是打印出来却是12次。是为什么呢? 还是老问题, python江湖中的除法,会将数字都转换二进制再进行计算,得到的结果是一个二进制,造成数字增加。不信,你运行一下下面程序。

明可以整除的,造成还存在小数部分,然后向上取整后得到12。那么有没有办法可以改变有, 我们使用math中的round函数。

是不是没问题了。round()函数是python中提供解决小数的保留问题。此函数格式round(x ,n) x表示小数,n表示需要保留的小数位。我们保留小数2位,将round加入到我们的案例方法中。运行以下代码,观察终端结果。

BOSS朋友是不是可以输入了。但是,按照函数封装代码的思想,我们现在代码写的很杂。那我们把它优化一下?怎么优化呢?江湖箴言:创建一个主函数,用来调用其他子函数。这不就是函数的嵌套吗?

在这里函数BOSS_input()负责收集BOSS朋友输入的数据;函数calculate_job()负责计算工作量.函数res()负责调用两个函数,传入参数.只要调用res()函数,就能让整个程序跑起来。

是不是很完美了?这就是这节课完成的实用程序,解决快递配送调配问题。

我要把我的程序送给BOSS朋友去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值