Python实现拣货员拣货的时间长短分析

文章目录

  • Python实现拣货员拣货的时间长短分析
  • 一、需求的描述
  • 二、我们对于需求的分析
  • 三、员工类的实现
  • 四、计算时间的源代码
  • 五、main函数的源代码
  • 六、整个程序的源代码:

一、需求的描述




另外,这里还有一个堵塞的情况;


最后,一些参数如下所示:

二、我们对于需求的分析

对于一个问题,首先应该分析清楚他是要我们做什么的!!

首先,我们应该定义一个类(员工类),然后,每一个员工就是对应于一个类的实例对象了啦。也就是说,我们这里需要定义30个实例对象的。

接着,我们在员工类里面给对象设置一些属性,比如说:1、开始工作的时间;2、需要到达的位置,还有需要拣出来多少货物;3、等待(堵塞)了多长的时间。 等等

然后,在类里面实现一些函数,比如:1、计算行走的时间;2、计算拣货的时间;3、计算堵塞的时间;4、打印员工的相关拣货信息;5、计算一个员工总共的耗时时间。 等等

最后,在 main 函数中执行代码计算最终的结果。

在这里需要强调一下:1、每一个员工的信息(拣货的信息)需要用户进行输入进去的;2、注意每个员工都有可能会遇到堵塞的情况;3、一个员工工作的总时间为 行走时间 + 拣货时间 + 堵塞时间。

然后呢,我们写一个文件来定义员工类,

接着写一个文件来实现时间的计算,

然后,在主函数之中调用实现时间的计算的文件来进行实现功能。

三、员工类的实现

直接上代码,因为,我在代码里面写了十分详细地注释,相信大家是可以看懂得啦。(看代码里面的注释一定是可以理解的)
员工类的实现的源代码:


