当前位置: 首页 > article >正文

前端的 Python 入门指南(一):常用语法和关键字对比

作为一名前端开发者,如果你已经熟悉了 JavaScript,那么学习 Python 将更加轻松,因为两者在语法和概念上有许多相似之处,同时也有一些显著的不同。在本文中,我将对比两种语言的常用语法和关键字,帮助前端开发者快速上手 Python。

考虑到python确实有一定优势,尤其在AI推动下,暂时无法撼动,深入使用了下,觉得写个对比,便于自己和感兴趣的小伙伴快速转入。

1. 变量声明

JavaScript

在 JavaScript 中,可以使用 varletconst 声明变量:

let name = "John";  // 可重新赋值
const age = 30;     // 不可重新赋值
var city = "New York";  // 几乎已被 let 取代

Python

在 Python 中,没有明确的声明关键字,变量通过直接赋值定义:

name = "John"  # 可直接赋值,无需关键字
age = 30
city = "New York"

注意:Python 是动态类型语言,但它在 3.6 之后引入了类型注解(非强制),提高代码可读性:

name: str = "John"
age: int = 30

2. 条件判断

JavaScript

JavaScript 使用 ifelse ifelse

let age = 18;

if (age >= 18) {
    console.log("You are an adult.");
} else if (age >= 13) {
    console.log("You are a teenager.");
} else {
    console.log("You are a child.");
}

Python

Python 使用 ifelifelse,且代码块通过 缩进 定义:

age = 18

if age >= 18:
    print("You are an adult.")
elif age >= 13:
    print("You are a teenager.")
else:
    print("You are a child.")

注意:Python 没有大括号,缩进是强制的,通常为 4 个空格。


3. 循环语句

JavaScript

JavaScript 提供 forwhile 循环,还有常用的 for...offor...in

// for 循环
for (let i = 0; i < 5; i++) {
    console.log(i);
}

// while 循环
let i = 0;
while (i < 5) {
    console.log(i);
    i++;
}

// for...of 遍历数组
for (let item of [1, 2, 3]) {
    console.log(item);
}

// for...in 遍历对象的键
for (let key in {a: 1, b: 2}) {
    console.log(key);
}

Python

Python 使用 forwhile 循环,没有直接的 for...offor...in,但功能类似:

# for 循环
for i in range(5):  # range(5) 生成 0 到 4 的数字
    print(i)

# while 循环
i = 0
while i < 5:
    print(i)
    i += 1

# 遍历数组
for item in [1, 2, 3]:
    print(item)

# 遍历字典的键
for key in {"a": 1, "b": 2}:
    print(key)

4. 函数定义

JavaScript

在 JavaScript 中,可以使用 function 或箭头函数定义函数:

// 普通函数
function greet(name) {
    return `Hello, ${name}`;
}

// 箭头函数
const greet = (name) => `Hello, ${name}`;

Python

在 Python 中,使用 def 关键字定义函数:

# 普通函数
def greet(name):
    return f"Hello, {name}"

Python 不支持箭头函数,但有 lambda 表达式 用于定义单行匿名函数:

greet = lambda name: f"Hello, {name}"

5. 类和面向对象

JavaScript

JavaScript 中的类使用 class 定义,支持构造函数和继承:

class Animal {
    constructor(name) {
        this.name = name;
    }
    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    speak() {
        console.log(`${this.name} barks.`);
    }
}

const dog = new Dog("Buddy");
dog.speak();  // Buddy barks.

Python

Python 同样使用 class 定义类,但构造函数为 __init__,继承使用括号表示:

class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print(f"{self.name} makes a noise.")

class Dog(Animal):
    def speak(self):
        print(f"{self.name} barks.")

dog = Dog("Buddy")
dog.speak()  # Buddy barks.

6. 数据结构

Python 和 JavaScript 都有丰富的内置数据结构,但它们的实现和用法略有不同。

数据结构JavaScriptPython
数组[1, 2, 3][1, 2, 3]
字典{key: value}{"key": "value"}
集合new Set([1, 2, 3])set([1, 2, 3])
元组不支持(1, 2, 3)

7. 模块和导入

JavaScript

在 JavaScript 中,可以通过 exportimport 实现模块化:

// module.js
export const greet = (name) => `Hello, ${name}`;

// main.js
import { greet } from './module.js';
console.log(greet("John"));

Python

Python 使用 import 导入模块,模块是文件级别的:

# module.py
def greet(name):
    return f"Hello, {name}"

# main.py
from module import greet
print(greet("John"))

总结

通过对比可以看出,Python 和 JavaScript 在语法和结构上既有相似之处,也有显著的差异。对于熟悉 JavaScript 的前端开发者,学习 Python 时需要特别注意以下几点:

  1. Python 强制使用缩进,代替了 JavaScript 的大括号。
  2. Python 没有动态添加属性和方法的概念,更多是通过定义和继承实现功能扩展。
  3. Python 中的一些关键字(如 elifdef)与 JavaScript 不同,但功能相近。

在后续的指南中,我们将进一步探讨 Python 中更高级的特性,如异步编程等,帮助前端开发者更好地掌握这门强大的语言!


http://www.kler.cn/a/428954.html

相关文章:

  • AI时代下 | 通义灵码冲刺备战求职季
  • 【2024年华为OD机试】(C卷,100分)- 悄悄话 (Java JS PythonC/C++)
  • 【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)
  • 基于Python+Gurobi的库存分配问题建模求解
  • Linux使用SSH连接GitHub指南
  • 【MySQL】复合查询+表的内外连接
  • TCP/IP 协议图--计算机网络体系结构分层
  • STM32 GPIO 8种工作模式的应用场景
  • Mybatis 关联查询
  • SABO-CNN-BiGRU-Attention减法优化器优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比
  • [小白系列]Ubuntu安装教程-安装prometheus和Grafana
  • C# 事件(Event)
  • [HNCTF 2022 WEEK2]ez_ssrf
  • 【MySQL】库的操作+表的操作
  • LeetCode2239找到最接近 0 的数
  • Kotlin报错:lateinit property xxx has not been initialized
  • Spring IoC的基本概念
  • 解释器模式的理解和实践
  • RabbitMq 基础
  • 【大数据技术基础】 课程 第1章 大数据技术概述 大数据基础编程、实验和案例教程(第2版)
  • node.js基础学习-JWT登录鉴权(十四)
  • 常见限流算法详细解析
  • 投资伦敦金注意什么指标
  • 思特奇亮相2024数字科技生态大会,以“智”谋新共赢AI新时代
  • AUTOSAR AP 汽车API知识点总结(Automotive API )R24-11
  • flinkSql 将流和表的互相转换