為什麼建議前端將 Python 作為第二語言?

2021-03-02 小黑格子屋
「如何擺脫不停切圖的困局?」這不是一篇製造焦慮的文章,而是充滿真誠建議的Python推廣文。當談論到編程入門語言時,大多數都會推薦Python和JavaScript。實際上,兩種語言在方方面面都非常強大。而如今我們熟知的ES6語言,很多語法都是借鑑Python的。有一種說法是 「能用 js 實現的,最後一定都會用 js 實現。」那麼這裡可以說:「能跟python長得像的,最後一定會像python。」


1) 基本類型
值得注意的是,儘管兩者都是弱類型,但python連接時並不會自動轉換類型。

// JavaScriptlet coerced = 1;let concatenated = coerced + 'string';

// Python
not_coerced = 1
concatenated = not_coerced + 'string'

直接報錯:TypeError: cannot concatenate 'str' and 'int' objects

# 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()。在大多數方面,Functions和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)其餘參數和* argsRest參數語法,使我們可以將不定數量的參數表示為數組,傳入函數中。在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比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網絡爬蟲的基礎,帶動了整個Python語言的應用發展。就我個人發展而已,我也十分推薦以爬蟲為應用入門,原因有幾項:爬蟲是針對web頁面的一種應用技術,前端可以無痛銜接很多知識。爬蟲的第一步是獲取頁面源碼,然後做信息抽取。其中針對dome節點的class/id選擇,前端無需再度學習。爬蟲中的虛擬登錄及Selenium,可以提升前端對於自動化測試的理解。爬蟲的最終形態是搜尋引擎,當中的SEO是每個前端都需要關注的點兒。在了解搜尋引擎爬蟲的過程中,前端可以搞清楚服務端渲染SSR和單頁應用CSR的不同作用。面向接口,需要了解到如何用抓包軟體(Fiddler/Charles)。在這過程中,又能學會一項技能 - 抓包。以後不用再看著Network傻傻刷新了。爬蟲—> 數據清洗> 資料庫操作 > 數據清洗 > 數據挖掘 > 數據分析 ...Scrapy爬蟲框架,Redis分布式事務,數據處理Pandas,自然語言分析NLP,完整實現數據可視化等等....

 可樂記得加冰,愛我就要置頂 

