目录
编号2265:充电能量
问题描述
小蓝有一个充电器,可以使用不同的电压和电流充电。
给定充电器工作的记录,请计算在这个记录期间总共通过充电传输了多少电能。
输入格式
输入第一行包含一个整数 nn , 表示记录的条数。
接下来 nn 行,每行包含一个时刻 TT 和两个非负整数 U,IU,I,表示在时刻 TT 充电电压变为 UU(单位伏),电流变为 II(单位 AA)。最后一行满足 UU 和 II 均为 00,在前面的行中也可能出现 UU、II 为 00 的情况。其中时间表示为 HH:MM:SS 的格式,时分秒分别用两位十进制数表示(补前导零)。
输入保证时刻依次递增且在 00:00:00 至 23:59:59 的区间内,不用考虑跨过零点充电的情况。
输出格式
输出一个整数,表示总共通电的电能为多少焦耳,其中 11 焦耳等于 11 伏乘以1 安乘以 11 秒。
样例输入
3
12:00:00 12 1
12:01:02 5 2
12:01:10 0 0
样例输出
824
题解
import os
import sys
n = int(input())
ls = []
t = 0
result = 0
for i in range(n):
T, U, I = map(str, input().split())
ls.append([T, U, I])
for i in range(n-1):
h = int(ls[i+1][0][:2]) - int(ls[i][0][:2])
m = int(ls[i+1][0][3:5]) - int(ls[i][0][3:5])
s = int(ls[i+1][0][6:]) - int(ls[i][0][6:])
t = h*60*60 + m*60 + s
result += t*int(ls[i][1])*int(ls[i][2])
print(result)
1.输入一个整数
input()无论输入什么,输入的结果都以字串类型返回,使用类型强制转换int()
2.实现一行输入并返回多个值
map(str,input().split())
map函数用法:map(function,iterable),其中,function为自定义的函数或py内置函数(如:str,int),iterable为可迭代对象( 如:列表,元祖,字符串),作用是将function应用于iterable的每一个元素,结果一律将列表形式返回整体
3.列表操作函数append()
my_list.append(x) 将x添加到my_list,x成为my_list的最后一个元素
4.计算注意事项
进行计算的数据不可以是字符,必须数值(int,float,double,,,,,,)
记得初始化变量,如题中的t、result
5.字符串的切片操作
my_str[start:end] 注意其中表示的区间[start,end)
若start留空,默认切片从索引0开始;若end留空,默认切片至最后一个字符