首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python和Scala里的控制流程

在前一篇函数定义中,提到了控制流程,那么就先来看看Python和Scala里的控制流程吧。我们知道在编程语言中最常见的控制流程就是while,if,for,就分别来看看我们应该怎么使用吧。

首先先看看while的使用:(为了简单起见,接下来都会使用Scala脚本control.scala)

Python是这么写的:

我们分析下这两个代码块的结构。

我们先变量定义var i = 1/i = 1,Scala的类型推断会将i判定为Int,i这时可以视为初始值,下一行的while语句,Scala小括号()里面的是判定终结语句,直到i lt(5),返回的也是Boolean值。

再回到while结构体中,{}里面则是主要的代码执行体,Python则是使用了换行符和缩进。结构体里面是要执行的代码块,i += 1表示i每次循环自增1。

聊完while,再看看if的使用:

Scala

Python

当然两个都有更加简单的版本

Scala

Python

在Python里,if里的表达式无需括号括起来,只要加空格并以冒号结尾。Scala的if必须用括号括起来,除非如上面例子中那样,只是单个Scala语句。

最后看看for的使用:

for在Scala和Python值得都是集合的遍历,而不是C和Java里的类似于while的for(i=0;i

先来看看Scala,Scala使用foreach和for去遍历某个集合:

在本例中,传入给foreach的是一个匿名函数i=>println(i),接受的参数为i。Scala既然是一门scalable的语言,我们还能写的更简单些:

不过只有你的匿名函数只能接受单个参数的时候才能使用。Scala里另一种for的表达式是

S是一个之前定义好的集合,值得注意的一点是:i是一个val,而不是var,虽然看上去像var,但实际上每一次的迭代都是新的值。在实际操作中对于S中的每个元素,一个新的i会被创建出来,初始化为元素的值。为了证明这点我们可以看看i是否能重新赋值:

回过头来看看Python

Python的for遍历就比较简单了,只有一个for in如下:

这里的S可以为任意一个集合,在Python2的时候,for循环的是立即计算出一个集合遍历,而在Python3发生了一个改变,就是S使用迭代器去减少内存的使用。除了常规的for循环,Python还拥有着更精简的表达式:列表推导和生成器推导,此处暂时不表。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180306G1KVON00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券