相關焦點

  • python自學 第二章 python語言基礎之語法特點(注釋、代碼縮進、編碼規範)
    1、單行注釋在python中,使用「#」作為單行注釋的符合,從「#」開始直到換行為止。語法格式:2、多行注釋在python中,並沒有一個單獨的多行注釋標記,而是將包含在一對三引號(』』』...』』』)或者(」」」..」」」)之間,並且不屬於任何語句的內容都可視為注釋,這樣的代碼將被解釋器忽略。由於這樣的代碼可以分為多行編寫,所以也成為多行注釋。
  • 為什麼我不建議你搞Python
    對於Python這麼語言,可以當作一門興趣或愛好來學習,但是若是想找到份好的工作還是謹慎為主,這也是為什麼不建議你搞Python的原因。Python學習熱 VS Python就業市場廣闊Python流行起來實話說是意料之中的事情,只是沒有想到它是那麼的快。
  • 自學程式語言先學Java還是python?記住這5點你就不會迷茫
    選擇編程有語言有5點必須知道的分為:web前端開發、大數據開發和Java後端開發、嵌入式開發、機器學習等。web前端開發:如果你想做web前端開發,那麼你的首選語言就是JavaScript然後再到HTML、CSS、Ajax、了解HTTP最後前端框架vue框架,就你首先學習的框架,比較簡單,容易上手。
  • 為什麼入門大數據選擇Python而不是Java?
    如果你想學一門語言,可以從語言的適用性、學習的難易程度、企業主的要求幾個方面考慮,從這幾個角度看,學習Python都沒有什麼可挑剔的。從語言的適用性看,Python有個外號叫「膠水語言」,就是說Python可以隨意地組合它和其它程序,它可以作為一個中間處理模塊的代碼把其他代碼「粘合」在一個工程裡面,從而快速的部署和實施。
  • java、python、PHP、前端,零基礎學哪個?
    零基礎應該選擇學習 java、php、前端還是 python?我想大部分剛入行的小夥伴們都會遇到類似於這樣的煩惱?想學一門語言,但又不知道選哪個?其實選擇一門程式語言無外乎要考慮幾個因素:行業趨勢、就業前景、就業薪資等。
  • Python—程序語言入門
    ;黑客hacker(遠程攻擊計算機、破解硬體or軟體);發明變形金剛(2006年日本FANUC推出的人工智慧機器人);學習其他語言的基礎(所有程序語言都有共同性,學好python能夠讓你快人一步的理解其他程序語言);Python幾乎無所不能。
  • python前端和後端數據交互,tornado框架入門,初學小試牛刀!
    Python前端和後端是如何交互的,怎麼用tornado框架快速搭建前端和後端數據交互?1)接收GET請求數據2)接收POST請求數據3)響應請求下面是python前端和後端數據交互的例子,利用ttornado框架快速搭建前端和後端數據交互,代:碼實現如下:import tornado.httpserverimport tornado.ioloopimport
  • 初學編程,學哪種語言比較好
    現在,隨著技術不斷擴展,單純的會一種程式語言已經不能滿足企業的需要,很多IT人都是身懷多種絕技,但是好在,程式語言是相通的,比如你學會了C,再學C++或Python就相對容易很多。所以,初學編程,還是要選擇一種注重基礎的語言,比如說Java,這樣對以後其它程式語言的學習幫助很大。
  • 深圳Python培訓班打造行業高標準Python人才
    我們都知道Web前端一直都是不可忽視的存在,我們離不開網絡,離不開Web前端,利用Python的框架可以做網站,而且都是一些精美的前端界面,另外我們需要掌握一些數據的應用。豆瓣就是使用Python作為Web開發作為基礎語言,知乎的整個架構也是基於Python語言更勝一籌大數據方向、運維方向等多種方向。各種類型的企業實戰項目,一比一教學。
  • python初學者必看的學習路線 Python是近幾年比較火的程式語言
    Python是近幾年比較火的程式語言之一,因為人工智慧的火爆,讓很多人都想從事python開發。很多零基礎學員在學習python的時候都會走一些彎路,下面小編就為大家分享python學習路線圖,幫助零基礎學員在學習的時候少走彎路。 很多人都在問Python學習步驟應該如何安排?
  • 前端開發人員想學習後端語言在Java和Python中該如何選擇
    當前作為前端開發人員來說,掌握一門後端開發語言是有必要的,因為當前隨著Nodejs的發展,前端開發後端化也是一個發展趨勢,另外掌握後端開發技術對於前端開發來說也是有一定幫助作用的。Java語言經過多年的發展已經逐漸形成了一個較為健全的語言生態,尤其在後端服務方面有大量的解決方案可以使用,可以說這是Java語言的重要優勢之一。採用Java語言完成後端服務開發會在很大程度上降低開發風險,這也是不少大型平臺選擇Java語言的重要原因。第二:Java市場存量巨大。
  • Python和Java語言,新手應該先學哪個
    從這就能看出java這門語言深得人心,是見過世面的程式語言,這麼多年,什麼風雨都經歷過,從網際網路草莽時代,憑藉一己之力,為網際網路推向全宇宙做出了不可磨滅的貢獻,到了移動網際網路時代,Android的興起,讓java又活出了第二個生命,羨煞旁人。再到大數據時代,java又毫無懸念的霸屏了,Hadoop的技術圈裡,java始終是焦點。以上就足以讓你選擇java了。
  • 看了這個鍵盤,你認為是什麼語言程式設計師?python程式設計師:不是我!
    百度員工:不好意思,我的C和V也沒了作者點評:這也是我正想問的,作為程式設計師,這兩個高頻使用的按鍵怎麼會可能好好的呢。騰訊員工:這幾個鍵都沒了的應該是遊戲玩家+程式設計師了吧。。不好意思,我好像暴露了什麼,我在公司不玩遊戲的。作者點評:懂了,我不會說的。網友一:能不打分號就不打的路過。
  • Go語言和Java、Python等其他語言的對比分析
    Go希望成為網際網路時代的C語言。多數系統級語言(包括Java和C#)的根本編程哲學來源於C++,將C++的面向對象進一步發揚光大。但是Go語言的設計者卻有不同的看法,他們認為值得學習的是C語言。C語言經久不衰的根源是它足夠簡單。因此,Go語言也是足夠簡單。所以,他們當時設計Go的目標是為了消除各種緩慢和笨重、改進各種低效和擴展性。
  • 為什麼 Python 沒有 main 函數?
    在本文中,我們來討論一下為什麼Python沒有main函數。在開始討論之前,我們先來回答以下兩個問題:所謂的「main函數」究竟是什麼意思?為什麼有些程式語言必須編寫main函數?一些程式語言將main函數作為程序的執行入口,比如C/C++、C#、Java、Go、Rust等等,這個函數具有特定的含義:為什麼必須強制main函數作為入口?這些語言都是編譯語言,需要將代碼編譯成可執行的二進位文件。為了讓作業系統/引導程序找到程序的開頭,需要定義這樣一個函數。簡而言之,需要在大量可執行的代碼中定義一個至關重要的的開頭。
  • Python作為學習人工智慧的入門語言,都有哪些好處?
    Python是一門電腦程式語言,而且是學習人工智慧的入門語言,相對其他的流行語言python也比較簡單一些。它被許多人認為是很強大的程式語言和技術信仰,為什麼說它這麼好呢,且聽下面講解Python有哪些好處。
  • 程式設計師學習編程,學習這四門程式語言就夠了
    中國程式設計師都有一個讓人難於理解的問題,特別是新手程式設計師,都有喜歡不斷學習最近熱門的程式語言,比如近一年的來的python超過java成為熱度排名第一,同時我們也發現很多程式設計師開始學習盲目ython,作為一名專業的程式設計師,沒有必要把程式語言都學完,比較目前程式語言有不少200種,每種程式語言都有成為熱度的可能性
  • 數據分析之python語言概述
    目前作者整理的大綱如下:第一章 python編程基礎1.1 python語言概述 1.2 數據科學神器--Anaconda介紹與安裝 1.3 標準輸入輸出 1.4 變量定義與賦值 1.5 數據類型 1.6 流程控制語句 1.7 函數1.8 面向對象編程 第二章 python數據清洗之
  • python可以做什麼,你心動了嗎?
    python語言可謂是賺足了技術開發者的眼光,各路英雄對python的評價可謂是愈演愈烈,小編呢也收到各方朋友發來的私信,大部分小夥伴諮詢的內容意思是關於學習python如何,前途怎麼樣,到底有什麼作用等等。本文主要列舉一下python的應用,所以小編特此寫下此文,供各位朋友參考,希望對您有所啟發。
  • 為什麼要學C語言
    C語言是面向過程的,所以抽象程度相對較低,更像是需要一拳一腳練習的《少林基本功》,所以搞清楚,要想學習編程,並且想在這條路上走很久的話,建議好好學練好紮實的基本功,為了更方便以後的學習。C語言更像是武功的基礎,《python》這樣的語言也許一上來就直接舞一套《闢邪劍法》,但是如果對於體內真氣走向不清晰的話,一旦出問題就容易走火入魔,更甚至是只有厲害的劍招,沒有雄厚的內力支撐,這樣的後果就是,一旦江湖再出現什麼厲害的武功,你就只能感嘆一句「*****」,然後加入爭奪秘籍的隊伍中,否則只能淪為後背的墊腳石。