python和es6_Python3笔记:Python与ECMAScript部分语法对比

本文对比了Python和ES6在while循环、迭代器、yield、数组推导、删除列表元素、集合及字典等语法上的相似性和差异,并通过实例展示了各自的应用。在Python中,使用while True和break实现循环,使用生成器和迭代器处理数据;而在ES6中,类似的功能由let、while、break、for-of和Map、Set等语法完成。
摘要由CSDN通过智能技术生成

学习了ES6和Python,发现二者语法实在相识。

注:以下代码用到ES6。可用node.js环境验证。

while

ESlet i = 1;

while (true){

i ++;

if(i >10){

break

}

}

console.log(i)

Pythoni = 1

while True:

i += 1

if i > 10:

break

print(i)

迭代器

iterator

ES6let list = [1,2,3,4];

let iter = list[Symbol.iterator]();

console.log(iter.next().value);

console.log(iter.next().value);

Pythonlist = [1,2,3,4]

it = iter(list)

print(next(it))

print(next(it))

yield

ES6function * fibonacci(n){

let [a, b, counter] = [0, 1, 0];

while (true){

if (counter > n){

return

}

yield a;

[a, b] = [b, a + b];

counter += 1;

}

}

f = fibonacci(10);

while(true){

let item = f.next();

if(item.done){

break;

}

console.log(item.value);

}

Python#!/usr/bin/python3

import sys

def fibonacci(n): # 生成器函数 - 斐波那契

a, b, counter = 0, 1, 0

while True:

if (counter > n):

return

yield a

a, b = b, a + b

counter += 1

f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:

try:

print (next(f), end=" ")

except StopIteration:

sys.exit()

数组推导

Pythonvec = [2, 4, 6]

result = [[x, x**2] for x in vec]

print(result)

ES6let vec = [2, 4, 6];

let result = vec.map(arr =>{

return [arr,arr**2];

});

console.log(result);

ES7let vec = [2, 4, 6];

let result = [for(i of vec) i**2];

console.log(result);

删除列表元素

Pythonvec = [-1, 1, 66.25, 333, 333, 1234.5]

del vec[3:4]

print(vec)

ESlet vec = [-1, 1, 66.25, 333, 333, 1234.5];

vec.splice(3, 4 - 3);

console.log(vec);

集合

Pythonbasket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}

print(basket)

ES6let basket = new Set(['apple', 'orange', 'apple', 'pear', 'orange', 'banana']);

console.log(basket);

字典

Pythondict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

print(dict)

ES6let dict = new Map([['Alice','2341'], ['Beth', '9102'], ['Cecil', '3258']]);

console.log(dict);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值