Python 및 JavaScript의 등가물.제3부분
17692 단어 basicspythonintermediatejavascript
이것은 Python과 JavaScript의 유비에 관한 4편의 문장 시리즈의 세 번째 부분이다.에서 우리는 대부분의 전통적인 Python 2.7과 ECMAScript 5 표준을 바탕으로 하는 자바스크립트를 소개했다.이번에 우리는 Python 3.6과 ECMAScript 6 표준을 바탕으로 하는 자바스크립트를 연구하기 시작할 것이다.ECMAScript 6 표준은 최신 버전의 브라우저만 지원합니다.이전 브라우저의 경우 Babel 차세대 JavaScript 코드를 브라우저 간에 호환되는 등가 코드로 컴파일해야 합니다.그것은 이렇게 많은 재미있는 사물을 탐색하기 위해 문을 열었다.문자열 삽입값, 패키지 해제 목록, lambda 함수, 인덱스 교체, 생성기, 집합부터 시작합니다!
문자열의 변수
변수 값을 사용하여 문자열의 오래되고 비효율적인 연결을 만드는 방법은 다음과 같습니다.
name = 'World'
value = 'Hello, ' + name + '!\nWelcome!'
이것은 매우 희소하고 읽기 어려워질 수도 있다.그 밖에 변수 주위의 문장에서 빈칸이 빠지기 쉽다.Python 버전 3.6과 JavaScript는 ECMAScript 6 표준을 기반으로 하기 때문에 이른바 문자열 삽입값을 사용할 수 있습니다.이것은 변수의 값으로 채워진 문자열 템플릿입니다.
Python에서도 f 문자열이라고 합니다. 기호는 "f"로 시작하기 때문입니다.
name = 'World'
value = f"""Hello, {name}!
Welcome!"""
price = 14.9
value = f'Price: {price:.2f} €' # 'Price: 14.90 €'
JavaScript 문자열 템플릿에서 다음 반전 기호로 시작하고 종료합니다.name = 'World';
value = `Hello, ${name}!
Welcome!`;
price = 14.9;
value = `Price ${price.toFixed(2)} €`; // 'Price: 14.90 €'
문자열 템플릿은 한 줄일 수도 있고 여러 줄일 수도 있습니다.Python의 f 문자열은 변수의 형식을 전달할 수 있지만, 속성과 getter 방법이 아니면 변수를 호출할 수 없습니다.포장 해제 명세서
Python과 현재의 JavaScript는 하나의 재미있는 특성을 가지고 있으며, 서열 항목을 단독 변수에 분배할 수 있다.예를 들어, 다음 구문을 사용하여 목록의 세 값을 변수 a, b, c로 읽을 수 있습니다.
[a, b, c] = [1, 2, 3]
메타그룹의 경우 괄호를 생략할 수 있습니다.다음은 Python에서 두 변수 값을 교환하는 일반적인 방법입니다.a = 1
b = 2
a, b = b, a # swap values
다음 세대 JavaScript를 사용하여 다음을 수행할 수 있습니다.a = 1;
b = 2;
[a, b] = [b, a]; // swap values
Python 3.6에서 목록이나 메타그룹에 알 수 없는 수량의 항목이 있으면 여러 값의 메타그룹에 할당할 수 있으며 나머지 패키지는 목록에 포함할 수 있습니다.first, second, *the_rest = [1, 2, 3, 4]
# first == 1
# second == 2
# the_rest == [3, 4]
또한 ECMAScript 6를 통해 다음을 수행할 수 있습니다.[first, second, ...the_rest] = [1, 2, 3, 4];
// first === 1
// last === 2
// the_rest === [3, 4]
익명 함수
Python과 JavaScript는 한 줄에 함수를 만들 수 있는 매우 간결한 기능을 가지고 있습니다.이 함수들을lambdas라고 부른다.lambda는 하나의 매개 변수를 받아들이고 계산 값을 되돌려주는 매우 간단한 함수입니다.함수를 다른 함수에 리셋하거나 작업 시퀀스에 있는 모든 단독 요소의 함수로 전달해야 할 때 lambda를 사용합니다.
Python에서는 다음과 같이 키워드를 사용하여 lambda를 정의할 수 있습니다.
sum = lambda x, y: x + y
square = lambda x: x ** 2
JavaScript에서 lambda는 lambda
기호를 사용합니다.매개변수가 여러 개 있는 경우 괄호 안에 있어야 합니다.sum = (x, y) => x + y;
square = x => Math.pow(x, 2);
인덱스 교체 없음
많은 프로그래밍 언어들은 색인을 사용하고 값을 늘려서 서열을 교체할 수 있습니다.그런 다음 특정 위치에서 항목을 가져오려면 배열에서 항목을 읽을 수 있습니다. 예를 들어 다음과 같습니다.
for (i=0; i<items.length; i++) {
console.log(items[i]);
}
이것은 아주 좋은 문법이 아니며, 기술성이 매우 강하다. 그것은 읽기에 부자연스럽다.우리가 진정으로 원하는 것은 목록에서 모든 값을 얻는 것뿐이다.Python은 다음 요소만 교체할 수 있는 좋은 가능성을 가지고 있습니다.for item in ['A', 'B', 'C']:
print(item)
또한 현대 JavaScript에서는 =>
연산자를 사용하여 다음을 수행할 수 있습니다.for (let item of ['A', 'B', 'C']) {
console.log(item);
}
Python에서 문자열을 교체할 수도 있습니다.for character in 'ABC':
print(character)
현대 JavaScript에서:for (let character of 'ABC') {
console.log(character);
}
발전기
Python과 현대 JavaScript는 특수한 함수를 정의할 수 있으며, 이 함수를 통해 교체할 수 있습니다.매번 교체할 때, 그것들은 시퀀스의 다음 생성 값을 되돌려줍니다.이 함수들을 생성기라고 부른다.생성기를 사용하면 범위 내의 숫자, 파일의 줄, 서로 다른 페이지 API에서 호출된 데이터, 그리고 다른 동적 생성 시퀀스를 얻을 수 있습니다.
기술적으로 말하자면, 생성기는 정상 함수와 유사하지만, 그것들은 반환값이 아니라 생성값이다.이 값은 한 번의 교체에서 되돌아옵니다.함수가 끝나기만 하면 이 세대는 발생할 것이다.
이 점을 설명하기 위해 아래의 Python 코드는 생성기
for..of
를 만들고 주어진 숫자를 1(예를 들어 10, 9, 8,..., 1)에게 되돌려줍니다.def countdown(counter):
while counter > 0:
yield counter
counter -= 1
for counter in countdown(10):
print(counter)
현대 JavaScript에서는 동일한 효과를 구현할 수 있지만 countdown()
문장의 별표를 참고하십시오.생성기라고 정의합니다.function* countdown(counter) {
while (counter > 0) {
yield counter;
counter--;
}
}
for (let counter of countdown(10)) {
console.log(counter);
}
집합
우리는 이미 목록, 원조, 수조를 보았다.하지만 여기에는 또 다른 유형의 데이터 집합이 있다.집합은 모든 원소가 한 번만 존재하는 원소 그룹이다.집합론도 집합 연산을 규정했다. 예를 들어 union, intersection, and difference 그러나 우리는 오늘 그것들을 토론하지 않는다.
이것은 집합을 만들고 그 안에 요소를 추가하는 방법입니다. 값이 존재하는지 확인하고, 집합 중의 요소의 총량을 확인하고, 그 값을 교체하고, Python을 사용하여 값을 삭제합니다.
s = set(['A'])
s.add('B'); s.add('C')
'A' in s
len(s) == 3
for elem in s:
print(elem)
s.remove('C')
다음은 현대 JavaScript에서 동일한 효과를 구현하는 방법입니다.s = new Set(['A']);
s.add('B').add('C');
s.has('A') === true;
s.size === 3;
for (let elem of s.values()) {
console.log(elem);
}
s.delete('C')
배달
✨✨✨ Get the Ultimate Cheat Sheet of
Equivalents in Python and JavaScript
✨✨✨
이 시리즈의 두 번째 부분에서 우리는 함수 매개 변수, 클래스, 계승과 속성을 이해할 것이다.기대해주세요!
표지 사진 작성자Alex Knight
Reference
이 문제에 관하여(Python 및 JavaScript의 등가물.제3부분), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/djangotricks/equivalents-in-python-and-javascript-part-3-4icc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)