# 自定义一个模块,这个文件中定义一个员工类,每一个员工都是该类的一个实例对象class Employee(object):"""员工类"""def __init__(self, start_time, goods_message, taboo_table, speed=0.9, choose=1, wait_time=0):"""初始化一个实例对象:param start_time: 员工开始出发的时间:param goods_message: 员工需要达到的货架以及所需要取多少货品:param taboo_table: 禁忌表,记录每个员工何时在哪一个通道内部,何时进入、出去,刚开始,禁忌表为空,后面利用函数进行添加:param speed: 恒定的行走速度,0.9:param choose: 恒定值,挑选商品,1:param wait_time: 等待的时间,即就是堵塞的时间,先赋值为 0 ,后续再更改"""self.start_time = start_time  # 开始出发的时间self.goods_message = goods_message  # 需要达到的货架以及所需要取多少货品"""一个商品信息应该如下:[(x, r, y), goods_number]然后多个类似的列表会组成一个总的商品列表"""self.taboo_table = taboo_table  # 禁忌表,记录何时在哪一个通道内部,何时进入、出去self.speed = speedself.choose = chooseself.time_of_walk_and_choose = 0  # 先赋值为 0 ,后续再更改self.wait_time = wait_time  # 堵塞的时间,先赋值为 0 ,后续再更改self.the_total_of_the_time = 0  # 总的时间(包含了行走、等待或者说堵塞、拣货这三个时间),先赋值为 0 ,后续再更改self.time_of_walk = 0  # 走的总时间,先赋值为 0 ,后续再更改self.time_of_choose = 0  # 拣货的总时间,先赋值为 0 ,后续再更改def compute_walk_and_choose_time(self):"""计算行走以及取货物的时间,此时尚未考虑堵塞的问题,将在后续的函数考虑:return: 空"""x_list = []y_list = []for i in self.goods_message:x_list.append(i[0][0])# 获取到所有的要去的通道的编号for j in self.goods_message:if j[0][0] == max(x_list):  # 如果是在最后一个通道内的货架y_list.append(j[0][2])# 获取到最后一个通道内部的 y 坐标y = max(y_list)# 求出最后一个通道所需要达到的最远的 y 坐标if len(self.goods_message) % 2 == 0:# 如果商品信息的列表的长度是偶数,即就是说去偶数个货架distance = (max(x_list) - 1) * 3.2 + 1 + 20 * len(x_list)# d = (max(x) - 1) * 3.2 + 1 + 20 * n, n 为偶数else:distance = (max(x_list) - 1) * 3.2 + 1 + 20 * (len(x_list) - 1) + 1.2 * y# d = (max(x) - 1) * 3.2 + 1 + 20 * (n - 1) + 1.2 * y, n 为奇数time1 = distance / self.speed  # 计算行走的时间sum_goods_number = 0for k in self.goods_message:sum_goods_number += k[1]time2 = sum_goods_number * self.choose  # 挑拣商品的时间time_of_walk_and_choose = time1 + time2self.time_of_walk_and_choose = time_of_walk_and_choose# 将这个时间赋值给对象的属性记录下来self.time_of_walk = time1self.time_of_choose = time2# 分别记录下行走的时间以及拣货的时间def make_the_taboo_table(self):"""生成禁忌表,记录每个员工何时在哪一个通道内部,何时进入、出去:return: 空"""x_list = []for i in self.goods_message:x_list.append(i[0][0])# 获取到所有的要去的通道的编号x_list.sort()  # 从小到大排序if len(x_list) % 2 == 0:# 偶数个通道record_number = 0t1 = self.start_time  # 最开始初始化为开始的时间for n in range(len(x_list)):# 循环所有的通道if n == 0:# 员工第一个进入的通道dt1 = (1 + (x_list[n] - 1) * 3.2) / self.speed# 走到通道的入口需要的时间else:# 不是员工第一个进入的通道dt1 = ((x_list[n] - x_list[n - 1]) * 3.2) / self.speed# 走到通道的入口需要的时间sum_of_goods = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:sum_of_goods += m[1]dt2 = (sum_of_goods * self.choose) + (20 / self.speed)  # 变化了的时间# 包含了 拣货 + 行走self.taboo_table[f'{x_list[record_number]}'] = [t1 + dt1, t1 + dt1 + dt2]# 进入时间为:初始时间 + 走到入口# 出去时间为:初始时间 + 走到入口 + 在通道内部的时间t1 = t1 + dt1 + dt2  # 重新对 t1 进行赋值record_number += 1  # 记录数字自加一else:# 通道个数为奇数record_number = 0t1 = self.start_time  # 最开始初始化为开始的时间# 这里初始化为最开始的时间for n in range(len(x_list) - 1):  # 最后一个需要单独处理啦# 循环所有的通道if n == 0:# 员工第一个进入的通道dt1 = (1 + (x_list[n] - 1) * 3.2) / self.speed# 走到通道的入口需要的时间else:# 不是员工第一个进入的通道dt1 = ((x_list[n] - x_list[n - 1]) * 3.2) / self.speed# 走到通道的入口需要的时间sum_of_goods = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:sum_of_goods += m[1]dt2 = (sum_of_goods * self.choose) + (20 / self.speed)  # 变化了的时间# 包含了 拣货 + 行走self.taboo_table[f'{x_list[record_number]}'] = [t1 + dt1, t1 + dt1 + dt2]# 进入时间为:初始时间 + 走到入口# 出去时间为:初始时间 + 走到入口 + 在通道内部的时间t1 = t1 + dt1 + dt2  # 重新对 t1 进行赋值record_number += 1# 记录数字自加一continuey_list = []for j in self.goods_message:if j[0][0] == max(x_list):  # 如果是在最后一个通道内的货架y_list.append(j[0][2])# 获取到最后一个通道内部的 y 坐标y = max(y_list)# 求出最后一个通道所需要达到的最远的 y 坐标last_sum_of_goods1 = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:last_sum_of_goods1 += m[1]self.taboo_table[f'{x_list[len(x_list) - 1]}'] = [t1 + ((x_list[len(x_list) - 1] - x_list[len(x_list) - 1 - 1]) * 3.2) / self.speed, t1 + ((x_list[len(x_list) - 1] - x_list[len(x_list) - 1 - 1]) * 3.2) / self.speed + last_sum_of_goods1 * self.choose + (1.2 * y) / self.speed]def compute_the_total_of_the_time(self):"""计算一个员工所需要的总的时间:return: 空"""self.the_total_of_the_time = self.time_of_walk_and_choose + self.wait_time# 总时间 = 行走以及拣货的时间 + 等待(堵塞)的时间def __str__(self):"""定义一个函数来打印相关对象的信息:return: 空"""print("该员工处理的订单信息为:", end='\n')j = 1for message in self.goods_message:print(f'第 {j} 个货物,坐标位置: {message[0]},取货数目: {message[1]}')j += 1# j 自加一print()str0 = f"该员工的工作总时间为:{self.the_total_of_the_time}," \f"行走的时间为:{self.time_of_walk}," \f"拣货的时间为:{self.time_of_choose}," \f"堵塞的时间为:{self.wait_time}."return str0

