描述
编写一个美元与人民币转换的程序,用户输入金额和汇率,美元用符号’$’表示,人民币用’¥’表示。
输入格式
第一行输入一个带货币符号的正数,数值作为金额,货币符号表明货币种类
第二行输入一个正数作为汇率
输出格式
一个带货币符号的数值(保留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!")
