第3关:基本的原油金额计算
任务描述
本关任务: 石油桶数是常见的原油数量单位。 欧佩克组织和英美等西方国家原油数量单位通常用桶来表示,中国及俄罗斯等国则常用吨作为原油数量单位。 吨和桶之间的换算关系是:1桶(bbl)=0.14吨(t) 编写程序输入原油的价格和带有单位的数量,计算并显示其需要的美元金额。输入时价格以美元/桶为单位,数量可以以桶或吨为单位,10bbl表示10桶,2t表示2吨。
相关知识
为了完成本关任务,你需要掌握:
1.字符串切片
2.分支语句
3.格式化输出format
字符串切片
字符串是一种序列类型,可以按序号访问其中的某个字符。 Python有两种符号体系。一种是第一个字符序号为0,后面的字符依次加一。还有一种是最后一个字符序号为-1,前面的字符依次减一。
可以通过字符串[序号]
形式来截取某个字符
也可以采取下列方法切片,截取其中的几个字符 <字符串>[<开始序号>:<结束序号>]
功能:截取子字符串,从<开始序号>开始直到<结束序号>结束,但不包括<结束序号>位置。
如果开始序号缺失,则从第一个字符开始截取 如果结束序号缺失,或截取到最后一个字符。
字符串采用unicode编码,一个英文字符或汉字长度均为1。
示例:
x="25t"
y="100bbl"
x[-1]
为字符串的最后一个字符t
x[:-1]
为字符串的第一个字符到最后一个字符之前的字符串,为25
y[-3:]
为字符串的最后三个字符bbl
y[:-3]
为为字符串的第一个字符到最后三个字符之前的字符串,为100
分支语句
分支语句是控制程序运行的一类重要语句,它的作用是根据判断条件选择程序执行路径
if <条件1>:
<语句块1>
elif <条件2>:
<语句块2>
...
else:
<语句块N>
当条件1为True时,执行语句块1
否则当条件2为True时,执行语句块2
若所有条件都不为True,执行语句块N
在if语句中: 条件通常是关系表达式。
==是关系运算符,比较两个表达式是否相等。当相等时返回True。
x[-1]=='t'
表示当x的最后一个字符为t时,返回True,否则返回False。
每个条件后面,有一个冒号。 同一个语句块的语句中,前面有相同的缩进。
格式化输出format()
当输出变量时,如果需要采取格式化输出方式,通过字符串.format()方法将待输出变量整理成期望输出的格式。
在下图中,字符串中的{:.2f}大括号表示一个槽位置,显示时为format内的表达式的值,:.2f(冒号点2f) 表示显示数值取两位小数。
注意:字符串和format中间有个点。
例如:
x=1.2312
print("x是{:.2f}".format(x))
显示结果为
x是1.23
测试说明
平台会对你编写的代码进行测试:
测试输入:
请输入原油价格57.09
请输入原油数量10bbl
预期输出:570.90
请输入原油价格57.09
请输入原油数量10t
预期输出:4077.86
测试输入:
请输入原油价格57.09
请输入原油数量10kg
预期输出:输入格式错误
代码:
jg= eval(input("请输入原油价格"))
sy = input("请输入原油数量")
if sy[-1] == 't':
sy = eval(sy[:-1])/0.14
result = jg * sy
print("{:.2f}".format(result))
elif sy[-2:] == "kg":
print("输入格式错误")
else:
sy = eval(sy[:-3])
result = jg * sy
print("{:.2f}".format(result))