十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Python零基础入门:环境搭建、基础语法与避坑实操指南

Python零基础入门:环境搭建、基础语法与避坑实操指南 我公众号后台收到过无数次“Python入门先看什么”的私信也带过不少从零开始的同事。说实话学Python最难的地方往往不是语法本身而是搞不清楚“学来干什么”和“环境怎么搭”。语法书翻了几十页一打开电脑还是不知道从哪里下手。今天这篇就按我自己的学习路径来写。不讲大道理直接从装环境到基础语法再到避坑技巧一步步带你跑起来。文章尽量让零基础的人能跟上也尊重那些已经写过几行代码、想系统补一遍语法的朋友。这篇文章的核心就一句话与其背语法不如直接拿真实需求当练习题边用边学。注意这篇文章用的Python 3.10版本。Python 2已经停止维护多年网上老教程里的print写法如果带空格print hello直接跳过那是古董语法。1. 为什么选Python而不是C或Java一个老程序员的大实话热词表里同时出现了C基础语法、Java语法基础和Python入门很多新手就在这里卡住了不知道该从哪个开始。我用一个比喻说清楚C和Java更像是造房子时要你先学会烧砖、调水泥Python则是给你一套搭好的积木先让你把房子搭出来以后有兴趣了再研究积木是怎么生产的。C擅长嵌入式计算、游戏引擎、操作系统底层。学习成本高一个指针就能劝退一大半人。Java擅长大型企业级后端、安卓开发。语法繁琐配置复杂适合作为第二门语言去深入。Python擅长数据分析、自动化脚本、爬虫、人工智能、Web后端。语法接近英语口语不用管底层内存、指针等复杂概念。我见过太多人一上来就啃C被指针搞得怀疑人生最后彻底放弃编程。如果你没有明确非用C不可的需求只是想做点自动化办公、爬取数据、入门人工智能方向或者单纯想学会“编程思维”Python绝对是当前综合成本最低的选择。另一个被忽略的优势是生态。Python的第三方库极其丰富处理Excel用openpyxl网页爬取用requests和BeautifulSoup数据分析用pandas画图用matplotlib这些库让Python在真实工作中“什么都干得了”学习过程中能获得的成就感远超其他语言。当然我不是劝所有人“只学Python不学其他”。等你用Python建立了编程感觉再回头学Java或C会容易不少因为编程思维是共通的变的只是语法和API。2. 环境搭建这一关装Python比写代码更容易劝退人2.1 官网下载还是国内镜像Windows用户看这里很多新手在这一步就卡住了。打开python.org官网看到一堆版本号不知道该下哪个。以我自己的经验下载安装包时注意两点即可官网下载慢的话直接用国内镜像站比如华为云、清华大学开源镜像速度快得多。搜索“华为云 python 下载”就能找到入口。一定要下载最新的稳定版文章编写时3.13已经发布建议直接装3.11以上。不要选带rc、beta字样的预览版那些是给人测试用的可能有未知问题。Windows安装时有个被无数教程强调但依然有人忽略的细节安装启动页第一个勾选框“Add Python to PATH”必须勾上。这一步如果不勾后续在命令行里输入python会提示“不是内部或外部命令”然后你又得搜各种教程改环境变量白白浪费时间。安装完成后按Win R输入cmd打开命令行输入python --version能正常显示Python 3.x.x就说明安装成功。2.2 VSCode、PyCharm还是其他编辑器别在这上面纠结太久热词里同时出现了“vscode python环境配置”和“pycharm配置python环境”可见这个环节确实卡住不少人。我的建议是前期不用花太多时间纠结编辑器就用VSCode。原因很简单PyCharm功能强大但启动重、配置项多新手容易陷在设置里出不来。VSCode轻量、插件生态好、免费开源配置Python环境只需要三步装插件、选解释器、跑起来。VSCode配置Python的完整步骤如下去官网下载VSCode安装包全程默认安装。安装完成后在扩展商店搜索“Python”安装微软官方发布的那个扩展发布者显示为Microsoft。随便创建一个文件夹比如D:\python_learn用VSCode打开这个文件夹。新建文件test.py写一行代码print(hello world)。右上角有一个“播放”按钮点它就能运行。第一次运行时VSCode会提示选择解释器选中你刚装的Python版本即可。如果你非要坚持用PyCharm记住一点到官网下载Community社区版不要上来就装Professional专业版。专业版收费不说很多Web开发功能你也用不上白白增加学习成本。2.3 pip和国内源装第三方库的必踩一坑说句实话热词里的“python国内源地址”“python安装numpy库的方法”说明很多人在pip这一步踩了坑。pip是Python的包管理工具用来安装第三方库。当你执行pip install requests时它默认从官方源下载这个源在国外速度极慢甚至直接卡死。解决办法就是换国内源。我自己长期用的是清华源配置方式非常简单命令行执行一次即可pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple设置完之后再安装库就是几秒钟的事。如果某个库你还想临时指定源安装可以这样pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple提示如果你电脑上同时装了多个Python版本pip可能指向旧版本。这时候用python -m pip install 包名代替pip install 包名可以确保装到当前Python对应的环境下。3. 变量与数据类型先把“容器”的概念弄清楚3.1 变量就是给数据贴个标签很多初学者对变量的理解是“盒子”但我更愿意把它理解成一个“标签”。你写下面这行代码name 老周含义是数据老周在内存里占了一个位置我给它贴了个名字叫name。以后我只要喊namePython就知道我在说老周这个数据。这种“贴标签”的视角能帮你避免一个经典误区搞不懂“为什么a10之后ba然后b20a还是10”。如果理解为标签就很容易想通——a指向10b先也指向10但后来b改指向20a始终指向10互不影响。Python变量命名有几条硬规则只能包含字母、数字、下划线不能以数字开头。不能使用关键字比如if、for、while、class这些。推荐用snake_case小写加下划线的风格比如user_name。3.2 五个基础数据类型学扎实了后面就舒服了Python基础数据类型一共就那么几个一次性搞清楚每个的特点后面所有代码都能看懂一大半。整数intage 25对应数学里的整数。浮点数floatprice 9.9就是小数。有个经典问题是0.1 0.2不等于0.3这是因为计算机用二进制表示十进制小数的精度误差。遇到金额计算别用浮点用Decimal。字符串strname python用引号包裹的文本。单引号双引号都可以但别混着用——开头用了单引号结尾又想用双引号会直接报错。布尔值boolis_ok True只有True和False两种值用于条件判断。NoneTyperesult None表示“这里啥都没有”不是0也不是空字符串是一个独立的数据类型。多提一句字符串。字符串是编程里出现频率最高的数据类型新手建议尽早学会三种操作方法# 拼接用f-string三引号字符串拼接 name 小明 age 18 print(f我叫{name},今年{age}岁) # 字符串常用方法 text hello world text.strip() # 去掉两端空格 - hello world text.split( ) # 按空格分割 - [hello, world] text.replace(world, python) # 替换 - hello python # 切片从字符串里取一段 msg python msg[0] # p msg[2:] # thon msg[-1] # n热词里有“python类型转换”这里也给个最常用的对照表转换目的写法注意事项字符串转整数int(25)字符串必须是纯数字int(25abc)会报错整数转字符串str(25)几乎所有类型都能转成字符串转浮点数float(9.9)同上必须合法数字输入转整数int(input(输入年龄: ))input()返回的永远是字符串3.3 四种“容器类型”列表、元组、字典、集合各干各的容器类型的本质就是“能装多个数据”的盒子。这个思维要建立起来因为后续爬虫、数据分析、自动化脚本里全是它们。**列表list**是最常用的用方括号表示有序、可修改fruits [apple, banana, orange] fruits.append(grape) # 末尾加一个 fruits.insert(0, pear) # 指定位置插入 fruits.remove(banana) # 删除指定元素 fruits[0] # 通过索引访问得到apple**元组tuple**用圆括号有序但不可修改。它的意义在于“这个数据你不能改”。比如程序里的颜色配置项、固定坐标用元组可以避免自己不小心改掉position (120, 50) # position[0] 130 # 这行会报错元组不可修改**字典dict**用花括号是“键值对”结构。后端的JSON数据、爬虫解析出来的结果、用户的个人信息几乎全是字典user {name: 张三, age: 28, city: 杭州} user[name] # 通过键取值得到张三 user[age] 29 # 修改值 user.get(city, 默认值) # get方法取值键不存在时不会报错**集合set**用花括号但和字典不同内部元素是不重复且无序的。最适合做去重和判断元素是否存在nums [1, 2, 2, 3, 3, 3] unique_nums set(nums) # {1, 2, 3}热词里有“python筛选一样的”用集合去重是最直接的方法。4. 条件判断与循环程序的控制流从这里起步4.1 if/elif/else结构让代码学会做选择写程序最核心的一件事就是让代码“根据条件做出不同选择”。Python的条件判断语法非常有特色没有花括号靠“缩进”来划分代码块。这也是新手最容易踩的坑——缩进不一致就报错。看一个完整例子score int(input(请输入考试成绩: )) if score 90: print(优秀) elif score 60: print(及格) else: print(不及格)几点经验补充elif是else if的缩写可以连续写很多个。判断条件从上往下执行一旦某个条件满足后面的所有分支都不会执行。所以写的时候要注意顺序比如先判断90分以上再判断60分以上如果反过来先判断60分以上90分也会走“及格”分支逻辑就出错了。每个分支执行语句前必须有统一缩进Python官方推荐4个空格。别混用Tab和空格VSCode默认Tab就是4个空格还好但有些编辑器会保留Tab和空格的差异一旦混用就会报IndentationError。每段的 if 段落确保在不会太长控制篇幅。除了if/elif/else条件表达式的组合也建议尽早掌握age 20 has_id True if age 18 and has_id: # and: 两者都满足 print(可以进入) if age 12 or age 80: # or: 满足其一 print(有优惠) if not has_id: # not: 取反 print(请出示证件)4.2 for循环和while循环重复的事让程序干for循环用于遍历可迭代对象按顺序取出每一个元素names [小红, 小明, 小刚] # 遍历列表 for name in names: print(f欢迎 {name}) # 遍历指定次数 for i in range(3): print(f这是第{i}次循环) # 遍历字典 user {name: 张三, age: 28} for key, value in user.items(): print(key, value)range(3)生成0、1、2三个数字。range(1, 5)生成1到4。range(0, 10, 2)生成0、2、4、6、8第三个参数是步长。while循环用于“条件成立就继续执行直到条件不成立”count 0 while count 5: print(count) count 1这里count 1就是count count 1的简写。新手最大的坑就是忘了写这一行导致条件永远成立造成死循环程序一直跑不结束。在VSCode里按红色停止按钮可以强制终止。熟练掌握循环之后热词里的“01背包动态规划python”“动态规划最少硬币python”这类算法题就已经有了解题基础因为它们本质还是循环加状态转移只是逻辑更复杂。4.3 break、continue和pass循环里的小控制break立即跳出整个循环。continue跳过本次循环剩余部分进入下一次循环。pass占位符表示“这行什么都不做”。常用于还没想好逻辑的代码块避免语法报错。举个例子for i in range(10): if i 3: continue # i等于3时跳过不打印 if i 7: break # i等于7时终止循环 print(i)输出是0、1、2、4、5、6。3没打印到7之前就停了。5. 函数把重复劳动打包成可复用的工具5.1 定义和调用一句话讲清楚的语法结构函数就像一根“水管”从入口接参数在肚子里做加工从出口返回结果。定义函数的语法def 函数名(参数1, 参数2默认值): 这里写文档字符串说明函数是干什么的 # 函数体 return 要返回的值比如写一个计算矩形面积的函数def rectangle_area(length, width): 计算矩形面积 area length * width return area a rectangle_area(5, 3) print(a) # 15这里length和width是形式参数调用时的5和3是实际参数。有几个需要重点理解的概念返回值return后面的东西会被传回调用处用变量接住。如果不写return函数返回None。默认参数调用时如果没传这个参数就用默认值。但要遵守“默认参数放最后”的规则否则语法错误。局部变量函数内部定义的变量只能在函数内部使用外部访问不到。这保护了代码不被意外修改也是函数式编程思想的起点。热词里有“python abs函数”abs()就是Python内置的求绝对值函数。你可以直接在代码里用abs(-5)得到5。内置函数很多不用背装个Python后在命令行输入dir(__builtins__)就能看到全部用到哪个查哪个即可。5.2 一个真实的小项目用函数整合基础语法我教新手时最喜欢布置的一个小练习是写一个简易“用户登录注册”控制台程序。它能同时覆盖变量、条件、循环、函数四大基础知识点。users {admin: 123456, test: abcdef} def register(username, password): if username in users: return 用户名已存在 users[username] password return 注册成功 def login(username, password): if users.get(username) password: return 登录成功 return 用户名或密码错误 def show_menu(): print(1. 注册) print(2. 登录) print(3. 退出) while True: show_menu() choice input(请选择: ) if choice 1: u input(用户名: ) p input(密码: ) print(register(u, p)) elif choice 2: u input(用户名: ) p input(密码: ) print(login(u, p)) elif choice 3: print(再见) break else: print(无效选择)这个程序能把本篇文章前面讲的所有基础语法串起来。建议你亲手敲一遍不要复制你会感受到“语法真的没想象中难”的成就感。这也解释了热词里的“免费python源码大全”为什么受欢迎——看源码确实是学代码的好方法但只看不敲等于白看。6. 新手期最容易踩的坑这些报错我每个都见过6.1 常见报错信息对照表给一张我总结的“新手报错速查表”遇到报错先翻这张表报错信息真实含义出现场景NameError: name x is not defined变量未定义拼写错误、变量没赋值就使用TypeError: can only concatenate str类型不能直接拼接字符串和数字混用IndexError: list index out of range索引越界访问列表里不存在的下标如长度为3的列表访问list[5]KeyError: keyname字典里没有这个键用不存在的键去字典取值建议用.get()IndentationError缩进错误Tab和空格混用、缩进未对齐FileNotFoundError文件找不到打开的文件路径不对注意反斜杠转义问题ModuleNotFoundError模块未安装/未找到没pip install就import或环境选错6.2 一个最迷惑人的场景VSCode按运行却提示ModuleNotFoundError这个坑几乎每个用VSCode的人都会遇到你已经pip install了某个库但VSCode运行代码时还是提示找不到。这个问题的根因是VSCode当前选中的Python解释器和你pip install时使用的Python不是同一个。比如你用命令行pip install装到系统Python里但VSCode左下角选择的是虚拟环境venv里的Python两边不互通。解决办法在VSCode底部状态栏左下角点击Python版本号。在弹出的下拉列表里选择“全局解释器”或你希望使用的那个环境。选择后重新运行代码再遇到module找不到就在当前解释器的环境中重新pip install。6.3 Python没有“”自增运算符这个不算报错但值得单独说。许多有其他语言背景的人会习惯写i在Python里这不符合语法会报语法错误。Python的自增就是i 1。另外Python也没有switch/case语句多分支用if/elif/else或字典映射替代。这些差异不需要刻意去背踩过一次坑就记住了。7. 学完基础语法之后的路手里有锤子得知道哪里有钉子7.1 按方向选路线热词里同时出现了“python爬虫”、“python数据分析与可视化”、“vscode python环境配置”说明大部分学Python的人想走的方向就那么几个。我根据自身接触过的实践经验给出各自的学习重点方向一爬虫与自动化。基础语法学完后下一步学requests库发送HTTP请求再学BeautifulSoup或lxml解析网页。再往后可以接触Scrapy框架。这类项目见效快写一个脚本就能把网页表格数据批量下载到Excel特别适合作为第一个实战项目。方向二数据分析。会基础语法后直接学pandas数据处理和matplotlib画图配合Jupyter Notebook编辑器学习体验最佳。热点里的“python数据分析与可视化”就是这个方向。这个方向的核心不是Python语法而是数据思维。方向三Web开发。选Flask或FastAPI入门写一个自己的博客或接口服务。这个方向需要补一些HTML、CSS、数据库知识投入时间更长但产出也很直观。方向四人工智能。先学NumPy数学计算库、Pandas再上手机器学习框架scikit-learn或深度学习框架PyTorch。不建议零基础直奔AI先把基础语法和pandas玩熟否则很容易被数学和框架概念双重劝退。7.2 如何有效找源码、读源码热词里的“免费python源码大全”也说明大家都想从例子里学。找源码我推荐GitHub的搜索技巧搜索关键词加awesome前缀比如awesome python能找到精选项目列表。也可以搜python small projects找适合新手的小项目。找到源码后不要从头到尾通读。我的做法是先运行起来看输入输出再顺着def函数名读主流程最后精读核心函数。大概率你会学到比教程更有用的写法。就我个人经验而言教过的人里面学得最快的都不是把语法书背得最熟的人而是那种“今天学了列表明天就想用它写个待办事项工具”的人。语法书翻三章不如亲手跑通一个小脚本。学完这篇文章的基础语法你可以尝试写一个自己的项目练手写一个“待办事项管理器”支持添加任务、删除任务、展示所有任务。功能用字典加列表就够了代码量大概一百行却是从“看教程跟着敲”变成“自己独立写”的分水岭。经历过这个阶段下一篇我们要聊的函数进阶和文件操作学起来就会顺畅得多。
返回列表