描述

编写一个美元与人民币转换的程序,用户输入金额和汇率,美元用符号’$’表示,人民币用’¥’表示。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入格式

第一行输入一个带货币符号的正数,数值作为金额,货币符号表明货币种类‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第二行输入一个正数作为汇率‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出格式

一个带货币符号的数值(保留2位小数)或Data error!‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入输出示例

输入 输出
示例 1 58$
6.75‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
100¥
6.85‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
58
6.75‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
391.50¥‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
14.60$‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
Data error!‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

第一行的输入为一个字符串,最后一位应为’$’或’¥’,最后一位不是货币符号时“Data error!‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬”。去掉最后一位后应该可以转为一个浮点数。
第二行为一个正数可用float(input()) 转为可计算的浮点数。

  1. 输入带货币符号的金额money
  2. 输入汇率,转浮点数
  3. 如果money末位money[-1] 不存在于 ‘¥$’中时:
    1. 输出”Data error!”
  4. 否则:
    1. 如果末位是’$’:
      1. 利用美元转人民币公式计算
      2. 设转换后的货币符号为 ‘¥’
    2. 否则:
      1. 利用人民币转美元公式计算
      2. 设转换后的货币符号为’$’

下面用两个二分支实现,外层的两个分支下各有一个输出语句,内层的分支下只对两个变量进行重赋值,在外层的分支下统一输出。

  1. money = input()
  2. rate = float(input()) # 输入汇率,转浮点数
  3. if (money[-1] not in '¥$') or rate <= 0: # 末位不是货币符号时,输出"Data error!"
  4. print("Data error!")
  5. else:
  6. if money[-1] == '$': # 根据末位货币符号调用不同公式进行计算,并确定转换后的货币符号
  7. change = rate * float(money[0:-1])
  8. sign = '¥'
  9. else:
  10. change = float(money[0:-1]) / rate # 计算兑换金额
  11. sign = '$'
  12. print("{:.2f}{}".format(change,sign))

利用if…elif…else实现,因三个分支互斥,每次只能进入一个分支,所以每个分支下都要有自己的输出语句。

  1. money = input()
  2. rate = float(input()) # 输入汇率,转浮点数
  3. if (money[-1] not in '¥$') or rate <= 0: # 末位不是货币符号时,输出"Data error!"
  4. print("Data error!")
  5. elif money[-1] == '$': # 根据末位货币符号调用不同公式进行计算,并确定转换后的货币符号
  6. change = rate * float(money[0:-1])
  7. sign = '¥'
  8. print("{:.2f}{}".format(change,sign))
  9. else:
  10. change = float(money[0:-1]) / rate # 计算兑换金额
  11. sign = '$'
  12. print("{:.2f}{}".format(change,sign))

利用条件运算时,可将计算公式和货币符号做为一个元组,实现同步赋值。

  1. money = input()
  2. rate = float(input()) # 输入汇率,转浮点数
  3. if money[-1] in '¥$' and rate > 0: # 当最后一位为'¥'时
  4. change,sign = (rate * float(money[0:-1]),'¥') if money[-1] == '$' else (float(money[0:-1]) / rate,'$') # 计算兑换金额
  5. print("{:.2f}{}".format(change,sign))
  6. else:
  7. print("Data error!")