四、计算时间的源代码

这里还是一样的啊,我们直接给出来源代码,因为里面也是有很多的详细地注释来进行解释代码的啦
源代码:

# 导入模块from employee_package.employee import Employeedef execute_the_code():"""运行程序,进行员工拣货的模拟实现,首先实现每一个员工的初始化操作,然后,实现每一个员工的工作时间的计算:return: 空"""# 员工的人数q = 3# 生成员工列表并进行初始化employ_list = []# 初始化员工的信息for i in range(q):"""初始化"""input_goods_message = []# 请用户输入商品的货架信息while True:print(f"请输入第 {i + 1} 个员工的初始化信息,即就是第 {i + 1} 个员工对应的订单信息")x = int(input('输入 x 坐标 :'))# 转换为 inty = int(input('输入 y 坐标 :'))  # 转换为 intr = int(input('输入 r 坐标 :'))  # 转换为 intnumber = int(input('输入该货架中要取出来多少货物 :'))  # 转换为 intinput_goods_message.append([(x, r, y), number])# [(x, r, y), goods_number]break_or_not = input('如果输入完毕了,请输入 1 来结束操作 !\n 如果要继续输入请直接回车!')if break_or_not == '1':breakelse:continue# 定义一个中间变量作为新的员工new_employee = Employee(start_time=20 * i,goods_message=input_goods_message,taboo_table={})# 加入新的员工到列表之中去employ_list.append(new_employee)# 计算每一个员工除了堵塞意外所用的时间for i in range(q):"""除了堵塞以外的时间"""employ_list[i].compute_walk_and_choose_time()# 计算除了堵塞意外所用的时间# 生成每一个员工的禁忌表for i in range(q):"""生成禁忌表"""employ_list[i].make_the_taboo_table()# 生成每一个员工的禁忌表# # 打印每一个员工的禁忌表# for i in range(q):#     """#     打印禁忌表#     """#     print(employ_list[i].taboo_table)#     # 打印每一个员工的禁忌表# 计算每一个员工的等待(堵塞)的时间for i in range(q):"""计算堵塞的时间"""# 对任意一个员工都是要进行计算出来延迟的时间的new_dict = {}for j in range(q):# 将每一个非该对象的字典都加入到新的空字典中去if j != i:  # 只要不是当前的对象for data in employ_list[j].taboo_table.keys():# 这里的 data 是一个键if data in new_dict.keys():# 如果已经有了这个键 keynew_dict[data].append(employ_list[j].taboo_table[data])# 加入的是一个列表else:# 如果还没有这个键 keynew_dict[data] = [employ_list[j].taboo_table[data]]# 添加除了当前员工以外的所有的员工的禁忌表到一个字典中方便计算当前员工的堵塞时间# 这一步相当于是将其他人的禁忌表整合在了一起for a_key in employ_list[i].taboo_table.keys():# 遍历当前员工的所有的键,employ_list[i].taboo_table.keys()if a_key in new_dict.keys():# 如果当前员工的键在刚刚生成的字典的键中,那么就需要判断是否会发生堵塞for time in new_dict[a_key]:  # 这里读取到的是一个列表,因此需要遍历列表中的每一个元素if (employ_list[i].taboo_table[a_key][0] >= time[0]) and (employ_list[i].taboo_table[a_key][0] < time[1]):# 如果当前对象进入该通道的时间与其他的对象发生了冲突,那么,我们就需要记录此时的等待时间,也就是说记录堵塞的时间# 这里的情况如果满足,那就是发生了冲突的employ_list[i].wait_time += time[1] - employ_list[i].taboo_table[a_key][0]# 将等待的时间加入到每一个员工的等待时间中去,# 加上一个时间差else:# 如果没有冲突employ_list[i].wait_time += 0else:# 如果当前员工的键不在刚刚生成的字典的键中,那么无论如何都是可以直接前去拣货的啦employ_list[i].wait_time += 0  # 加 0# 这一步是进行计算 i 这个员工的堵塞时间# 计算每一个员工所需要的总时间for i in range(q):"""计算总时间"""employ_list[i].compute_the_total_of_the_time()# 计算每一个员工所需要的总时间# 打印每一个员工的信息for i in range(q):"""输出信息"""print(f"第 {i + 1} 个员工的工作信息如下 : ")print()# 打印拣货信息str00 = employ_list[i].__str__()# 打印时间信息print(str00)  # 打印每一个员工的信息print()

