+、-、* 都差不多
/:Python 和 JavaScript都会返回浮点数,ruby 返回整数
Python 的// 返回整数
运算符 | Python | Ruby | Javascript |
---|---|---|---|
整除 | // | / | Math.floor(a/b) |
除法 | / | a.to_f / b | / |
乘方 | ** | ** | ** |
# python
1 if True else 2
# 1
# ruby
true ? 1 : 2
# 1
// javascript
true ? 1 : 2
// 1
Python中的三元表达式比较特殊,没有其它语言的那样通用形式
# python
r"hello\nworld"
# ‘hello\\nworld‘
# ruby
‘hello\nworld‘
# "hello\\nworld"
python 中的‘‘和""几乎没有区别,ruby中用单引号‘‘作为原始字符串
JavaScript中‘‘和""几乎没有区别
# python
a = ‘hello‘
f‘{a} world‘
# ‘hello world‘
# ruby
a = ‘hello‘
"#{a} world"
# "hello world"
// javascript
a = ‘hello‘
`${a} world`
// "hello world"
# python
‘‘‘
hello
world
‘‘‘
# ‘\nhello\nworld\n‘
# ruby
<<-EOF
hello
world
EOF
// javascript
`hello
world`
JavaScript的模板字符串是可以任意换行的
这三者对数组的定义几乎是一样的,并且数组里面可以放不同类型的元素,数组长度可变
# python
a = [1, 2, 3]
# ruby
a = [1, 2, 3]
// javascript
a = [1, 2, 3]
# python
# a = [1, 2, 3]
a.append(4)
# [1, 2, 3, 4]
# 一次只能添加一个元素
# ruby
a.push(4, 5)
a.append(4, 5)
a << 4
// javascript
a.push(4,5)
Python 的append一次只能添加一个元素,Ruby和JavaScript一次可以添加多个元素。
# python
a = [1,2,3,4,5]
a[1:3]
# [2,3]
# ruby
a = [1,2,3,4,5]
a[1...3]
# [2,3]
a[1..3]
# [2,3,4]
a[1,3]
# [2,3,4]
# 第一个参数是起始下标,第二个参数是长度
// javascript
a = [1,2,3,4,5]
a.slice(1,3)
// [2,3]
这三个语言的数组切片都不会改变原数组,Python、JavaScript、Ruby的[start...end]比较类似,都是从起始下标到结束下标(不包含结束下标)。Ruby还有其它的切片方法。
数组方法 | python | ruby | javascript |
---|---|---|---|
添加元素 | append | push、append、<< | push |
字典合并
# python
a = {1: 1}
b = {2: 2}
{**a, **b} # 产生一个新的元素,不影响原来的元素
# {1: 1, 2: 2}
a.update(b) # a会被改变
# a == {1: 1, 2: 2}
# ruby
a = {a: 1}
b = {b: 2}
a.merge(b) # 不影响原来的元素
# {a: 1, b: 2}
a.merge!(b) # a会被改变
// javascript
a = {a: 1}
b = {b: 2}
{...a, ...b}
// {a: 1, b: 2}
# python
lambda x, y: x + y
// javascript
function(x, y){
return x + y
}
原文:https://www.cnblogs.com/cp5670681/p/14288037.html