汇率兑换/汇率兑换(3)

去社区提问

简介:今天给汇率兑换小程序增加新功能~使它能够自动完成输入货币种类的判断,并计算得到结果。

案例描述

欢迎来到今天的课堂~

上节课我们学习了一些Python的基本语法,接下来就可以利用这些简单的知识,实现更多功能,继续完善汇率兑换小程序,使它变得更加智能。

之前的程序只能实现人民币到美元的金额转换,今天就来升级一下,看看下一步可以实现的功能:

  • 设计一个汇率换算器程序,功能是将外币换算成人民币,或者相反
  • 为了使程序简单,目前只考虑一种外币(美元)
  • 增加功能:根据输入判断是人民币还是美元,进行相应的转换操作
案例分析

不管多么简单的问题,都需要下面一个分析的思路流程,能帮助我们在写程序时有更加清晰的思路,日后处理复杂问题时也能更好地应对。

我们依然把今天的问题划分为:输入、计算和输出三个部分,再分别对它们作详细分析。

与上节课不同,我们现在要输入的是带单位的货币金额,这节课就先来攻克这道难题,后面的判断操作留到下节课解决。

又来到了每天的敲代码时间,我们为你准备了新手训练场,不需要自己动手安装,可以直接练习,记得找班主任老师领取~

首先我们依然需要确定汇率:

  1. #汇率
  2. usd_vs_rmb=6.70

接下来就要进行和计算机的沟通,把带单位的金额传递给计算机了。

还记得之前我们反复强调,利用input()输入的数据都是字符串类型,需要经过eval()转换为数字。

本节课输入的是带单位的金额,类似’100CNY’的形式,直接用eval('100CNY')看起来好像行不通,需要把输入的数据分割为金额(100)+单位(CNY)两部分。货币单位用来判断货币类型,金额用来做数学计算。

我们可以轻松地发现,不论输入美元(USD)还是人民币(CNY),单位都是字符串的后三位,想办法取出后三位,就能判断输入的货币种类。

如何取出输入的后三位?这里涉及到字符串的操作,下面就进入本节课的重点内容,敲黑板认真听讲啦~

字符串

定义和表示方法

字符串是用一对单引号''或双引号""括起来的字符,例如’小明’,”今天是周一”。文本内容在程序中通过字符串(string)来表示。

索引/访问方式

字符串中有很多的字符,如何对字符串的内容进行访问呢?

字符串的访问也叫字符串的索引,索引有两种方式:正向索引和反向索引

我们首先来学习正向索引。

比如说现在有一个字符串’PYTHON’

当一个字符串出现时,Python会给字符串的每个位置编号。但是!这里要提醒你:编号都是从0开始。

从上图中可以看到字符和索引值的对应关系,比如这个例子中P对应0,Y对应1,有了编号,想拿到某一个字符就变得非常简单。

先来把字符串存储在变量中:

  1. s = 'PYTHON'

变量名[索引编号],就可以获取指定位置的字符,例如获取字符’Y’就可以写成s[1]

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[1])

终端区

把编号放在方括号内,再来打印字母O试试:

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[4])

终端区

除了这种方法外,我们也可以从后往前数,这时编号就要从-1开始。

现在你应该能发现,对同一个字符串内字符的访问应该有两种方式,例如我们对字母T进行访问,就可以分别利用它的正反索引值:

但无论是正向还是反向索引,都只能拿到单个字符,还不能满足我们的情况。我们需要的是子字符串,也就是从原本字符串中取出的一部分内容,而不是单个字符。

为了解决这个困扰,就要用到下面的区间索引

区间索引

对字符串的区间索引需要设置左边界和右边界,中间用冒号连接起来[A:B]

假如要取出PYT三个字符,左边界是0,右边界的取值又是一个需要格外注意的地方。[A:B]中,可以取到A的值,但取不到B的值,因此想要获得PYT三个字符,右边界就需要在字符T的索引值上加一,写成[0:3]

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[0:3])

终端区

如果觉得这样不太容易记忆的话,可以尝试另一个方法,就是[A:B]中,输出的字符串长度=B-A的值。例如现在需要拿到YT两个字符,请你先来思考左右边界值分别应该是多少。

Y的索引值是1,确定左边界是1,一共2个字符,长度为2,根据前面讲过的输出字符串长度=B-A,右边界的数值就该是1+2=3,下面我们打印结果检验一下:

你答对了吗~

当开始值是0时,可以省略不写:

代码练习:

编程区

  1. s ='PYTHON'
  2. print(s[0:3])
  3. print(s[:3])

终端区

类似的,我们也可以进行反向区间索引,假设同样取出字符串PYT。

P的反向索引值是-6,左边界就应该取-6;T的反向索引值是-4,右边界就应该是-3:

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[-6:-3])

终端区

有时候我们会碰到需要从末尾取字符串的情况,假设要取出末尾的HON,H的反向索引是-3,字符串的最后一位索引值是-1,请你思考这样能否达到目的呢?

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[-3:-1])

终端区

计算B-A,得到2,只能得到长度为2的字符串,从打印结果也能看出,最后一个字母没有取到。那是不是就没办法得到字符串中的最后一位了呢?

刚才说过,从开头一位开始取,数字0可以省略,同样的,想要取到最后一位字符,也可以把结尾的-1省略:

代码练习:

编程区

  1. s = 'PYTHON'
  2. print(s[-3:])

终端区

这样就成功取到了字符串的最后三位。

现在我们重新给变量s赋值,使它变成’100CNY’,用反向索引取出字符串中的单位信息:

代码练习:

编程区

  1. s = '100CNY'
  2. print(s[-3:])

终端区

同理当变量是’100USD’时,也能用这样的方法从字符串中得到单位。

下面来总结一下字符串有关知识点:

有了上面知识的铺垫,可以帮助我们继续进行汇率兑换功能的完善啦~

还是需要输入金额,不过这次的提示语应该做一下更改:

  1. #汇率
  2. usd_vs_rmb = 6.70
  3. #带单位的货币输入
  4. currency_str_value = input('请输入带单位的货币金额:')

接收到从键盘上输入的金额后,我们首先取出字符串的最后三位,再打印出来查看一下:

  1. #汇率
  2. usd_vs_rmb = 6.70
  3. #带单位的货币输入
  4. currency_str_value = input('请输入带单位的货币金额:')
  5. #获取货币单位
  6. unit = currency_str_value[-3:]
  7. print(unit)

到这里就成功完成了货币单位的分离任务,撒花庆祝~

本关总结

一起来总结一下本节课的重点内容,今天我们主要学习了字符串的相关操作。

  • 表示

用一对双引号或单引号括起来表示

  • 索引/访问

正向索引
反向索引

  • 区间索引

[A:B]

从位置A到位置B的部分字符串,且不包含位置B

下节预告

针对人民币和美元两种输入,需要执行不同操作,如何在Python中实现分支结构,得到正确的汇率兑换结果,下节课和我一起来研究吧~

后续精彩内容:

自动合并Excel文件

批量生成邀请函,自动发送邮件

数据分析实操项目

爬虫案例
……

想要获取课程资料,与更多小伙伴交流学习,记得添加班主任老师的微信哦。

扫描二维码添加班主任微信

已经添加过班主任的同学,可以直接联系对应老师,无需重复添加哦。

汇率兑换 1/3

汇率兑换(3)

1.0x

恭喜完成本课时的学习!
坚持学习

行动力超过

累计学习

学习下一课时