五、main函数的源代码

main函数的源代码:

# 导入模块from execute_the_code import executeif __name__ == '__main__':"""main 函数"""# 执行代码, run the codeexecute.execute_the_code()

六、整个程序的源代码:

员工类文件:

# 自定义一个模块,这个文件中定义一个员工类,每一个员工都是该类的一个实例对象class Employee(object):"""员工类"""def __init__(self, start_time, goods_message, taboo_table, speed=0.9, choose=1, wait_time=0):"""初始化一个实例对象:param start_time: 员工开始出发的时间:param goods_message: 员工需要达到的货架以及所需要取多少货品:param taboo_table: 禁忌表,记录每个员工何时在哪一个通道内部,何时进入、出去,刚开始,禁忌表为空,后面利用函数进行添加:param speed: 恒定的行走速度,0.9:param choose: 恒定值,挑选商品,1:param wait_time: 等待的时间,即就是堵塞的时间,先赋值为 0 ,后续再更改"""self.start_time = start_time  # 开始出发的时间self.goods_message = goods_message  # 需要达到的货架以及所需要取多少货品"""一个商品信息应该如下:[(x, r, y), goods_number]然后多个类似的列表会组成一个总的商品列表"""self.taboo_table = taboo_table  # 禁忌表,记录何时在哪一个通道内部,何时进入、出去self.speed = speedself.choose = chooseself.time_of_walk_and_choose = 0  # 先赋值为 0 ,后续再更改self.wait_time = wait_time  # 堵塞的时间,先赋值为 0 ,后续再更改self.the_total_of_the_time = 0  # 总的时间(包含了行走、等待或者说堵塞、拣货这三个时间),先赋值为 0 ,后续再更改self.time_of_walk = 0  # 走的总时间,先赋值为 0 ,后续再更改self.time_of_choose = 0  # 拣货的总时间,先赋值为 0 ,后续再更改def compute_walk_and_choose_time(self):"""计算行走以及取货物的时间,此时尚未考虑堵塞的问题,将在后续的函数考虑:return: 空"""x_list = []y_list = []for i in self.goods_message:x_list.append(i[0][0])# 获取到所有的要去的通道的编号for j in self.goods_message:if j[0][0] == max(x_list):  # 如果是在最后一个通道内的货架y_list.append(j[0][2])# 获取到最后一个通道内部的 y 坐标y = max(y_list)# 求出最后一个通道所需要达到的最远的 y 坐标if len(self.goods_message) % 2 == 0:# 如果商品信息的列表的长度是偶数,即就是说去偶数个货架distance = (max(x_list) - 1) * 3.2 + 1 + 20 * len(x_list)# d = (max(x) - 1) * 3.2 + 1 + 20 * n, n 为偶数else:distance = (max(x_list) - 1) * 3.2 + 1 + 20 * (len(x_list) - 1) + 1.2 * y# d = (max(x) - 1) * 3.2 + 1 + 20 * (n - 1) + 1.2 * y, n 为奇数time1 = distance / self.speed  # 计算行走的时间sum_goods_number = 0for k in self.goods_message:sum_goods_number += k[1]time2 = sum_goods_number * self.choose  # 挑拣商品的时间time_of_walk_and_choose = time1 + time2self.time_of_walk_and_choose = time_of_walk_and_choose# 将这个时间赋值给对象的属性记录下来self.time_of_walk = time1self.time_of_choose = time2# 分别记录下行走的时间以及拣货的时间def make_the_taboo_table(self):"""生成禁忌表,记录每个员工何时在哪一个通道内部,何时进入、出去:return: 空"""x_list = []for i in self.goods_message:x_list.append(i[0][0])# 获取到所有的要去的通道的编号x_list.sort()  # 从小到大排序if len(x_list) % 2 == 0:# 偶数个通道record_number = 0t1 = self.start_time  # 最开始初始化为开始的时间for n in range(len(x_list)):# 循环所有的通道if n == 0:# 员工第一个进入的通道dt1 = (1 + (x_list[n] - 1) * 3.2) / self.speed# 走到通道的入口需要的时间else:# 不是员工第一个进入的通道dt1 = ((x_list[n] - x_list[n - 1]) * 3.2) / self.speed# 走到通道的入口需要的时间sum_of_goods = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:sum_of_goods += m[1]dt2 = (sum_of_goods * self.choose) + (20 / self.speed)  # 变化了的时间# 包含了 拣货 + 行走self.taboo_table[f'{x_list[record_number]}'] = [t1 + dt1, t1 + dt1 + dt2]# 进入时间为:初始时间 + 走到入口# 出去时间为:初始时间 + 走到入口 + 在通道内部的时间t1 = t1 + dt1 + dt2  # 重新对 t1 进行赋值record_number += 1  # 记录数字自加一else:# 通道个数为奇数record_number = 0t1 = self.start_time  # 最开始初始化为开始的时间# 这里初始化为最开始的时间for n in range(len(x_list) - 1):  # 最后一个需要单独处理啦# 循环所有的通道if n == 0:# 员工第一个进入的通道dt1 = (1 + (x_list[n] - 1) * 3.2) / self.speed# 走到通道的入口需要的时间else:# 不是员工第一个进入的通道dt1 = ((x_list[n] - x_list[n - 1]) * 3.2) / self.speed# 走到通道的入口需要的时间sum_of_goods = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:sum_of_goods += m[1]dt2 = (sum_of_goods * self.choose) + (20 / self.speed)  # 变化了的时间# 包含了 拣货 + 行走self.taboo_table[f'{x_list[record_number]}'] = [t1 + dt1, t1 + dt1 + dt2]# 进入时间为:初始时间 + 走到入口# 出去时间为:初始时间 + 走到入口 + 在通道内部的时间t1 = t1 + dt1 + dt2  # 重新对 t1 进行赋值record_number += 1# 记录数字自加一continuey_list = []for j in self.goods_message:if j[0][0] == max(x_list):  # 如果是在最后一个通道内的货架y_list.append(j[0][2])# 获取到最后一个通道内部的 y 坐标y = max(y_list)# 求出最后一个通道所需要达到的最远的 y 坐标last_sum_of_goods1 = 0for m in self.goods_message:# 循环所有的货架if m[0][0] == x_list[record_number]:last_sum_of_goods1 += m[1]self.taboo_table[f'{x_list[len(x_list) - 1]}'] = [t1 + ((x_list[len(x_list) - 1] - x_list[len(x_list) - 1 - 1]) * 3.2) / self.speed, t1 + ((x_list[len(x_list) - 1] - x_list[len(x_list) - 1 - 1]) * 3.2) / self.speed + last_sum_of_goods1 * self.choose + (1.2 * y) / self.speed]def compute_the_total_of_the_time(self):"""计算一个员工所需要的总的时间:return: 空"""self.the_total_of_the_time = self.time_of_walk_and_choose + self.wait_time# 总时间 = 行走以及拣货的时间 + 等待(堵塞)的时间def __str__(self):"""定义一个函数来打印相关对象的信息:return: 空"""print("该员工处理的订单信息为:", end='\n')j = 1for message in self.goods_message:print(f'第 {j} 个货物,坐标位置: {message[0]},取货数目: {message[1]}')j += 1# j 自加一print()str0 = f"该员工的工作总时间为:{self.the_total_of_the_time}," \f"行走的时间为:{self.time_of_walk}," \f"拣货的时间为:{self.time_of_choose}," \f"堵塞的时间为:{self.wait_time}."return str0

