• Python学习笔记:快递运费计算


    一、需求

    现有一个维表,包含以下字段:

    国家	货物类型	重量上限2	重量下限2	运费	挂号费
    '''
    英国	普货类	0 	2 	61	16
    英国	普货类	2 	20 	61	16
    英国	内置电池	0 	2 	83	16
    英国	内置电池	2 	20 	78	16
    德国	普货类	0 	0.4 	63	18
    德国	普货类	0.4 	2 	57	21
    德国	普货类	2 	30 	57	21
    德国	内置电池	0 	2 	72	21
    德国	内置电池	2 	30 	72	21
    法国	普货类	0 	0.4 	64	20
    法国	普货类	0.4 	2 	59	23
    法国	普货类	2 	30 	59	23
    法国	内置电池	0 	0.4 	77	20
    法国	内置电池	0.4 	2 	77	23
    法国	内置电池	2 	30 	75	23
    西班牙	普货类	0 	2 	59	18
    西班牙	普货类	2 	30 	59	18
    西班牙	内置电池	0 	2 	72	18
    西班牙	内置电池	2 	30 	76	18
    意大利	普货类	0 	2 	60	23
    意大利	普货类	2 	30 	65	23
    意大利	内置电池	0 	2 	80	23
    意大利	内置电池	2 	30 	82	23
    美国	普货类	0 	0 	94	18
    美国	普货类	0 	0 	94	18
    美国	普货类	0 	0 	94	16
    美国	普货类	0 	1 	94	16
    美国	普货类	1 	2 	94	9
    美国	普货类	2 	30 	91	9
    美国	内置电池	0 	0 	118	18
    美国	内置电池	0.1 	0 	116	18
    美国	内置电池	0.2 	0 	113	18
    美国	内置电池	0.45 	1 	113	18
    美国	内置电池	1 	2 	113	9
    美国	内置电池	2 	30 	108	9
    '''
    

    要求计算:给定国家、货物类型、重量,计算应付运费、挂号费。

    二、实操

    直接上代码!!!

    ##### 快递运费匹配 #####
    import pandas as pd
    import os
    os.chdir(r'C:\Users\111\Desktop')
    
    df = pd.read_excel('money.xlsx')
    
    def yunfei_count(country, thing_type, weight):
        is_or_not = (df['国家'] == country) & (df['货物类型'] == thing_type) & (df['重量上限2'] <= weight) & (df['重量下限2'] >= weight)
        return df.loc[is_or_not, '运费'].values[0], df.loc[is_or_not, '挂号费'].values[0]
    
    a, b = yunfei_count('意大利', '内置电池', 1)
    
    print(f'本次快递运费为:{a}\n本次快递挂号费为:{b}')
    '''
    本次快递运费为:80
    本次快递挂号费为:23
    '''
    
  • 相关阅读:
    UVA 12546 LCM Pair Sum
    两两间的距离都是整数的点集
    Codeforces 11.27
    Codeforces 11.27 B
    UVA 105
    打印自身的程序
    Interval DP
    Tree DP
    参加第五次全国工程建设行业信息化建设高峰论坛 (个人的一点感想)
    基础资料分类及清单版本管理
  • 原文地址:https://www.cnblogs.com/hider/p/15852024.html
Copyright © 2020-2023  润新知