描述
编写一个美元与人民币转换的程序,用户输入金额和汇率,美元用符号’$’表示,人民币用’¥’表示。
输入格式
第一行输入一个带货币符号的正数,数值作为金额,货币符号表明货币种类
第二行输入一个正数作为汇率
输出格式
一个带货币符号的数值(保留2位小数)或Data error!
输入输出示例
输入 | 输出 | |
---|---|---|
示例 1 | 58$ 6.75 100¥ 6.85 58 6.75 |
391.50¥ 14.60$ Data error! |
第一行的输入为一个字符串,最后一位应为’$’或’¥’,最后一位不是货币符号时“Data error!”。去掉最后一位后应该可以转为一个浮点数。
第二行为一个正数可用float(input()) 转为可计算的浮点数。
- 输入带货币符号的金额money
- 输入汇率,转浮点数
- 如果money末位money[-1] 不存在于 ‘¥$’中时:
- 输出”Data error!”
- 否则:
- 如果末位是’$’:
- 利用美元转人民币公式计算
- 设转换后的货币符号为 ‘¥’
- 否则:
- 利用人民币转美元公式计算
- 设转换后的货币符号为’$’
- 如果末位是’$’:
下面用两个二分支实现,外层的两个分支下各有一个输出语句,内层的分支下只对两个变量进行重赋值,在外层的分支下统一输出。
money = input()
rate = float(input()) # 输入汇率,转浮点数
if (money[-1] not in '¥$') or rate <= 0: # 末位不是货币符号时,输出"Data error!"
print("Data error!")
else:
if money[-1] == '$': # 根据末位货币符号调用不同公式进行计算,并确定转换后的货币符号
change = rate * float(money[0:-1])
sign = '¥'
else:
change = float(money[0:-1]) / rate # 计算兑换金额
sign = '$'
print("{:.2f}{}".format(change,sign))
利用if…elif…else实现,因三个分支互斥,每次只能进入一个分支,所以每个分支下都要有自己的输出语句。
money = input()
rate = float(input()) # 输入汇率,转浮点数
if (money[-1] not in '¥$') or rate <= 0: # 末位不是货币符号时,输出"Data error!"
print("Data error!")
elif money[-1] == '$': # 根据末位货币符号调用不同公式进行计算,并确定转换后的货币符号
change = rate * float(money[0:-1])
sign = '¥'
print("{:.2f}{}".format(change,sign))
else:
change = float(money[0:-1]) / rate # 计算兑换金额
sign = '$'
print("{:.2f}{}".format(change,sign))
利用条件运算时,可将计算公式和货币符号做为一个元组,实现同步赋值。
money = input()
rate = float(input()) # 输入汇率,转浮点数
if money[-1] in '¥$' and rate > 0: # 当最后一位为'¥'时
change,sign = (rate * float(money[0:-1]),'¥') if money[-1] == '$' else (float(money[0:-1]) / rate,'$') # 计算兑换金额
print("{:.2f}{}".format(change,sign))
else:
print("Data error!")