Python基础语法详解:零基础入门变量、数据类型与循环控制
很多刚接触编程的同学在学 Python 基础语法时都会有一种共同感受视频看懂了笔记也抄了但自己打开编辑器却不知道从哪里开始写。更有一些同学照着网络上的代码一个字一个字敲完结果运行直接报错错误信息还完全看不懂——这种挫败感最容易劝退新手。这篇教程就是为了解决这个问题而写的。我会以“Python 基础语法上”为主题把 Python 入门阶段最核心、最常用的语法知识拆开讲清楚。内容包括环境准备、变量与数据类型、运算符、输入输出、条件判断、循环语句最后还会带大家完成一个综合小实战。不管你是完全零基础还是已经写过几行 Python 但基础不牢这篇文章都值得耐心读完。1. Python 与 Python 基础语法概述1.1 什么是 PythonPython 是一种解释型、面向对象、动态数据类型的高级编程语言。它由 Guido van Rossum 于 1991 年发布设计哲学强调代码可读性和简洁性所以它的语法风格非常接近自然语言。举个例子其他语言可能需要写很多行才能实现一个简单功能而 Python 往往几行就能搞定。下面这段代码展示了 Python 最基础的程序结构print(你好Python)运行结果你好Python这里不需要加分号不需要写类名也不需要导入额外包。这种极低的入门门槛让 Python 成为目前最受欢迎的编程语言之一广泛应用于网页开发、数据分析、人工智能、自动化脚本、网络爬虫等领域。当然Python 能做的事情远不止打印一句话。它之所以强大是因为拥有极其丰富的第三方库生态比如数据分析领域的 pandas、机器学习领域的 scikit-learn、爬虫领域的 requests 和 BeautifulSoup。但无论未来走哪个方向基础语法都是绕不开的第一步。1.2 Python 基础语法包含哪些内容很多人一听到“语法”两个字就发怵以为要背大量规则。其实 Python 的语法体系并不复杂入门阶段聚焦在几个核心模块就可以注释的写法变量与赋值基础数据类型int、float、str、bool类型转换运算符输入输出函数input 与 print条件判断if / elif / else循环语句while / for字符串常用操作这些内容构成了 Python 编程的地基。掌握了它们你就能写出有一定逻辑的程序比如简单的计算器、成绩等级判断、登录校验等。本文是“基础语法上”重点覆盖前八项内容。像列表、元组、字典、集合、函数、文件操作等进阶内容会在后续课程中继续展开。1.3 为什么零基础要把语法基础打牢编程学习最忌讳“还没学会走就想跑”。有些人刚开始学 Python就去研究爬虫、人工智能结果连变量和循环都没弄明白代码报错后束手无策最后只能放弃。基础语法虽然看起来简单但它是所有高级功能的地基。有一个很常见的现象很多做了几年开发的人遇到报错时第一时间能判断出是语法问题、类型问题还是逻辑问题靠的就是对基础语法的深刻理解。所以不要嫌基础内容枯燥。把变量、类型、运算符、条件、循环这些内容练到“条件反射”的程度后续学习任何框架和方向都会顺利很多。2. 环境准备装好 Python 与编辑器在学习语法之前我们需要把开发环境准备好。这里我以最常见的 Windows 系统为例进行说明macOS 和 Linux 的安装思路类似只是安装命令不同。2.1 Python 版本选择目前 Python 官方维护的主要版本是 3.x 系列Python 2 已经在 2020 年停止维护完全不需要考虑。在 3.x 系列内部较新的版本通常包含更多性能和功能改进但也可能存在部分第三方库尚未完全兼容的情况。对于初学者来说安装 Python 3.10 或 3.11 是稳妥的选择。最准确的版本信息建议直接访问 Python 官方网站查看最新稳定版。如果你不太确定也可以先安装当前最新稳定版遇到库不兼容时再调整版本。2.2 安装 Python 并配置环境变量Windows 系统安装 Python 的步骤如下打开 Python 官网进入 Downloads 页面。点击 Windows 版本的安装包下载。运行安装包务必勾选“Add Python to PATH”。点击“Install Now”开始安装。这里要重点解释一下“Add Python to PATH”选项。PATH 是系统寻找可执行程序的环境变量。如果安装时没有勾选后续在命令行里输入python就找不到命令会提示python 不是内部或外部命令。安装完成后打开命令行窗口输入以下命令验证python --version如果看到类似如下的输出说明安装成功Python 3.11.x如果你在安装时忘记勾选配置环境变量的选项可以手动添加。操作路径是系统属性 - 高级系统设置 - 环境变量 - 找到 Path 变量 - 新增 Python 安装目录和 Scripts 子目录。2.3 选择 IDEVS Code 与 PyCharm环境准备好之后还需要一个写代码的编辑器。这里推荐两种主流选择VS Code轻量、免费、插件丰富。配合 Python 插件后代码提示、调试、格式化等功能都非常好用。PyCharmJetBrains 出品的专业 Python IDE功能强大社区版免费。适合喜欢“开箱即用”的同学。对于初学者我个人的建议是先用 VS Code。它启动速度快界面简洁而且之后写 HTML、Java、C 等语言时也能继续使用一个编辑器覆盖多语言场景性价比更高。VS Code 安装 Python 插件的步骤也很简单打开 VS Code进入扩展市场搜索 “Python”安装微软官方发布的那个插件即可。3. 第一个 Python 程序与核心语法基础环境准备好之后我们正式进入 Python 基础语法的学习。这一章会讲解最核心的程序编写方式输出、注释和变量。3.1 输出函数 print()print()是 Python 中最常用的内建函数之一作用是把内容输出到控制台。最简单的用法print(Hello, World!)这里有一个细节print()会自动在输出内容的末尾添加一个换行符\n所以连续写多个print()时每一行输出都会另起一行。print()还可以通过sep和end参数控制输出的分隔符和结尾字符。print(张三, 李四, 王五, sep、) print(第一行, end ) print(第二行)运行结果张三、李四、王五 第一行 第二行第一个示例中sep、表示用顿号分隔多个内容第二个示例中end 表示第一个print()输出结束后不换行而是以空格结尾。3.2 注释的写法注释是代码中写给开发者看的说明文字不会被 Python 解释器执行。好的注释能极大提高代码的可读性尤其是在团队协作或过一段时间再回看代码时。Python 支持两种注释方式# 这是单行注释 print(单行注释示例) 这是多行注释 可以写很多行说明文字 print(多行注释示例)单行注释以#开头多行注释使用三个单引号或三个双引号包裹。很多初学者会忽略注释的作用觉得写不写都能运行。但在实际项目开发中注释往往比代码本身更能体现一个程序员的专业度。3.3 变量与赋值规则变量是程序中用来存储数据的容器。Python 中使用进行赋值不需要声明数据类型。name 张三 age 18 height 175.5Python 变量命名需要遵守以下规则只能由字母、数字、下划线组成。不能以数字开头。不能使用 Python 内置关键字比如if、while、class。区分大小写Name和name是两个不同的变量。Python 是一种动态类型语言意思是变量的类型可以随时改变a 10 print(type(a)) # class int a Python print(type(a)) # class str上面用到了type()函数它可以查看一个变量的类型。这一点在后期的调试中非常实用。4. Python 基础数据类型与类型转换数据类型是 Python 基础语法中最重要的概念之一。不同类型的变量能执行的操作不同理解它们的区别才能避免代码运行时报一堆类型错误。4.1 整数 int 与浮点数 float整数类型int表示没有小数部分的数字浮点数类型float表示带有小数部分的数字。num1 10 # int num2 3.14 # float num3 -100 # intPython 中整数和浮点数可以直接参与算术运算但要注意运算结果的类型a 10 b 3 print(a / b) # 3.3333333333333335除法的结果一定是 float print(a // b) # 3整除向下取整 print(a % b) # 1取余数 print(a ** b) # 1000幂运算其中//是整除运算符%是取余运算符**是幂运算符。这四个运算符在实际开发中使用频率极高尤其是在算法和数学计算场景中。4.2 字符串 str字符串是 Python 中使用最频繁的数据类型之一用单引号或双引号包裹。str1 Hello str2 WorldPython 中单双引号是等价的但要注意保持配对。如果字符串内部包含引号可以使用另一种引号来避免转义sentence He said: Python is fun字符串有一个非常重要的运算符加号。它用于字符串拼接但注意不能把字符串和数字直接拼接。name 张三 age 18 # print(name age) # 这样会报错字符串不能直接和数字拼接 print(name 今年 str(age) 岁)4.3 布尔类型 bool布尔类型只有两个值True和False。它通常用于条件判断中决定程序的分支走向。is_login True is_admin False在 Python 中一些非布尔类型的值在条件判断时会被自动转换。比如0、空字符串、空列表[]会被当作False非零数字和非空内容会被当作True。这一点在后期写业务逻辑时经常会用到。4.4 类型转换与常见误区Python 提供了几个常见的类型转换函数int()将内容转换为整数float()将内容转换为浮点数str()将内容转换为字符串a int(123) b float(3.14) c str(456) print(a, type(a)) print(b, type(b)) print(c, type(c))运行结果123 class int 3.14 class float 456 class str这里要特别提醒一个常见误区int(3.14)会报错。因为int()函数要求字符串内容是合法的整数表示。如果你想将字符串3.14转换为整数只能先转为 float再转为 intnum int(float(3.14)) print(num) # 3这样做虽然能运行但要注意小数部分会被直接截断而不是四舍五入。5. Python 运算符解析运算符是程序中进行计算和判断的基础工具。Python 中的运算符主要分为算术运算符、比较运算符、逻辑运算符和赋值运算符。5.1 算术运算符前面已经提到了、-、*、/、//、%、**这七种算术运算符。它们在数据计算中扮演着重要角色。a 15 b 4 print(a b) # 19 print(a - b) # 11 print(a * b) # 60 print(a / b) # 3.75 print(a // b) # 3 print(a % b) # 3 print(a ** b) # 50625在做数值计算时一个很容易踩的坑是“整数除法的精度问题”。在 Python 3 中/永远返回浮点数而//对正数向下取整。当操作数中有负数时//的行为可能和直觉不同print(-7 // 2) # -4因为 -7 / 2 -3.5向下取整得到 -4 print(-7 % 2) # 1这里如果不太理解可以先记住//向下取整%的符号与除数一致。等后续掌握更多数学知识后再深入体会。5.2 比较运算符比较运算符用于比较两个值结果一定是布尔类型True或False。Python 中常用的比较运算符有a 10 b 20 print(a b) # False等于 print(a ! b) # True不等于 print(a b) # False大于 print(a b) # True小于 print(a b) # False大于等于 print(a b) # True小于等于比较运算在条件判断中大量使用比如成绩是否及格、年龄是否满足要求、文件是否存在等。5.3 逻辑运算符Python 中的逻辑运算符有三个and、or、not。它们用于组合多个条件。age 25 has_ticket True # and两个条件都满足才为 True print(age 18 and has_ticket) # True # or任意一个条件满足就为 True print(age 18 or has_ticket) # True # not取反 print(not has_ticket) # False在实际开发中逻辑运算符常与比较运算符一起使用形成复杂的业务判断条件。5.4 赋值运算符赋值运算符用于简化变量的更新操作。最常见的是此外还有、-、*、/、//、%等。count 0 count 1 # 等价于 count count 1 print(count) # 1 count * 10 # 等价于 count count * 10 print(count) # 10这种写法简洁直观能让代码更紧凑也减少了重复写变量名带来的笔误。6. 输入与输出input() 与 print() 详解程序与用户的交互主要靠输入输出函数完成。print()负责输出input()负责接收用户输入。6.1 使用 input() 获取用户输入input()函数会在控制台等待用户输入内容然后以字符串形式返回。这里有一个关键点无论用户输入的是什么input() 返回的结果都是 str 类型。name input(请输入你的名字) print(你好 name)运行效果请输入你的名字小明 你好小明如果需要把输入内容当作数字处理必须使用类型转换age input(请输入你的年龄) age int(age) if age 18: print(你已经成年了) else: print(你还未成年)如果不转换直接比较代码会报错因为字符串不能直接和整数比较大小。6.2 格式化输出的几种方式在实际开发中我们需要将变量的值嵌入到一段话中输出。Python 提供了三种常用的格式化方式。第一种是百分号格式化name 张三 score 95.5 print(姓名%s成绩%f % (name, score))第二种是format()方法print(姓名{}成绩{}.format(name, score))第三种是 f-string 格式化这也是 Python 3.6 之后推荐的写法print(f姓名{name}成绩{score})三种方式输出的结果相同姓名张三成绩95.500000f-string 写起来最简洁直观推荐平时优先使用。7. 条件判断语句程序之所以能“智能”很大程度上依赖于条件判断。Python 使用if、elif、else关键字实现分支逻辑。7.1 if 语句基础最简单的if语句结构如下score 85 if score 60: print(成绩合格)需要注意两点条件表达式后面必须加英文冒号条件满足执行的语句需要缩进Python 通过缩进来判断代码块的范围。7.2 if-elif-else 多分支结构当判断条件多于两个时可以使用elif关键字score 85 if score 90: print(优秀) elif score 80: print(良好) elif score 60: print(及格) else: print(不及格)运行结果良好这里的执行顺序是从上往下匹配。一旦某个条件满足后面的elif和else都不会再执行。所以分支条件的顺序很重要。7.3 条件判断实战练习结合前面的知识我们来写一个判断闰年的小例子。判断规则是能被 4 整除但不能被 100 整除或者能被 400 整除。year int(input(请输入年份)) if (year % 4 0 and year % 100 ! 0) or year % 400 0: print(f{year}年是闰年) else: print(f{year}年不是闰年)这个例子综合使用了取余运算符、逻辑运算符、比较运算符和条件分支是检验基础语法掌握程度的好练习。8. 循环语句基础程序的另一个核心能力是重复执行。Python 提供了两种最基本的循环结构while循环和for循环。8.1 while 循环while循环在条件为真时重复执行循环体直到条件为假。count 1 while count 5: print(f当前计数{count}) count 1运行结果当前计数1 当前计数2 当前计数3 当前计数4 当前计数5使用while循环要特别注意循环变量的更新。如果忘记count 1循环条件永远成立程序会进入死循环也就是俗称的“卡死”。8.2 for 循环与 range()for循环通常用于遍历可迭代对象比如字符串、列表或者配合range()函数生成一系列数字。for i in range(1, 6): print(i)运行结果1 2 3 4 5range(1, 6)表示生成从 1 到 5 的整数序列结束值 6 不包含在内。这是 Python 中“左闭右开”区间的典型体现。range()还可以指定步长for i in range(1, 10, 2): print(i)运行结果1 3 5 7 98.3 break 与 continue循环结构中还有两个常用的关键字break用于结束整个循环continue用于跳过本次循环剩余代码、直接进入下一次循环。# break 示例找到第一个大于 10 的数字 for i in range(1, 100): if i 10: print(f找到了{i}) break # continue 示例只打印偶数 for i in range(1, 10): if i % 2 ! 0: continue print(i)break和continue在实际项目中经常用于提前终止无效计算或者在特定条件下跳过某些数据。但要谨慎使用滥用会让代码的可读性下降。9. 综合实战简易用户信息登记程序前面我们依次学习了变量、数据类型、运算符、条件判断和循环。这一章用一个综合实战来串起所有知识点。9.1 需求分析我们要编写一个简易的用户信息登记程序功能包括输入姓名。输入年龄并校验年龄是否为合法数字且范围在 0 到 120 之间。根据年龄判断用户类型未成年人 / 成年人 / 老年人。输入手机号检查长度是否为 11 位。循环允许用户多次登记输入q退出。9.2 实现代码print( 用户信息登记系统 ) while True: name input(请输入姓名输入 q 退出) if name q: print(系统已退出) break age_str input(请输入年龄) if not age_str.isdigit(): print(年龄必须是数字请重新输入。) continue age int(age_str) if age 0 or age 120: print(年龄超出合法范围请重新输入。) continue if age 18: user_type 未成年人 elif age 60: user_type 成年人 else: user_type 老年人 phone input(请输入手机号) if len(phone) ! 11 or not phone.isdigit(): print(手机号格式不正确请重新输入。) continue print(f登记成功{name}{age}岁{user_type}手机号 {phone}) print(- * 30)9.3 运行效果运行程序后输入合法的信息控制台会显示类似下面的内容 用户信息登记系统 请输入姓名输入 q 退出张三 请输入年龄25 请输入手机号13800138000 登记成功张三25岁成年人手机号 13800138000 ------------------------------ 请输入姓名输入 q 退出q 系统已退出如果输入不合法比如年龄填了abc程序会提示“年龄必须是数字”然后回到开头重新输入不会直接崩溃。这个小程序虽然简单但用到了input()、类型判断、isdigit()、条件分支、while循环、break、continue、f-string 格式化这些知识点是一个非常好的综合练习。建议你自己动手敲一遍不要复制体会每一行代码在执行过程中发生了什么。10. 常见错误与排查思路新手写代码最痛苦的环节就是排错。下面总结了 Python 基础语法阶段最常见的几类错误以及对应的排查思路。问题现象常见原因解决思路SyntaxError: invalid syntax括号不匹配、中文标点、缺少冒号检查代码中是否混入中文符号确认 if、while、def 等语句末尾有英文冒号NameError: name xxx is not defined变量名拼写错误或变量在使用前未赋值检查变量拼写是否一致确认赋值语句在调用之前执行TypeError: can only concatenate str字符串和数字直接拼接将数字用str()转换为字符串后再拼接或使用 f-string 格式化ValueError: invalid literal for int()int()转换非数字内容确认转换的内容是合法数字表示转换前先打印检查IndentationError: unexpected indent缩进不一致统一使用 4 个空格缩进不要混用 Tab 和空格程序运行后无反应或死循环while条件始终为真没有更新循环变量检查循环体内部是否有改变条件变量的操作如果遇到看不懂的错误优先看错误信息的第一行和最后一行的文件名与行号提示先定位到出错的代码位置。然后回看那一行前后的缩进、括号、引号是否完整。11. Python 基础语法最佳实践学会语法只是第一步写出规范、可读、可维护的代码才是追求的目标。下面几条最佳实践建议建议从第一天写代码就开始养成。11.1 命名规范Python 官方推荐使用“小写下划线”风格命名变量和函数也就是 PEP 8 中提到的 snake_case。比如user_name、total_price、get_data而不是userName或UserName。常量一般使用全大写字母加下划线比如MAX_COUNT。这种命名规范最大的好处是让代码含义一目了然。看到total_price就能猜到它代表总价而看到a、b、c这种单字母变量在复杂项目中很容易让人困惑。11.2 善用注释和文档注释要写“为什么”而不是写“是什么”。比如# 这里用 -1 是因为 range() 是左闭右开区间结束值不包含在内 for i in range(0, 10, 2): print(i)这种注释才能真正帮助阅读代码的人理解设计者的意图。每行代码都写注释反而会干扰阅读。11.3 学会使用 type() 和 print() 调试在初学阶段遇到逻辑问题不知道变量类型或值时最直接的方法就是用print()和type()打印出来看看。比如a input(请输入数字) print(type(a)) # 确认类型是否 str print(a)等以后接触更复杂的项目可以再学习使用调试器、日志系统等工具。但在基础阶段print()大法足够解决大多数问题。11.4 尽量不用极端技巧初学阶段不要追求“一行代码解决问题”的花哨写法。先把代码写得清晰、简单、正确再考虑优化。很多“炫技”代码虽然短但可读性差调试困难在团队协作中是反面教材。12. 总结与下一步学习路线本文围绕“Python 基础语法上”这个主题系统讲解了 Python 的注释、变量、数据类型、类型转换、运算符、输入输出、条件判断和循环语句。这些内容虽然基础但每一个都是后续学习 Python 高级特性的支撑点。如果你能独立完成第 9 章的综合实战说明你已经初步具备了用 Python 解决简单问题的能力。在继续往下学之前建议先把本文中的每个示例代码都手动敲一遍。不要复制而是亲眼看着代码运行观察输出结果再尝试修改一些参数看看会发生什么变化。这种“主动改动代码”的学习方式比被动看教程有效得多。下一阶段你可以接着学习 Python 基础语法下内容包括列表、元组、字典、集合等容器类型以及函数的定义与调用、字符串常用方法等。如果本文对你有帮助可以收藏备用也欢迎在实际练习中遇到问题时回来对照章节查找。编程能力的提升没有捷径唯一的路径就是多敲、多调试、多思考。加油。