我为什么建议前端将Python 作为第二语言?

前端的视角聊聊如何快速入门Python 到这里基本就结束了Python基础入门了,本文也是更多的是从小白入门最疑惑的部分开始,把环境安装和基础的工程环境做了介绍。基本上对于新入坑的小伙伴,把工程和环境相关的坑踩平了心里也就有了信心了。本文也是从前端的视角切入,把python和前端相关的概念做了一些关联,希望助入门Python的前端小伙伴一臂之力。 阅读详情

前言

“如何摆脱不停切图的困局?”

这不是一篇制造焦虑的文章,而是充满真诚建议的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,却优秀于它。 两者之间有一些区别:

  1. JavaScript导入是静态的;Python是动态的。
  2. JavaScript模块必须显式导出。在Python中,所有模块均可导入。
  3. 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“关键词占位,避免运行出错。 mymodule.py:

# python
def myfunc(): pass

// javascript
export function myfunc() {}

2. 前端如何优雅学会Python?

许多前端对Python的热情始于好奇,终于停滞。

距离实干做开发有技术差距,也无人指点提带,也不知当下水平能干嘛?就在这样的疑惑循环中,编程技能止步不前,而爬虫是最好的进阶方向之一。

网络爬虫是Python比较常用的一个场景,国际上,google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。

就我个人发展而已,我也十分推荐以爬虫为应用入门,原因有几项:

  • 爬虫是针对web页面的一种应用技术,前端可以无痛衔接很多知识。
  • 爬虫的第一步是获取页面源码,然后做信息抽取。其中针对dome节点的class/id选择,前端无需再度学习。

  • 爬虫中的虚拟登录及Selenium,可以提升前端对于自动化测试的理解。
  • 爬虫的最终形态是搜索引擎,当中的SEO是每个前端都需要关注的点儿。
  • 在了解搜索引擎爬虫的过程中,前端可以搞清楚服务端渲染SSR和单页应用CSR的不同作用。

爬虫分两种方式:面向页面和面向接口

  • 面向页面,前端自然轻车熟路。
  • 面向接口,需要了解到如何用抓包软件(Fiddler/Charles)。
  • 在这过程中,又能学会一项技能 - 抓包。以后不用再看着Network傻傻刷新了。

始于爬虫,却不止于爬虫:

爬虫—> 数据清洗 -> 数据库操作 -> 数据清洗 -> 数据挖掘 -> 数据分析 …

这一条链下去,你可以学到非常非常多的知识:

Scrapy爬虫框架,Redis分布式事务,数据处理Pandas,自然语言分析NLP,完整实现数据可视化等等…

关于语言的讨论,我非常赞同李兵老师的这段话:

3. 潘石屹都在学Python

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至优快云官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

前端开发的Python学习笔记 快速开始 有这样一句话,“人生苦短,我用Python”。这话能够流传,就是因为Python简洁易学,相比其它语言,可以用更少的代码量和时间,完成同样的功能。作为一个前端开发,日常工作和生活中,很多时候需要一些脚本,来处理冗余繁琐的操作,提升效率,特别是现有的工具难以满足需求, 这时候就想重新造个轮子,例如,编写脚本,从TTF字体文件中,仅提取出想要的中文字体;对按规则匹配到的文件进行自定义的重命名,或者批量修改大量文件中的指定规则匹配的文本;喜欢的网页文章或文档,能够自动将其抓取,然后转成PDF文件保存本地。 阅读详情

相关推荐

IBM System x3650 M5 IMM配置

1、IMM基本介绍 IMM,全称是Intel Mobile Module是IBM服务器上的集成管理模块,该模块是独立于服务器系统,可以通过一个单独的IP地址,使用Web和虚拟端口方式直接启动、停止和管理远程服务器,即使主板、处理器或者内存故障导致主机无法启动,也依然可以远程管理服务器,可以远程直接操作启动画面和服务器工作界面。 2、IP地址配置 2.1 通过Web方式修改IP地址 IBM服...

血饮渊虹的博客 4万+

python前端教程

本节为python前端教程,主要讲解python前端开发的相关知识。

直线电机驱动技术原理与应用解析

