Python脚本

1. 脚本就是一步一步告诉计算机怎么做

  • 从上往下执行,顺序别乱。

  • 每行写一个"指令",比如算个数、打印一句话、读个文件。


2. 变量就是给东西贴个标签

  • 名字 = 值,比如 年龄 = 18,后面用 年龄 就代表 18。

  • 不用提前声明类型,爱存数字就数字,爱存文字就文字,灵活但别把自己搞晕。


3. 缩进比括号更重要

  • 代码块(比如 if 判断、循环、函数)靠缩进来区分,一般用 4 个空格,别混用 Tab。

  • 缩进错了,程序直接报错,比语法错误还常见。


4. 三种常见结构

  • 顺序:挨着写就行。

  • 分支if 条件: 满足就干这个,else: 不满足就干那个。

  • 循环for 变量 in 范围: 重复做某件事,while 条件: 条件满足就一直做。


5. 函数:把重复的活儿打包

  • def 函数名(参数): 把一段代码包起来,起个名字,需要时调用它。

  • 好处:不用复制粘贴,改一处全改好,逻辑更清楚。


6. 报错别慌,看最后一行

  • Python 会告诉你哪一行出错了,是什么类型的错(比如 NameError 名字没定义、TypeError 类型不匹配)。

  • 学会看错误提示,大部分问题都能自己解决。


7. 导入别人写好的功能

  • import 模块名,比如 import os(操作系统相关)、import json(处理JSON数据)。

  • 用模块里的东西:模块名.功能名(),比如 os.getcwd() 获取当前目录。

  • 常用内置模块就那十来个,记住怎么查文档就够了。


8. 文件操作:打开→操作→关闭

python

复制代码
with open('文件名.txt', 'r', encoding='utf-8') as f:
    内容 = f.read()
  • with 会自动帮你关文件,防止忘关或出错。

  • 模式:'r' 读,'w' 写(覆盖),'a' 追加。

  • 处理中文记得加 encoding='utf-8',否则容易乱码。


9. 列表、字典是装东西的"箱子"

  • 列表[1, 2, 3],有序,按编号(0,1,2...)取东西。

  • 字典{"名字": "张三", "年龄": 20},用"键"找"值",像查字典。

  • 这俩最常用,会循环遍历它们基本就能处理大部分数据。


10. 异常处理:先试试,不行再补救

python

复制代码
try:
    可能出错的代码
except 某种错误:
    出错了怎么办
  • 不用让程序因为一个小错误就整个崩溃,可以优雅地提示或跳过。

11. 写脚本的小习惯

  • 起名字用英文+下划线,比如 user_age,别用拼音缩写。

  • 复杂逻辑写注释,用 # 解释一下这步是干嘛的。

  • 开头加上 #!/usr/bin/env python3(Linux/Mac下指定解释器)。

  • 如果脚本要被其他文件调用,用 if __name__ == "__main__": 把执行代码包起来,防止被导入时自动运行。


12. 虚拟环境:每个项目一个干净的小房间

  • python -m venv 环境名 创建,激活后装的各种库互不干扰。

  • 避免 A 项目要 requests==2.0,B 项目要 requests==3.0 时打架。


13. 别重复造轮子

  • 遇到常见任务(比如发邮件、爬网页、处理Excel),先搜有没有现成好用的第三方库。

  • pip install 库名 安装,然后看官方示例,比自己从头写省力十倍。


Python 脚本的精髓就是:想清楚逻辑 → 用最简单的语法写出来 → 出错看提示改 → 重复的活儿让函数或循环做 → 复杂功能借别人现成的库。多写几次,手就熟了。

相关推荐
kyle~38 分钟前
Swagger ---基于 描述文件 生成 交互式API文档 的工具
前端·后端·规格说明书·说明文档
meilindehuzi_a8 小时前
从零理解并实现 RAG:用 LangChain.js 构建语义检索问答系统
开发语言·javascript·langchain
风流 少年8 小时前
Julia
开发语言·julia
wuqingshun3141598 小时前
什么是责任链模式,一般用在什么场景?
java·责任链模式
江畔柳前堤9 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
世界哪有真情9 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
:-)9 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
wuqingshun31415910 小时前
说一下消息队列的模型有哪些?
java
Listen·Rain10 小时前
Vue3:setup详解
前端·javascript·vue.js
GIS阵地10 小时前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis