Python基本语法总结大全(含java、js对比)

作者:

文章目录
  • 你会发现:Python = 更少的代码 + 更少的概念 + 更高的表达力。
  • Java/JS: if (x > 1) { console.log(‘ok’) } Python: if x > 1: print(“ok”) ⚠️ 必须使用 4 个空格缩进(不能用 Tab)
  • Python JS Java int number int float number double str string String bool boolean boolean list Array 数组/ArrayList tuple 类似 readonly array 不可变数组 dict Object Map 示例: age = 28 # int price = 3.14 # float name = “Tom” # str is_ok = True # bool arr = [1, 2, 3] # list t = (1, 2) # tuple user = {“name”: “Tom”} # dict
  • if score > 90: print(“A”) elif score > 60: print(“B”) else: print(“C”) 注意:elif = else if
  • Java/JS: function add(a, b) { return a + b } Python: def add(a, b): return a + b def add(a, b) -> str: return a + b -> str 完全可以不要,: 是函数必须的
  • Java: class User { String name; User(String name) { this.name = name; } } Python(更简洁): class User: def __init__(self, name): self.name = name u = User(“Tom”) print(u.name) 关键点: 构造函数是 __init__ 方法第一个参数必须是 self
  • arr = [1, 2, 3] arr.append(4) arr.insert(0, 100) arr.remove(2) print(len(arr))
  • user = { “name”: “Tom”, “age”: 20 } print(user[“name”]) user[“age”] = 30 for key, val in user.items(): print(key, val)
  • try: x = 10 / 0 except ZeroDivisionError: print(“不能除以 0”) finally: print(“done”)
  • with open(“test.txt”, “r”) as f: content = f.read() with open(“a.txt”, “w”) as f: f.write(“hello”)
  • Java: import java.util.List; JS: import fs from ‘fs’; Python: import math from math import sqrt
  • print(user) 你不需要写 JSON.stringify,也不需要重写 toString。
  • python -m venv venv source venv/bin/activate # Mac/Linux venvScriptsactivate # Windows
  • pip install requests 示例: import requests res = requests.get(“https://api.github.com”) print(res.json())
  • 这是 Python 最经典、最强大的语法之一。 JS/Java 写法: const arr = []; for(let i=0; i<5; i++){ arr.push(i * i); } Python 一行: squares = [x * x for x in range(5)] 带条件: evens = [x for x in range(10) if x % 2 == 0]
  • 创建: user = {“name”: “Tom”, “age”: 18} 访问: print(user[“name”]) print(user.get(“age”)) 修改: user[“age”] = 20 遍历: for key, value in user.items(): print(key, value)
  • try: 1 / 0 except ZeroDivisionError as e: print(“Error:”, e) finally: print(“done”)
  • 写文件: with open(“a.txt”, “w”, encoding=”utf-8″) as f: f.write(“hello”) 读文件: with open(“a.txt”, “r”, encoding=”utf-8″) as f: content = f.read() with 会自动 close 文件。
  • 相当于 JS 的 import,Java 的 import。 import math print(math.sqrt(16)) from 写法: from math import sqrt print(sqrt(16)) 导入别名: import numpy as np
  • Python JS Java list Array Array / ArrayList tuple 无等价(类似 readonly array) 不可变数组 dict Object / Map HashMap set Set HashSet
  • JS: const add = (a, b) => a + b Python: add = lambda a, b: a + b 用在排序中非常常见: arr.sort(key=lambda x: x[“age”])
  • 最基本的形式: def log(fn): def wrapper(*args, **kwargs): print(“call”, fn.__name__) return fn(*args, **kwargs) return wrapper @log def hello(): print(“hi”)
  • 安装包: pip install requests 升级包: pip install -U requests
  • 创建: python -m venv venv 激活(Mac/Linux): source venv/bin/activate 激活(Windows): venvScriptsactivate 退出: deactivate
  • 几乎与 JS 一样。 import asyncio async def hello(): print(“Hello”) await asyncio.sleep(1) print(“World”) asyncio.run(hello())
  • return f”It’s always sunny in {city}!” f-string 是 Python 拼接字符串最常用的方式。 等价于 JS 的模板字符串: return `It’s always sunny in ${city}!`
  • 三引号字符串放在函数第一行 = 函数注释(用于文档、IDE 提示、help())。 def get_weather(city: str) -> str: “””Get weather for a given city.””” return f”It’s always sunny in {city}!” 相当于 Java 的: /** * Get weather for a given city. */
  • 类型 不是必写! 不区分!只有一个 Python。 但 Python 允许可选写类型注解,因此: Python = JS(动态) + TS(可选标注) 写不写类型都能运行(不像 TS 那样必须编译检查) Python 官方把这套类型系统称为 Type Hints(类型提示)。 Python 的类型注解是“提示”,不是“限制” 例如: def add(a: int, b: int) -> int: return a + b print(add(“hello”, “world”)) 照样运行……输出 "helloworld"(因为 Python 不强制类型) 要强制检查必须使用外部工具,比如: mypy pyright pylance(VSCode) PyCharm 自带类型分析 什么时候推荐写: 大型项目 团队协作 需要 IDE 提示 API 层 数据结构定义
  • 到此这篇关于Python基本语法(含java、js对比)的文章就介绍到这了,更多相关Python基本语法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python基本语法经典教程 python基本语法练习实例 Python基本语法之运算符功能与用法详解 Python的基本语法详解 Python中基本数据类型和常用语法归纳分享
  • 目录
    • Python 基本语法 · JS/Java 开发者快速上手指南
    • 1. Python 是动态类型语言(像 JS,但比 JS 更简单)
    • 2. 缩进就是作用域(没有花括号)
    • 3. 基本数据类型
    • 4. 条件语句(更自然)
    • 5. 循环
    • 6. 函数定义
    • 7. 类与对象
    • 8. 字符串(功能超强)
    • 9. 列表(list)的常用操作
    • 10. 字典(dict)
    • 11. 异常处理(与 Java 类似)
    • 12. 文件操作(非常简单)
    • 13. 模块与导入
    • 14. Python 对象打印超级方便
    • 15. 虚拟环境(推荐)
    • 16. pip 安装库
    • 17. Pythonic 语法总结(从 JS/Java 转过来最常用)
    • 10. 列表推导式(List Comprehension)🔥
    • 11. 字典(dict)常用操作(相当于 JS Object / Java HashMap)
    • 12. 异常处理(类似 Java,更好用)
    • 13. 文件读写(非常简单)
    • 14. 模块与导入(import)
    • 15. Python 的常用数据结构总结(对比 JS & Java)
    • 16. Python 的强大语法糖
      • ✦ 解构赋值(JS 也有,但 Python 更强)
    • 17. Lambda(匿名函数)
      • 18. 装饰器(类似 JS 的高阶函数 + 注解功能)
        • 19. Python 的包管理(pip)
          • 20. 虚拟环境(venv)—— 类似 JS 的 node_modules 隔离
            • 21. Python 异步(async/await)
              • 22. f-string(Python 的模板字符串)
                • 23. 三引号字符串
                  • 24. 类型是否必须写,是否有类似js和ts的区分
                    • 总结 

                      专为有 JavaScript & Java 基础的工程师《Python 基本语法快速上手指南》

                      你会发现:Python = 更少的代码 + 更少的概念 + 更高的表达力。

                      a = 10
                      b = "Hello"
                      c = True
                      

                      无需 letconstvarint 之类的关键字。
                      变量类型由赋值决定。

                      Java/JS:

                      if (x > 1) {
                        console.log('ok')
                      }
                      

                      Python:

                      if x > 1:
                          print("ok")
                      

                      ⚠️ 必须使用 4 个空格缩进(不能用 Tab)

                      Python JS Java
                      int number int
                      float number double
                      str string String
                      bool boolean boolean
                      list Array 数组/ArrayList
                      tuple 类似 readonly array 不可变数组
                      dict Object Map

                      示例:

                      age = 28               # int
                      price = 3.14           # float
                      name = "Tom"           # str
                      is_ok = True           # bool
                      arr = [1, 2, 3]        # list
                      t = (1, 2)             # tuple
                      user = {"name": "Tom"} # dict
                      

                      if score > 90:
                          print("A")
                      elif score > 60:
                          print("B")
                      else:
                          print("C")
                      

                      注意:elif = else if

                      for item in [1, 2, 3]:
                          print(item)
                      

                      for i in range(5):   # 0,1,2,3,4
                          print(i)
                      
                      for i in range(1, 5):  # 1,2,3,4
                          print(i)
                      

                      Java/JS:

                      function add(a, b) {
                        return a + b
                      }
                      

                      Python:

                      def add(a, b):
                          return a + b
                      
                      def add(a, b) -> str:
                          return a + b
                      

                      -> str 完全可以不要,: 是函数必须的

                      Java:

                      class User {
                        String name;
                        User(String name) { this.name = name; }
                      }
                      

                      Python(更简洁):

                      class User:
                          def __init__(self, name):
                              self.name = name
                      
                      u = User("Tom")
                      print(u.name)
                      

                      关键点:

                      • 构造函数是 __init__
                      • 方法第一个参数必须是 self

                      name = "Tom"
                      age = 18
                      print(f"My name is {name}, age {age}")
                      

                      arr = [1, 2, 3]
                      
                      arr.append(4)
                      arr.insert(0, 100)
                      arr.remove(2)
                      print(len(arr))
                      

                      squares = [x*x for x in range(5)]
                      print(squares)  # [0,1,4,9,16]
                      

                      user = {
                          "name": "Tom",
                          "age": 20
                      }
                      
                      print(user["name"])
                      user["age"] = 30
                      
                      for key, val in user.items():
                          print(key, val)
                      

                      try:
                          x = 10 / 0
                      except ZeroDivisionError:
                          print("不能除以 0")
                      finally:
                          print("done")
                      

                      with open("test.txt", "r") as f:
                          content = f.read()
                      
                      with open("a.txt", "w") as f:
                          f.write("hello")
                      

                      Java:

                      import java.util.List;
                      

                      JS:

                      import fs from 'fs';
                      

                      Python:

                      import math
                      from math import sqrt
                      

                      print(user)
                      

                      你不需要写 JSON.stringify,也不需要重写 toString。

                      python -m venv venv
                      source venv/bin/activate  # Mac/Linux
                      venvScriptsactivate     # Windows
                      

                      pip install requests
                      

                      示例:

                      import requests
                      
                      res = requests.get("https://api.github.com")
                      print(res.json())
                      

                      a, b = 1, 2
                      

                      msg = "ok" if x > 1 else "fail"
                      

                      for index, item in enumerate(arr):
                          print(index, item)
                      

                      a, b = b, a
                      

                      data = open("a.txt").read()
                      

                      继续为你输出 Python 快速上手指南(面向 JS & Java 工程师)。

                      你可以随时说“继续”往下扩展更多内容。

                      这是 Python 最经典、最强大的语法之一。

                      JS/Java 写法:

                      const arr = [];
                      for(let i=0; i<5; i++){
                        arr.push(i * i);
                      }
                      

                      Python 一行:

                      squares = [x * x for x in range(5)]
                      

                      带条件:

                      evens = [x for x in range(10) if x % 2 == 0]
                      

                      创建:

                      user = {"name": "Tom", "age": 18}
                      

                      访问:

                      print(user["name"])
                      print(user.get("age"))
                      

                      修改:

                      user["age"] = 20
                      

                      遍历:

                      for key, value in user.items():
                          print(key, value)
                      

                      try:
                          1 / 0
                      except ZeroDivisionError as e:
                          print("Error:", e)
                      finally:
                          print("done")
                      

                      写文件:

                      with open("a.txt", "w", encoding="utf-8") as f:
                          f.write("hello")
                      

                      读文件:

                      with open("a.txt", "r", encoding="utf-8") as f:
                          content = f.read()
                      

                      with 会自动 close 文件。

                      相当于 JS 的 import,Java 的 import

                      import math
                      print(math.sqrt(16))
                      

                      from 写法:

                      from math import sqrt
                      print(sqrt(16))
                      

                      导入别名:

                      import numpy as np
                      

                      Python JS Java
                      list Array Array / ArrayList
                      tuple 无等价(类似 readonly array) 不可变数组
                      dict Object / Map HashMap
                      set Set HashSet

                      a, b = 1, 2
                      

                      交换变量(无需临时变量):

                      a, b = b, a
                      

                      解构列表:

                      x, y, z = [10, 20, 30]
                      

                      JS:

                      const add = (a, b) => a + b
                      

                      Python:

                      add = lambda a, b: a + b
                      

                      用在排序中非常常见:

                      arr.sort(key=lambda x: x["age"])
                      

                      最基本的形式:

                      def log(fn):
                          def wrapper(*args, **kwargs):
                              print("call", fn.__name__)
                              return fn(*args, **kwargs)
                          return wrapper
                      
                      @log
                      def hello():
                          print("hi")
                      

                      安装包:

                      pip install requests
                      

                      升级包:

                      pip install -U requests
                      

                      创建:

                      python -m venv venv
                      

                      激活(Mac/Linux):

                      source venv/bin/activate
                      

                      激活(Windows):

                      venvScriptsactivate
                      

                      退出:

                      deactivate
                      

                      几乎与 JS 一样。

                      import asyncio
                      
                      async def hello():
                          print("Hello")
                          await asyncio.sleep(1)
                          print("World")
                      
                      asyncio.run(hello())
                      

                      return f"It's always sunny in {city}!"
                      

                      f-string 是 Python 拼接字符串最常用的方式。

                      等价于 JS 的模板字符串:

                      return `It's always sunny in ${city}!`
                      

                      三引号字符串放在函数第一行 = 函数注释(用于文档、IDE 提示、help())。

                      def get_weather(city: str) -> str:
                          """Get weather for a given city."""
                          return f"It's always sunny in {city}!"
                      

                      相当于 Java 的:

                      /**
                       * Get weather for a given city.
                       */
                      

                      类型 不是必写!

                      不区分!只有一个 Python。

                      但 Python 允许可选写类型注解,因此:

                      • Python = JS(动态) + TS(可选标注)
                      • 写不写类型都能运行(不像 TS 那样必须编译检查)

                      Python 官方把这套类型系统称为 Type Hints(类型提示)

                      Python 的类型注解是“提示”,不是“限制”

                      例如:

                      def add(a: int, b: int) -> int:
                          return a + b
                      
                      print(add("hello", "world"))
                      

                      照样运行……输出 "helloworld"
                      (因为 Python 不强制类型)

                      要强制检查必须使用外部工具,比如:

                      • mypy
                      • pyright
                      • pylance(VSCode)
                      • PyCharm 自带类型分析

                      什么时候推荐写:

                      • 大型项目
                      • 团队协作
                      • 需要 IDE 提示
                      • API 层
                      • 数据结构定义

                      到此这篇关于Python基本语法(含java、js对比)的文章就介绍到这了,更多相关Python基本语法内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                      您可能感兴趣的文章:

                      • Python基本语法经典教程
                      • python基本语法练习实例
                      • Python基本语法之运算符功能与用法详解
                      • Python的基本语法详解
                      • Python中基本数据类型和常用语法归纳分享

                      站内搜索