大数据(7b)比较Python和Scala语法

Hello world

def main():
    print('Hello Python')

main()
object Hello {
  def main(args: Array[String]): Unit = {
    println("Hello Scala")
  }
}

赋值

variate = '变量'
CONSTANT = '常量'
var variate : String = "变量"
val CONSTANT : String = "常量"

数据类型

常用数据类型说明
Any其它类的超类
AnyRef所有引用类(reference class)的基类
String字符序列
Char16位无符号Unicode字符,区间值为U+0000U+FFFF
Double双精度浮点数
Float单精度浮点数
Long64位有符号补码整数
Int32位有符号补码整数:-21474836482147483647
Short16位有符号补码整数:-3276832767
Byte8位有符号补码整数:-128127
Booleantruefalse
Unit表示无值,用在不返回结果的方法,等同Javavoid。打印显示()
Null只有一个实例null
NothingScala的类层级的最底端,是其它类的子类

类型判断和强转

# 类型判断
isinstance('abc', str)
isinstance({'b': 2}, dict)
# 类型强转
float(2)
// 类型判断
"abc".isInstanceOf[String]
Map("b"->2).isInstanceOf[Map[String,Int]]
// 类型强转
2.asInstanceOf[Float]

字符串

AGE = 18
sql = """
SELECT * FROM tb WHERE age > {age}
""".format(age=AGE)
val AGE = 18
val sql: String =
s"""
   |SELECT * FROM tb WHERE age > ${AGE}
   |""".stripMargin

正则表达式

https://blog.csdn.net/Yellow_python/article/details/114695017

import re

t = 'bird+man=bird_man 01-01 12-31'

p1 = re.compile('([0-9]+)-([0-9]+)')
p2 = re.compile('[a-z]+_[a-z]+')
p3 = re.compile(r'\W+')

print(p1.findall(t))
print(p2.sub('***', t))
print(p3.split(t))

打印结果

[('01', '01'), ('12', '31')]
bird+man=*** 01-01 12-31
['bird', 'man', 'bird_man', '01', '01', '12', '31']

import scala.util.matching.Regex

val t : String = "bird+man=bird_man 01-01 12-31"

val p1: Regex = "([0-9]+)-([0-9]+)".r
val p2: Regex = "[a-z]+_[a-z]+".r
val p3: Regex = new Regex("\\W")

println(p1.findAllIn(t).toList)
println(p2.replaceAllIn(t, "***"))
println(p3.split(t).toList)

打印结果

List(01-01, 12-31)
bird+man=*** 01-01 12-31
List(bird, man, bird_man, 01, 01, 12, 31)

方法和函数

https://yellow520.blog.csdn.net/article/details/117031129

流程控制

https://blog.csdn.net/Yellow_python/article/details/117001055

异常:try

https://yellow520.blog.csdn.net/article/details/114661078

try:
    a = 10 / 0
except ZeroDivisionError as e:
    print(e)
try {
  var a = 10 / 0
} catch {
  case e: ArithmeticException => {
    println(e)
  }
}

面向对象

https://yellow520.blog.csdn.net/article/details/112858819

附录

en🔉cn
define/dɪˈfaɪn/vt. 定义
lambda/ˈlæmdə/希腊字母的第11个: λ \lambda λ
variate/ˈverɪeɪt/变量
constant/ˈkɑːnstənt/常量
division/dɪˈvɪʒn/除法
arithmetic/əˈrɪθmətɪk/算术,算法
abstract/ˈæbstrækt/adj. 抽象的;n. 摘要
implement/ˈɪmpləˌment/vt. 实施;实现;n. 工具
implemented/ˈɪmplɪmentɪd/应用的
meta/ˈmetə/pref. 表示“变化”“变换”之义
metaclass元类
metadata元数据
ride/raɪd/v. 骑(自行车、马等)
override/ˌoʊvərˈraɪd/vt. 推翻
singleton/ˈsɪŋɡltən/单生子女;单身的人
instance/ˈɪnstəns/实例
mutable/ˈmjuːtəbl/可变的
immutable/ɪˈmjuːtəbl/不可变的
extend/ɪkˈstend/v 延伸
trait/treɪt/特性;品质
property/ˈprɑːpərti/性质;财产;所有权
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值