计算时间的文件:

# 导入模块from employee_package.employee import Employeedef execute_the_code():"""运行程序,进行员工拣货的模拟实现,首先实现每一个员工的初始化操作,然后,实现每一个员工的工作时间的计算:return: 空"""# 员工的人数q = 3# 生成员工列表并进行初始化employ_list = []# 初始化员工的信息for i in range(q):"""初始化"""input_goods_message = []# 请用户输入商品的货架信息while True:print(f"请输入第 {i + 1} 个员工的初始化信息,即就是第 {i + 1} 个员工对应的订单信息")x = int(input('输入 x 坐标 :'))# 转换为 inty = int(input('输入 y 坐标 :'))  # 转换为 intr = int(input('输入 r 坐标 :'))  # 转换为 intnumber = int(input('输入该货架中要取出来多少货物 :'))  # 转换为 intinput_goods_message.append([(x, r, y), number])# [(x, r, y), goods_number]break_or_not = input('如果输入完毕了,请输入 1 来结束操作 !\n 如果要继续输入请直接回车!')if break_or_not == '1':breakelse:continue# 定义一个中间变量作为新的员工new_employee = Employee(start_time=20 * i,goods_message=input_goods_message,taboo_table={})# 加入新的员工到列表之中去employ_list.append(new_employee)# 计算每一个员工除了堵塞意外所用的时间for i in range(q):"""除了堵塞以外的时间"""employ_list[i].compute_walk_and_choose_time()# 计算除了堵塞意外所用的时间# 生成每一个员工的禁忌表for i in range(q):"""生成禁忌表"""employ_list[i].make_the_taboo_table()# 生成每一个员工的禁忌表# # 打印每一个员工的禁忌表# for i in range(q):#     """#     打印禁忌表#     """#     print(employ_list[i].taboo_table)#     # 打印每一个员工的禁忌表# 计算每一个员工的等待(堵塞)的时间for i in range(q):"""计算堵塞的时间"""# 对任意一个员工都是要进行计算出来延迟的时间的new_dict = {}for j in range(q):# 将每一个非该对象的字典都加入到新的空字典中去if j != i:  # 只要不是当前的对象for data in employ_list[j].taboo_table.keys():# 这里的 data 是一个键if data in new_dict.keys():# 如果已经有了这个键 keynew_dict[data].append(employ_list[j].taboo_table[data])# 加入的是一个列表else:# 如果还没有这个键 keynew_dict[data] = [employ_list[j].taboo_table[data]]# 添加除了当前员工以外的所有的员工的禁忌表到一个字典中方便计算当前员工的堵塞时间# 这一步相当于是将其他人的禁忌表整合在了一起for a_key in employ_list[i].taboo_table.keys():# 遍历当前员工的所有的键,employ_list[i].taboo_table.keys()if a_key in new_dict.keys():# 如果当前员工的键在刚刚生成的字典的键中,那么就需要判断是否会发生堵塞for time in new_dict[a_key]:  # 这里读取到的是一个列表,因此需要遍历列表中的每一个元素if (employ_list[i].taboo_table[a_key][0] >= time[0]) and (employ_list[i].taboo_table[a_key][0] < time[1]):# 如果当前对象进入该通道的时间与其他的对象发生了冲突,那么,我们就需要记录此时的等待时间,也就是说记录堵塞的时间# 这里的情况如果满足,那就是发生了冲突的employ_list[i].wait_time += time[1] - employ_list[i].taboo_table[a_key][0]# 将等待的时间加入到每一个员工的等待时间中去,# 加上一个时间差else:# 如果没有冲突employ_list[i].wait_time += 0else:# 如果当前员工的键不在刚刚生成的字典的键中,那么无论如何都是可以直接前去拣货的啦employ_list[i].wait_time += 0  # 加 0# 这一步是进行计算 i 这个员工的堵塞时间# 计算每一个员工所需要的总时间for i in range(q):"""计算总时间"""employ_list[i].compute_the_total_of_the_time()# 计算每一个员工所需要的总时间# 打印每一个员工的信息for i in range(q):"""输出信息"""print(f"第 {i + 1} 个员工的工作信息如下 : ")print()# 打印拣货信息str00 = employ_list[i].__str__()# 打印时间信息print(str00)  # 打印每一个员工的信息print()

