Python基础第一讲:环境搭建、变量与函数入门全解析
2. Python基础第一讲到底在讲什么很多人第一次接触编程搜索栏里打的就是python 基础第一讲或者python入门。这类标题看起来简单背后其实藏着一个很实际的需求我想用Python做点什么但从哪一步开始心里完全没数。我写这一讲不是为了把语法书目录念一遍而是按照装好环境 → 跑通第一个程序 → 认识变量 → 写出第一个函数这条主线来设计。学完之后你至少有这三个能力电脑上有能运行的Python环境能看懂print、变量、数据类型、类型转换是什么意思遇到报错知道往哪个方向排查。有了这些底子后面你再看到python爬虫python写入excelpython连接公司系统实现自动拉表这些具体场景才真的有办法去搜、去试、去折腾。这一讲适合三类人完全没碰过编程的学生想转行做数据或自动化办公的职场人以及纯属好奇想学个新技能的朋友。如果你已经能用R、MATLAB或者Java处理数据那这讲内容可以跳着看重点留意变量和函数这两节的口径就行。2.1 为什么学习路线要这样安排编程学习有个很大的坑就是一上来被塞了一堆数据类型、运算符、流程控制、列表、字典、元组……的语法清单结果记了半个月打开编辑器还是不知道写什么。所以我给python基础第一讲定的路线是安装 → 跑通 → 变量 → 函数。先让屏幕上出现输出再往上加逻辑。人对于能立刻看到反馈的事情学习效率是很高的。另一个关键设计是从第一讲就引入函数这个概念。函数是组织代码的最小模块你可以把它理解成给一段动作起个名字以后反复调用。很多同学学到后面代码写得像流水账就是因为基础阶段没养成用函数封装逻辑的习惯等到项目复杂了才来改非常痛苦。工具选型上我建议先使用Python自带的IDLE编辑器等基本语法熟了再切到VSCode或PyCharm。原因是IDLE零配置、零干扰一打开就能写VSCode虽然强大但还要装扩展、选解释器、配置终端这些对新手来说都是额外的心智负担。2.2 学习预期的管理在这一讲里我不会承诺学完就能写出量化交易策略学完就能爬取全网数据那是营销号干的事。基础第一讲真正的价值是让你具备自我摸索的底层能力。比如网上一搜python画图横坐标太密集python如何连接公司系统实现自动拉表你能看懂那些解决方案是在说什么再比如搜到python定义函数python类型转换这类教程你能判断它讲得対不对、适不适合自己。这个筛选和吸收的能力比背十个知识点重要得多。3. 环境搭建第一个拦路虎怎么驯服关于python怎么安装电脑如何装python环境网上教程一抓一大把但我发现真正卡住新人的往往不是步骤多而是装完不知道成没成功。所以这一章我尽量把每一步讲透包括那些教程默认你会但其实不会的细节。3.1 下载安装的版本选择与关键勾选去Python官网下载安装包网址是python.org/downloads注意识别官方域名不要从乱七八糟的下载站下载安装包很容易附带一堆推广软件。建议下载Python 3.10以上的版本。虽然现在还有很多老项目在用Python 3.8新学的话没必要刻意选旧版新版本语法兼容性更好第三方库支持也更全。Windows安装时有两件事要盯住勾选 Add Python to PATH。PATH是Windows系统用来寻找程序的路径列表可以理解成一个通讯录。不把Python加进这个通讯录你在终端敲python命令时系统根本不知道去哪找它。我见过太多人死在这一步。选择 Install Now 而不是 Customize installation。自定义安装里那些高级选项对新手没有意义容易改出问题。安装完成之后验证是否成功按WinR输入cmd回车打开终端依次敲以下两条命令每敲完一条按一次回车python --version pip --version第一行出现类似Python 3.12.0的输出说明Python本体正常第二行出现类似pip 24.0 from ...的输出说明包管理工具也正常。两个都出来环境搭建这一步才算真正走完。3.2 开发环境怎么选从IDLE到VSCode环境搭建完之后紧接着就是用什么写代码的问题。我做过一个简单的对比帮你在初期省掉选择困难。编辑器上手成本启动速度适合阶段备注IDLE极低装完自带快第一讲到前几讲零配置适合写短代码VSCode中等需要装扩展中学完基础语法后免费、插件生态极强主流选择PyCharm较高界面复杂慢写正式项目时社区版免费功能完整但资源占用高我个人的建议是第一讲就用IDLE。它虽然没有代码高亮补全那些豪华功能但恰恰因为简陋你能把注意力放在语言本身。等练到后面自然会产生换个更顺手的编辑器的诉求那时候再切VSCode你会觉得它简直是解放。如果已经决定直接用VSCode记住三个关键动作安装Python扩展搜索 Python 并安装Microsoft官方那个、按CtrlShiftP打开命令面板执行 Python: Select Interpreter 选择解释器、在终端里确认使用的是同一个Python环境。很多新人遇到的代码在VSCode里跑不了装了库却报ModuleNotFoundError八成就是这三个动作没做全。3.3 环境变量没配好时的手动补救如果安装时漏勾了Add to PATH或者是在MacOS、Linux上需要手动管理Python环境得知道怎么补救。Windows手动配置环境变量入口比较深但操作不难。右键此电脑 → 属性 → 高级系统设置 → 环境变量在系统变量里找到名称为Path的项双击打开新增两条路径Python的安装目录通常是C:\Users\你的用户名\AppData\Local\Programs\Python\Python3xx同一目录下的Scripts子目录这个目录放着pip等命令行工具改完之后重新打开一个终端再执行python --version。注意改完环境变量之后原来开着的终端窗口要关掉重开因为终端只在启动时读一次环境变量。MACOS和Linux的情况简单一些大多系统自带Python3直接在终端敲python3就能进交互模式。用Linux系统安装python也不复杂Debian系发行版执行sudo apt install python3即可。但要注意某些系统的默认Python是2.x或3.6这种老版本命令要确认清楚实在不行就先装python3而不是python。3.4 pip安装第三方库的正确姿势基础第一讲学完你很可能立刻就想装第三方库比如pip install numpy、pip install opencv-python。这个需求非常正常Python强大的生态主要就是靠这些库支撑起来的。安装库的基本命令是pip install numpy pip install opencv-python pip install scikit-learn如果默认源太慢、经常超时可以临时指定国内镜像源pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple-i参数就是指定下载源清华源是国内比较稳定的选择。常见的坑有两个。第一个是pip 不是内部或外部命令说明Scripts目录没有加入PATH按上面3.3手动补配置。第二个是装了库但import报错这种多数情况是终端里的Python和你编辑器的Python不是同一个也就是解释器选错了VSCode用户从Select Interpreter改成同一个环境就能解决。4. 第一个程序与基础语法print只是开胃菜环境搞定后激动人心的时刻到了。但我建议你别满足于运行成功的那个绿色三角好好抠一抠print、变量、类型转换这些基础点它们是你后面所有代码的地基。4.1 Hello World没你想的那么简单在IDLE或编辑器里新建一个文件输入这行代码print(python 基础第一讲)保存文件时注意文件名后缀是 .py。按F5运行窗口里出现这行字恭喜你你已经跑通了人生的第一个Python程序。但Hello World里还藏着几个以后天天用得上的细节print()默认会在结尾自动换行所以每个print都是一行输出。print()里可以放多个值用逗号分隔输出时它们会用空格连起来。比如print(答案是, 3 5)输出答案是 8。字符串可以用双引号...包着也可以用单引号...包着效果一样。嵌套引号时要注意配对比如想打印他说你好外层用单引号内层用双引号就不会冲突。Python3默认UTF-8编码中文基本不会乱码。如果在某些老式cmd窗口里出现乱码先执行chcp 65001切到UTF-8代码页再运行。再补充一个有意思的点print还能直接做算术。比如print(10 / 3)会输出3.3333333333333335这个5结尾的小数精度问题就是后面学习浮点数时会遇到的经典现象第一讲先混个脸熟。4.2 变量编程的存储格如果说程序是一台做菜机器变量就是上面的碗和盘子把数据放进去随取随用还可以重新装别的东西。在Python里定义一个变量不需要提前声明类型直接写名字和等号就行count 10 price 3.5 name 张三 is_student True这里四个变量分别存了整数、浮点数、字符串、布尔值。等号右边的值会放进左边的变量名里以后在代码里用到countPython就知道你说的是10。变量名有两条硬性规则不能以数字开头不能用Python关键字比如if、for、def这些。另外有一条习惯性约定命名要见名知意用user_name而不是a。等你回头维护自己写的代码时会感谢这个习惯。Python变量还有一个非常大的特点叫动态类型。也就是说同一个变量可以先存数字后存字符串Python不会拦你count 10 count 现在变成字符串了 print(count)这个特性让Python写起来很爽但也要小心类型变了后续代码的行为可能完全不一样。4.3 数据类型int、float、str、bool、None变量里装的数据是有类型的。Python基础阶段掌握五个类型基本就够用了类型中文名例子典型用途int整数10、-3计数、索引float浮点数3.14、0.5模拟连续值str字符串hello文本处理bool布尔值True、False条件判断NoneType空值None表示什么都没有想知道一个变量是什么类型用type()函数price 9.9 print(type(price)) # 输出 class float第一讲里对这些类型建立直觉比背定义重要。比如int和float之间有个微妙区别3和3.0在Python眼里是不同的数据类型但数学上它们是同一个数。这个区别在计算时会体现出来比如10 / 2结果是5.0而不是5因为除法即使能整除结果也默认是浮点数。4.4 类型转换让数据从一种形态变成另一种不同类型之间往往不能直接操作。比如字符串和数字相加age 25 print(年龄是 age) # 这可以字符串拼字符串 print(age 1) # 报错TypeError错误信息会提示can only concatenate str (not int) to str意思是字符串只能拼接字符串不能拼整数。这类TypeError是新手报错里的常客并不吓人它只是告诉你别跨类型运算。解决方式就是显式类型转换int(123) # → 123字符串转整数 float(3.14) # → 3.14字符串转浮点数 str(456) # → 456整数转字符串 int(3.99) # → 3注意是截断不是四舍五入有几个转换容易踩坑提前打个预防针int(12.5)会报ValueError因为int函数不认小数点int(abc)也会报错。所以从用户输入中转数字时一定要确保内容能被安全转换。input()函数在外行人看来很简单但它有两个地方特别容易引起混淆输入的内容永远都是字符串哪怕用户输入了数字input返回的也是数字的字符串形态。所以正确姿势是先存到变量再转换成需要类型age input(请输入你的年龄) age_num int(age) print(明年你, age_num 1, 岁)这类任务的综合训练就是python变量的类型练习题里最常见的模式定义几个变量用type()观察类型再用int()/float()/str()做转换逐步理解数据形态变化在程序中的作用。5. 函数定义与经典入门编程题实操概念积累够了就该动手解决问题了。下面两个例子是网上搜python定义函数python经典100编程题李白打酒pythonpython编程求长方体体积时非常容易撞见的内容我把它们串起来讲用函数的方式组织代码一方面练手另一方面强化逻辑封装的意识。5.1 函数给一段代码起个名字函数的本质是把一段动作封装起来定义一个可复用的代码块。定义函数用def关键字def greet(name): print(你好, name)调用时写函数名加括号greet(张三) # 输出你好 张三如果函数需要返回计算结果用return把结果送出去def add(a, b): return a b result add(3, 5) print(result) # 输出 8几个关键概念def后面是函数名和括号里的参数列表函数体要缩进4个空格没有return的函数调用后返回值是None函数定义要先于调用执行。这些规则在第一讲阶段先记住语法长什么样后面循环、字典、文件操作时再反复用慢慢就内化了。在函数设计上第一讲就要建立单一职责的直觉一个函数只做一件事。宁可多写几个小函数也不要写一个几百行的大函数。代码可读性和可测试性都会受益。5.2 经典题一李白打酒李白街上走提壶去打酒遇店加一倍见花喝一斗三遇店和花喝光壶中酒试问壶中原有多少酒这道题网上变体非常多。直接正向设方程新手容易绕。但借用一个很自然的反向推导就有解了。逆向过程是最终喝光为0最后一步是见花喝掉一斗所以见花前有1斗再往前一步是遇店酒量翻倍那么遇店前应该是1/2斗。三次迭代就把原来酒量反推出来。用代码写反向逻辑非常顺def original_wine(cycles3): total 0.0 for _ in range(cycles): total 1 # 逆推见花先加上喝掉的一斗 total / 2 # 逆推遇店再除以2还原翻倍前 return total print(original_wine()) # 输出 0.875结果0.875斗和手工推出来一致。这个例子说不上难但它把逆向思维循环函数封装三个能力点全练到了。尤其注意循环里先加后除的顺序和正向遇店加一倍见花喝一斗正好相反这就是代码和现实逻辑的映射关系。5.3 经典题二长方体体积python编程求长方体体积是另一个高频基础题。逻辑本身简单体积 长 × 宽 × 高。def cuboid_volume(length, width, height): return length * width * height print(cuboid_volume(3, 4, 5)) # 输出 60但实际编程里长度、宽度、高度往往是从用户输入读进来的这就得和前面的类型转换联动length float(input(请输入长)) width float(input(请输入宽)) height float(input(请输入高)) print(体积是, cuboid_volume(length, width, height))这里用float()而不是int()是因为输入可能是2.5这种小数。如果你用int遇到小数又会ValueError。这个小细节就是常说的把边界情况考虑清楚。5.4 为什么第一讲就要练函数很多基础教程会把函数讲课放到很后面我恰恰相反。理由有两点第一函数能把计算过程变成可命名、可复用、可传递的单元越早建立这种抽象能力后面写代码的整洁度越高。第二你以后见到python量化交易策略代码python爬虫python连接oracle查询数据这些实际场景核心逻辑都长在函数拼装和参数传递上。虽然第一讲只是点到为止但这个思维种子要尽早埋下。再补充一个预告函数和数据结构是搭配使用的。比如python数组切片本质上就是对一个列表按[起始:结束:步长]取片段第一讲用不到但它和你刚才用的range(cycles)、float(input())一样都是基础语法的延伸。基础不牢的话后面会到处卡壳。6. 新手避坑五类高频报错与排查技巧编程入门报错是日常。很多新手被报错劝退不是能力问题主要是没人告诉过他们报错其实是程序在给你递线索。这一章我用一个速查表把第一讲阶段最常遇到的报错整理出来你按表索骥大部分问题十分钟内能解决。6.1 常见报错与解决方案速查报错信息关键词出错场景解决方案SyntaxError: invalid syntax括号不配对、字符串引号漏了、写了中文符号检查()把中文全角符号改成英文半角符号NameError: name xxx is not defined变量/函数没定义就使用或者名字写错看是不是拼写不一致变量必须先赋值再使用TypeError: can only concatenate str (not int) to str字符串和数字直接拼接用str()把数字转成字符串或格式化输出ValueError: invalid literal for int() with base 10把12.5或abc这类内容转int确认字符串内容改用float()或先做校验ModuleNotFoundError: No module named numpyimport了一个没安装的库执行pip install numpy注意是当前解释器环境中前四个都是代码逻辑问题最后一个其实是环境问题。特别提醒当你出现ModuleNotFoundError不要急着换源重装先确认当前运行代码的解释器是不是你装库的那个Python。VSCode用户在右下角状态栏就能看到当前解释器路径IDLE默认跟着系统Python走相对不容易出错。6.2 两个被问爆的环境问题每次开课必被问到的问题之一是我明明pip install了numpy代码里还是ModuleNotFoundError。常见原因是装到了系统Python但VSCode里选了解释器是另一个环境。这个问题的排查思路固定为先看解释器再看安装日志再确认PATH。另一个高频问题是python画图横坐标太密集。这个属于学到matplotlib之后会遇到的现象本质是刻度自动生成策略过于密集解决方法是手动设置间隔或旋转角度import matplotlib.pyplot as plt plt.xticks(rotation45) # 或用 MaxNLocator 控制刻度数量 from matplotlib.ticker import MaxNLocator plt.gca().xaxis.set_major_locator(MaxNLocator(nbins10))虽然这是后面的内容但这里先写下来让你对Python问题的解法通常不止一个有个基本认知以后遇到不会慌。6.3 一些承前启后的学习建议搜热词的时候我还看到python pandaspython build邻接矩阵python dataframepython写入excel等等。这些都属于Python生态里的中后期内容第一讲不需要去追但你可以知道它们的定位pandas和dataframe是表格数据处理的底座邻接矩阵和图论是算法竞赛常客excel操作是办公自动化的核心。所有这些都是建立在变量、类型、函数、控制流四个地基之上的。我的建议是在第一讲结束之后千万别急着去啃大而全的框架先把课上这些代码多敲几遍再尝试改参数、加条件、换输入。比如把李白打酒的循环次数改成4看看结果怎么变把长方体体积函数加一个validate逻辑输入负数时给出提示。这种小步快跑的练习方式比看十遍教程都管用。7. 第一讲之后你可以做点什么内容讲到最后我想说点真实的体会。我见过太多自学Python的朋友买课、收藏教程、关注一堆公众号但打开编辑器的次数屈指可数。其实python基础第一讲最核心的东西不是某个精妙的语法而是让你形成一个最小闭环写代码 → 运行 → 看输出 → 改代码 → 再运行。这个闭环一旦跑起来后面所有的学习都是在往里面加零件。第一讲学完你可以试着给自己布置三个小任务把李白打酒函数改成任意循环次数写一个函数输入三角形的三条边返回是否构成三角形用input()和类型转换写一个计算BMI的小脚本。如果都能独立完成恭喜你已经具备继续往下学列表、字典、循环、文件操作的资格了。另外一个很值得做的动作是从现在起保留自己写过的每一个脚本哪怕再简陋也别删。三个月后再回头看第一讲的Hello World你会真实感受到自己的进步。这种正反馈比任何学习计划都持续。