предисловие
«Как избавиться от дилеммы постоянного вырезания картинок?»
Это не тревожная статья, а полная искренних советов.PythonРекламный текст.
Когда дело доходит до вводных языков программирования, большинство рекомендуетPythonа такжеJavaScript.
На самом деле оба языка очень мощные во всех отношениях.
И теперь мы знаемES6Язык, много грамматики заимствованоPythonиз.
Есть поговорка, что«То, что можно реализовать с помощью js, в конце концов будет реализовано с помощью js».
Итак, здесь мы можем сказать:«Может следоватьpythonПохоже, в конечном итоге, какpython. "
1. Pythonа такжеES6грамматические различия
1. Основные типы
Стоит отметить, что хотя оба являются динамическими типами,pythonТипы не конвертируются автоматически при подключении.
// JavaScript
let coerced = 1;
let concatenated = coerced + 'string';
// Python
not_coerced = 1
concatenated = not_coerced + 'string'
Ошибка напрямую:TypeError: cannot concatenate 'str' and 'int' objects
только впередnumПреобразование в строковый тип для правильной работы
# Python
not_coerced = 1
concatenated = str(not_coerced) + 'string'
2. Functions ormethods?
существуетJavaScriptа такжеPython, структура функций и условий очень похожа. Например:
// JavaScript
function drSeuss(catInTheHat, thing1, thing2) {
if (catInTheHat == true &&
thing1 == true &&
thing2 == true) {
console.log('is cray');
} else if (catInTheHat != true) {
console.log('boring');
} else {
console.log('so boring');
}
}
# Python
def dr_seuss(cat_in_the_hat, thing1, thing2):
if cat_in_the_hat == True and
thing2 == True and
thing2 == True:
print 'is cray'
elif cat_in_the_hat != True:
print 'boring'
else:
print 'so boring'
но вJavaScriptсередина,"methodsРазговорное определение ' относится к методам, встроенным в спецификацию языка, таким как:Function.prototype.apply().
существуетMDNИ тому, и другому есть объяснение:
В большинстве случаевFunctionsа такжеmethodsТо же самое, но с двумя основными отличиями:
-
methodsможет быть неявно передан вызывающей стороне, котораяmethodsна объекте. -
methodsУмение работать с данными, содержащимися в классе.
Но гусь, вJavaScript, «класс» — это просто синтаксический сахар, мы сравним его позже.
3. Строки шаблона
в строке шаблона,JavaScriptбыл впередиpythonиз.
// JavaScript
let exclamation = 'Whoa!';
let sentence = `They are really similar to Python.`;
console.log(`Template Literals: ${exclamation} ${sentence}`);
# python
print '打印: {} {}'.format('Whoa.', 'Quite!')
# 打印: Yup. Quite!
{}выступает в качестве заполнителя.
Эта грамматика неоднократно подвергалась критике, поэтому вPython3.6В версии предусмотрен другой синтаксис форматирования строк —f-strings.
Прямое сравнение:
name = "Tom"
age = 3
print(f"他叫 {name}, {age} 岁")
# "他叫Tom, 3 岁"
4. Значение параметра по умолчанию
JavaScriptИдеальное «обучение» сноваPython:
// JavaScript
function nom(food="ice cream") {
console.log(`Time to eat ${food}`);
}
nom();// Time to eat ice cream
# Python
def nom(food="ice cream"):
print 'Time to eat {}'.format(food)
nom() # Time to eat ice cream
5. Остальные параметры и* args
RestСинтаксис параметров позволяет нам выразить неопределенное количество параметров в виде массива и передать его в функцию.
- существует
Python, они называются* args - существует
JavaScriptсередина...xxxпредставлены как остальные параметры.
// JavaScript
function joke(question, ...phrases) {
console.log(question);
for (let i = 0; i > phrases.length; i++) {
console.log(phrases[i]);
}
}
let es6Joke = "Why does JS single out one parameter?"
joke(es6Joke, "Because it doesn't", 'really like', 'all the REST of them!');
// Why does JS single out one parameter?
// Because it doesn't
// really like
// all the REST of them!
# Python
def pirate_joke(question, *args):
print question
for arg in args:
print arg
python_joke = "What's a Pyrate's favorite parameter?"
pirate_joke(python_joke, "*args!", "*arrgs!", "*arrrgs!")
# What's a Pyrate's favorite parameter?
# *args!
# *arrgs!
# *arrrgs!
6. Classes:Добрый
Как мы все знаем,ES6Классы на самом деле являются синтаксическим сахаром.PythonИмеет встроенные классы для быстрого и простого объектно-ориентированного программирования.
а такжеJavaScriptНаследование цепочки прототипов является обязательным для каждого внешнего интерфейса.
// JavaScript
class Mammal {
constructor() {
this.neocortex = true;
}
}
class Cat extends Mammal {
constructor(name, years) {
super();
this.name = name;
this.years = years;
}
eat(food) {
console.log('nom ' + food);
}
}
# Python
class Mammal(object):
neo_cortex = True
class Cat(Mammal):
def __init__(self, name, years):
self.name = name
self.years = years
def eat(food):
print 'nom %s' % (food)
fry_cat = Cat('Fry', 7)
fry_cat.eat('steak')
Честно говоря,Pythonнаписано изящнее. . .
7. Modules and import: модуль
ES6Язык модуля заимствован изpython, но превосходит его.
Между ними есть некоторые различия:
-
JavaScriptИмпорт статичен;Pythonявляется динамическим. -
JavaScriptМодули должны быть экспортированы явно. существуетPython, все модули можно импортировать. -
JavaScriptИмеет концепцию экспорта по умолчанию.Pythonнет.
# python
import mymodule
mymodule.myfunc()
// javascript
import * as myalias from "./mymodule";
myalias.myfunc();
1. Импорт подмодулей
существуетjavascript, мы хотим импортировать подмодули и напрямую деконструировать назначение.
// javascript
import { myvar, myfunc } from "./mymodule";
console.log(myvar);
myfunc();
пока вpython, который имеет противоположную семантику:
# python
from mymodule import myvar, myfunc
print myvar
myfunc()
2. Экспортировать пустую функцию
Как экспортировать пустую функцию,pythonнужно использовать"pass«Ключевые слова занимают место, чтобы избежать ошибок при запуске.
мой модуль.py:
# python
def myfunc(): pass
// javascript
export function myfunc() {}
Более подробные сравнения см. здесь:Modules and import in ES6 for Python developers
2. Как интерфейс обучается изящноPython?
Много передних парPythonЭнтузиазм начинается с любопытства и заканчивается застоем.
Существует технический разрыв между фактическим развитием и развитием, и никто не руководствуется и направляет его. Я не знаю, что может сделать текущий уровень? В таком круге сомнений навыки программирования являются застойными, а ползание является одним из лучших направлений продвижения.
поисковый роботPythonБолее часто используемая сцена на международном уровне,googleшироко использовались в началеPythonЯвляясь основой поискового робота, язык управляет всем.PythonРазработка языковых приложений.
Что касается моего личного развития, я также настоятельно рекомендую использовать краулер в качестве входа в приложение по нескольким причинам:
- Рептилии направлены на
web页面Своего рода прикладная технология, передняя часть может безболезненно соединить много знаний. - Первым шагом сканера является получение исходного кода страницы, а затем выполнение извлечения информации. из которых для
domeузлаclass/idВыбирайте, переднюю часть заново учить не нужно.
- Виртуальный вход в сканер и
Selenium, что может улучшить понимание интерфейсом автоматизированного тестирования. - Окончательная форма краулера — это поисковая система, в которой
SEOЭто момент, на который должен обратить внимание каждый фронтенд. - В процессе понимания сканеров поисковых систем внешний интерфейс может понять рендеринг на стороне сервера.
SSRи одностраничные приложенияCSRразличные эффекты.
Краулер делится на два направления: ориентированный на страницы и ориентированный на интерфейс.
- Если смотреть на страницу, передняя часть, естественно, знакома.
- Для интерфейса вам нужно знать, как использовать программное обеспечение для захвата пакетов (
Fiddler/Charles). - В процессе можно освоить навык — захват пакетов. не смотри больше
NetworkГлупо обновился.
Начали с краулеров, но больше, чем краулеры:
Crawler -> Очистка данных -> Работа с базой данных -> Очистка данных -> Интеллектуальный анализ данных -> Анализ данных...
Спускаясь по этой цепочке, можно почерпнуть много знаний:
ScrapyРамка рептилии,RedisРаспределенная транзакция, обработка данныхPandas, анализ естественного языкаNLP, полную визуализацию данных и многое другое...
Что касается обсуждения языка, я полностью согласен со словами г-на Ли Бина:
3. Пан Шии учитсяPython
Итак, я построил другой подходящий для просмотра на переднем углу.pythonНет публики.
Не медлите, приходите и поиграйте с учителем убеждения. ~
Труба - учитель убеждения Python (будет обновляться последовательно)4. Постскриптум и цитата
❤️ После прочтения трех вещей
Если вы найдете этот контент вдохновляющим, я хотел бы пригласить вас сделать мне три небольших одолжения:
- Ставьте лайк, чтобы больше людей увидело этот контент
- Обратите внимание на паблик «Учитель фронтенд-убеждения», и время от времени делитесь оригинальными знаниями.
- Также смотрите другие статьи
- Расширенное руководство по отладке Chrome Devtools (новое)
- Вспомогательные функции JavaScript (новинка)
- «React Hooks» 120 строк кода для реализации полного интерактивного компонента загрузки с помощью перетаскивания.
- «React Hooks» 160 строк кода для создания динамичных и крутых визуальных диаграмм - Ищут программиста
GitHubПолучите исходные файлы всех статей в блоге:
Руководство по убеждению:GitHub.com/Roger-Hi RO/…