main函数文件:

# 导入模块from execute_the_code import executeif __name__ == '__main__':"""main 函数"""# 执行代码, run the codeexecute.execute_the_code()

综上,这就是我写的一个计算拣货员拣货时间的一个代码啦。

具体的代码呢,我已经上传到了我的资源里面啦,有兴趣的可以下载下来看一看啦。

最后感谢大家阅读了啦。

Python实现拣货员拣货的时间长短分析相关推荐

  1. 仓储系统 wms 数据中心 数据员操作指南 第四节 预拨单准备 配货员安排 第二部分 出货信息表 格式设置

    1.选择一个单元格 ctrl+A 找到右边小三角形 文本转数值 2.选择表头后的整行ctrl+shift+↓ 向下全选 除了表头的数据行 设置行高 36 3.选择表头 ctrl + shift +l ...

  2. 淘宝助手 替代品!【淘宝登货员】研发中

    我是珠宝商,也是程序员,很稀有的搭配吧,嘿嘿 N年前我注册了帐号,就拿淘宝助手发商品,结果使用起来非常痛苦,放弃-. 前几天重归淘宝,再用淘宝助手发布商品,用了一天还是感觉太难用了,跟几年前没什么变化 ...

  3. 618购物节要到了,Python帮你实现商品有货的微信提醒

    时间过的真快,不知不觉一年已过了一半,又快到618购物狂欢节了,剁手党们都希望无论是618购物节还是双11购物节,都能够买到便宜又实惠的商品,但是真心实惠的东西往往是紧俏的,经常会出现无货的情况,我们 ...

  4. python 好用的库存尾货女装_女装店主:做尾货有人能赚大钱,新手千万别碰,文茵告诉你原因...

    大家好,我是时尚女装买手文茵. ---- 前面这些衣服看起来很舒服吧? 新款看起来就是更漂亮的. 最近有很多个朋友都在说,尾货的衣服价格很便宜,甚至有的衣服平均下来一两块钱就能拿到,为什么不去做这种生 ...

  5. python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  6. python浪漫代码-使用Python代码的程序员也浪漫

    原标题:使用Python代码的程序员也浪漫 代码也浪漫:用Python放一场圣诞节烟花秀! 天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花庆祝昨晚法 ...

  7. python好学吗 老程序员-使用 Python 会降低程序员的编程能力吗?

    某些情况下会降低编程能力,某些情况下会提升编程能力,要看你怎么理解"编程能力". 1.使用 Python 会降低程序员的编程能力,这个假设成立的情形 如果强行要说使用Python可 ...

  8. 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  9. 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流

    最初的步骤 Python是大小写敏感的 任何在#符号右面的内容都是注释 >>> help('print') 在"print"上使用引号,那样Python就可以理解 ...

