用Python计算邮资
时间: 2023-11-16 11:58:52 浏览: 141
这是一个计算邮资的Python程序,根据邮件的重量和用户是否选择加急计算邮费。如果重量在1000克以内(包括1000克),基本费用为8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算。如果用户选择加急,多收5元。程序的输入是一个整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。程序的输出是一个整数,表示邮费。
下面是Python代码实现:
s = input().split()
a = int(s)
b = str(s)
if a <= 1000:
if b == 'n':
print('8')
elif b == 'y':
print('13')
else:
if b == 'n':
print(8+((a-1000)//500 + ((a-1000)%500 != 0))*4)
if b == 'y':
print(13+((a-1000)//500 + ((a-1000)%500 != 0))*4)
相关问题
Python 计算邮资
在Python中计算邮资通常会涉及到一些规则和算法,具体步骤可能会根据不同的邮政服务提供商有所不同。例如,国际邮资可能基于重量、尺寸和目的地国家的收费标准。以下是一个简化的例子,展示如何创建一个基础的邮资计算器,假设我们有一个固定的价格表:
```python
class PostageCalculator:
def __init__(self):
self.tariffs = {
' Domestic': {'up_to_100g': 5.00, 'above_100g': 1.00 * 0.5},
' International': {'up_to_100g': 10.00, 'above_100g': 2.00 * 0.5}
} # 假设这是基础的邮费价目表
def calculate(self, weight, destination):
if destination not in self.tariffs:
print("Invalid destination")
return None
if weight <= 100: # 基于重量小于等于100g的情况
return self.tariffs[destination]['up_to_100g']
else: # 重量超过100g的部分
return self.tariffs[destination]['up_to_100g'] + (weight - 100) * self.tariffs[destination]['above_100g']
# 使用示例
calculator = PostageCalculator()
postage = calculator.calculate(150, 'International')
if postage is not None:
print(f"International postage for 150g: {postage}")
python计算邮资
python计算邮资的方法如下:
1. 首先,定义一个函数来计算最大的不可支付邮资。函数的参数是邮票的面值列表和一个目标邮资。
2. 在函数内部,使用动态规划的方法来计算最大不可支付邮资。创建一个长度为目标邮资加1的列表dp,初始值都设为False。将dp设为True,表示目标邮资为0时是可支付的。
3. 使用两层循环来更新dp列表。外层循环遍历邮票的面值列表,内层循环遍历可能的目标邮资。如果dp[j]为True,表示目标邮资j是可支付的,那么对于每个面值v,都将dp[j+v]设为True。
4. 最后,从目标邮资开始倒序遍历dp列表,找到第一个为False的值,即为最大的不可支付邮资。
下面是python代码实现:
```python
def compute_max_unpayable_postage(values, target):
dp = [False] * (target + 1)
dp[0] = True
for v in values:
for j in range(target, v - 1, -1):
if dp[j - v]:
dp[j] = True
for j in range(target, -1, -1):
if not dp[j]:
return j
values = [6, 7, 8]
target = 17
max_unpayable_postage = compute_max_unpayable_postage(values, target)
print("最大的不可支付邮资是", max_unpayable_postage, "角。")
```
阅读全文