JS 开发人员的 Python 基础知识

1.基本语法和数据类型

  • 变量声明:不需要 var、let 或 const。只需命名变量即可。

     x = 10
     name = "python"
    
  • 原始类型:

    • int(整数)
    • 浮动(浮点)
    • str(字符串)
    • 布尔(布尔值)
  • 数据结构:

    • 列表(就像 js 中的数组):
       numbers = [1, 2, 3]
       numbers.append(4)
    
    • 元组(不可变列表):
       point = (10, 20)
    
    • 字典(如 js 对象):
       person = {"name": "alice", "age": 30}
       person["name"]  # accessing value
    
    • 集合(唯一的、无序的元素):
       unique_numbers = {1, 2, 3, 2}
    

2.控制结构

  • 条件:

     if x > 5:
         print("greater")
     elif x == 5:
         print("equal")
     else:
         print("lesser")
    
  • 循环:

    • for loop(适用于可迭代对象):
       for num in [1, 2, 3]:
           print(num)
    
    • while 循环
       i = 0
       while i < 5:
           i += 1
    

3.功能

  • 函数定义和返回语法:

     def greet(name):
         return f"hello, {name}"
    
  • lambda 函数(如 js 箭头函数):

     square = lambda x: x * x
    

4.列表推导式和生成器

  • 列表推导式(创建列表的有效方法):

     squares = [x * x for x in range(10)]
    
  • 生成器(一一产生值):

     def generate_numbers(n):
         for i in range(n):
             yield i
    

5.错误处理

  • 尝试/排除块:

     try:
         result = 10 / 0
     except zerodivisionerror:
         print("cannot divide by zero")
    

6.类和 oop

  • 类定义:

     class animal:
         def __init__(self, name):
             self.name = name
    
         def speak(self):
             return f"{self.name} makes a sound"
    
  • 继承:

     class dog(animal):
         def speak(self):
             return f"{self.name} barks"
    

7.常用内置函数

  • len()、max()、min()、sum()、排序()
  • 类型转换:int()、float()、str()、list()、dict()

8.使用文件

  • 阅读和写作:

     with open("file.txt", "r") as file:
         data = file.read()
    

9.重要图书馆

  • numpy 用于数值运算,pandas 用于数据操作,matplotlib 用于绘图。

10。与 javascript 的区别

  • 不需要分号。
  • 定义块时必须缩进。
  • 没有 switch 语句(使用 if-elif 代替)。
  • 使用 none 代替 null。

此摘要应提供有效开始使用 python 进行编码的基础知识。

以上就是JS 开发人员的 Python 基础知识的详细内容,更多请关注昆居客【www.kunjuke.com】。

相关推荐:

如何在Python中为测试用例添加自定义标记_通过pytest.mark进行分类执行

pytest.mark 必须作为装饰器直接作用于测试函数或类,不可写在函数外部;可叠加多个标记,执行时用 -m "mark1 and mark2" 等布尔表达式筛选;未注册标记会触发警告,需在 pytest.ini 或 pyproject.toml 中声明以避免。 pytest.mark 能不能直接用在函数外面 不能。所有 pytest.mark 必须装饰在测试函数或类上,写在函数定义之外会报 S...
· Python · 85057

如何在Python中构建树状结构的递归生成器_使用yield from简化递归代码

yield from 在树遍历中省去了手动展开子生成器的繁琐与风险,自动处理委托调用、异常传播、StopIteration 捕获及协程方法转发,确保扁平化输出和行为一致性。 yield from 在树遍历中到底省了什么 直接说结论:yield from 不是语法糖,它把递归生成器的“委托调用”从手动循环 + yield 拆解成一条语句,避免了中间迭代器被提前耗尽、异常传播断裂、或 StopIter...
· Python · 289344

如何解决Python中的UnboundLocalError局部变量引用错误_使用global或nonlocal关键字声明

Python函数内同名变量报UnboundLocalError,因编译期将赋值变量标记为局部,读取在赋值前则出错;global用于模块级变量,nonlocal用于最近外层函数变量,二者不可混用且需提前声明。 为什么在函数里修改同名变量会报 UnboundLocalError Python 在编译函数时,只要看到某个变量在函数体内有赋值操作(哪怕只在 if 分支里),就会把它标记为局部变量。之后如果...
· Python · 173709

为什么Python脚本内存占用居高不下_使用objgraph与gc模块排查泄露

Python内存泄漏主因是对象被隐性持有而非未调gc.collect(),可用objgraph.show_growth()定位异常增长类型,再用gc.get_referrers()逆向追踪强引用源,并结合RSS监控与gc调试确认真实泄漏。 Python 脚本内存持续上涨,大概率不是“没调 gc.collect()”,而是对象根本没被识别为可回收——比如被全局容器悄悄持有、含 __del__ 的循环...
· Python · 155849

如何在Python Flask中集成Click命令行工具_使用app.cli.command

app.cli.command命令不出现的主因是Flask实例未完成初始化或注册时机过早;需确保在create_app()返回后注册,且装饰器顺序为@app.cli.command在上、@click.option等在下,同时避免顶层导入时执行注册。 为什么 app.cli.command 注册的命令不出现? 最常见原因是 Flask 应用实例未正确初始化 CLI 上下文,或者命令注册时机早于 ap...
· Python · 148557

为什么Python Tkinter Canvas保存的图片是空白_使用ImageGrab截取组件

Canvas无法直接保存为图片,需用ImageGrab截屏并精确计算坐标,Windows高DPI下须启用DPI感知并缩放坐标;更可靠方案是用PIL重绘所有元素。 Canvas 本身不支持直接保存为图片文件,所谓“保存空白”不是 bug,而是你根本没在保存 Canvas 的内容 Canvas 没有内置 save() 或 export() 方法 Tkinter 的 Canvas 是一个绘图容器,它只负...
· Python · 266336

Python Django 5.0如何使用异步视图提高并发_定义async def视图函数

Django 5.0 的 async 视图必须搭配 ASGI 服务器(如 uvicorn)运行,数据库操作需用 sync_to_async 包装或原生异步方法,避免阻塞事件循环;中间件、装饰器也须显式声明为 async 才能协同工作。 async def 视图函数必须搭配 ASGI 服务器运行 Django 5.0 的 async def 视图不会在 WSGI(如 Gunicorn + uWSGI...
· Python · 252749

如何利用Python实现定时抓取股票行情数据_通过Schedule库设置任务调度

直接用 schedule 库做股票行情定时抓取大概率失败,因其无异常处理、并发管理、重试机制及非交易日跳过能力;需配合 try...except、time.sleep、日志记录、交易日校验、请求头与超时设置、并发控制及数据校验等防护措施才能稳定运行。 直接用 schedule 库做股票行情定时抓取,不加防护机制的话,大概率会失败——它本身不处理异常、不管理并发、也不重试,更不会自动跳过非交易日。 ...
· Python · 290612