最新文章

  1. 用Leangoo敏捷开发工具如何管理用户故事?
  2. php中 ob_start()有什么作用
  3. Linux中点号,星号,加号,问号实战
  4. java值传递string_关于java:按值传递(StringBuilder与String)
  5. Flash/Flex学习笔记(34):AS3中的自定义事件
  6. php 脚本会超时吗,PHP脚本执行超时的解决办法
  7. oracle一对多个值,Oracle一张表中实现对一个字段不同值和总值的统计(多个count)...
  8. 双系统下Mac可以这样卸载windows系统
  9. Linux注册服务(chkconfig)
  10. 灵活多变的keytool和openssl生成证书,应用tomcat和nginx
  11. 腾讯(Tencent)2022实习笔试算法题
  12. element ui表单必填_详解element-ui设置下拉选择切换必填和非必填
  13. 如何重装系统(小白系列-超详细的手把手教你-图文并茂-WIN7,8,10,XP)
  14. 一键删除qq空间说说
  15. 应付一天(今天太累)附新东方考研5500词音频
  16. token失效 判断access_微信怎么判断微信accesstoken是否过期
  17. 仿京东PC网页商品详情的放大镜效果(原理+代码)
  18. Whitelabel Error Page访问
  19. 数据库码的概念,全码的例子与范式的联系
  20. (一,1NN-QI)神经网络与深度学习——吴恩达深度学习配套笔记

热门文章

  1. MAC泛洪攻击实现简略版
  2. Angular学习(6)- 数组双向梆定+filter+directive
  3. Oanda外汇账户2012年总结
  4. 微软发布 2020 财年 Q1 财报:净利润 107 亿美元,同比增长21%,业绩超预期
  5. 百度与吉利共同研制汽车行业大模型,助力中国汽车产业“智领”全球
  6. 怦然心栋-冲刺日志(第4天)
  7. gulp 压缩html文件,gulp压缩js
  8. java调用保存好的神经网络模型
  9. POJ 1589 Unix ls
  10. RobWork框架编程(2):使用雅可比数值迭代算法对机器人进行逆运动学求解