任务描述
石油桶数是常见的原油数量单位。
欧佩克组织和英美等西方国家原油数量单位通常用桶来表示,中国及俄罗斯等国则常用吨作为原油数量单位。
吨和桶之间的换算关系是:1桶(bbl)=0.14吨(t)
编写程序输入原油的价格和带有单位的数量,计算并显示其需要的美元金额。输入时价格以美元/桶为单位,数量可以以桶或吨为单位,10bbl表示10桶,2t表示2吨。
相关知识
为了完成本关任务,你需要掌握:
1.字符串切片
2.分支语句
3.格式化输出format
字符串切片
字符串是一种序列类型,可以按序号访问其中的某个字符。
Python有两种符号体系。一种是第一个字符序号为0,后面的字符依次加一。还有一种是最后一个字符序号为-1,前面的字符依次减一。
可以通过字符串[序号]
形式来截取某个字符
也可以采取下列方法切片,截取其中的几个字符<字符串>[<开始序号>:<结束序号>]
功能:截取子字符串,从<开始序号>开始直到<结束序号>结束,但不包括<结束序号>位置。
如果开始序号缺失,则从第一个字符开始截取
如果结束序号缺失,或截取到最后一个字符。
字符串采用unicode编码,一个英文字符或汉字长度均为1。
示例:
x="25t"
y="100bbl"
x[-1]
为字符串的最后一个字符tx[:-1]
为字符串的第一个字符到最后一个字符之前的字符串,为25y[-3:]
为字符串的最后三个字符bbly[:-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= input("请输入原油价格")
sy = input("请输入原油数量")
#代码开始
if sy[-3:] == "bbl":
print("{:.2f}".format(eval(sy[:-3])*eval(jg)))
elif sy[-1] == 't':
print("{:.2f}".format(eval(sy[:-1])/0.14*eval(jg)))
else:
print("输入格式错误")
#代码结束