直线电机作为直接电能-直线运动转换装置,其核心原理基于电磁感应定律和洛伦兹力公式。通过三相交流电在定子绕组中产生行波磁场,与动子永磁体相互作用实现精准推力控制。相比传统旋转电机传动系统,直线电机具有零传动间隙、高动态响应(加速度可达10g)和微米级定位精度等技术优势,这使其成为半导体光刻机、精密数控机床等高端装备的关键驱动部件。现代直线电机驱动单元通常采用三环控制架构(电流环、速度环、位置环),配合SiC功率器件和高分辨率光栅反馈,实现纳米级运动控制。随着模块化设计和直接冷却技术的发展,直线电机正朝着更高功

weixin_26802933的博客 260

前端程序员学习Python的极简入门

Python 是一种高级编程语言,以其简洁易读的语法和强大的功能受到广泛欢迎。对于前端程序员来说,学习 Python 可以扩展技能集,帮助你处理后端开发、数据分析、自动化脚本等任务。

cuijiying的博客 2002

CVE-2025-25249漏洞深度解析:FortiOS认证绕过与实战缓解

远程代码执行(RCE)是网络安全中最危险的漏洞类型之一,其核心往往源于认证机制失效或内存安全缺陷。CVE-2025-25249正属于此类高危漏洞——它不依赖用户凭证,也不需要交互触发,而是通过超长HTTP头(如X-Forwarded-For)引发内存越界写入,直接绕过FortiOS和FortiSwitchManager的完整认证流程。该漏洞影响广泛、CVSS评分高达9.8,凸显了嵌入式设备在HTTP协议栈实现中的深层风险。在企业网络中,FortiGate等设备常作为边界守门人,一旦失陷将导致root级控制权

weixin_33694620的博客 526

基恩士PLC编程避坑指南:局部变量@前缀的3个隐藏陷阱与实战解决方案

本文深入剖析了基恩士PLC编程中使用@前缀创建局部变量的三大隐藏陷阱,包括在线调试时的数据丢失、数据类型冲突以及子程序复用时的地址覆盖问题。针对每个陷阱,提供了预定义变量、强类型规范和基址参数传递等实战解决方案,帮助中高级工程师提升代码健壮性与可维护性。

weixin_29171087的博客 103

为什么建议前端将Python 作为第二语言?

如何摆脱不停切图的困局?这不是一篇制造焦虑的文章,而是充满真诚建议的Python推广文。当谈论到编程入门语言时,大多数都会推荐Python和JavaScript。实际上,两种语言在方方面面都非常强大。而如今我们熟知的ES6语言,很多语法都是借鉴Python的。有一种说法是“能用js实现的,最后一定都会用js实现。“能跟python长得像的,最后一定会像python。文末领取Python全套最新学习资源。

python03012的博客 925

STC8H DMA 串口1全双工中断方式收发通讯C语言

串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的内容后,通过串口1的DMA自动发送功能把存储空间的数据原样返回. 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。

czhaii的专栏 1467

我为什么建议前端将 Python 作为第二语言

如何摆脱不停切图的困局?这不是一篇制造焦虑的文章,而是充满真诚建议的Python推广文。当谈论到编程入门语言时,大多数都会推荐Python和JavaScript。实际上,两种语言在方方面面都非常强大。而如今我们熟知的ES6语言,很多语法都是借鉴Python的。有一种说法是“能用js实现的,最后一定都会用js实现。“能跟python长得像的,最后一定会像python。

xiangxueerfei的博客 154

计算机视觉——SIFT特征匹配

文章目录一、SIFT特征检测原理1.1基本思想1.2二、SIFT特征检测图片兴趣点三、SIFT特征检测描述子匹配四、输入图片检测与之 一、SIFT特征检测原理 1.1基本思想 1.2 二、SIFT特征检测图片兴趣点 代码: 检测结果: 三、SIFT特征检测描述子匹配 四、输入图片检测与之 ...

weixin_43869874的博客 3855

【AI平台】n8n入门2:第一个工作流,调用本地大模型

n8n是一款开源的,专注于AI工作流构建,支持灵活的自定义与集成。就是可以把大模型和其他工具联合起来,这就厉害了。而且,免费功能又强大,目前很火,来研究一下。

正经教主是个热衷于正经学习分享的教主。 4536
上一篇: Python从进阶到高级—通俗易懂版
下一篇: 2024年度最高人气的编程语言
大模型-小原
博客等级 码龄4年 2691粉丝 212原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值