Python 基础语法文章目录Python 基础语法一、表达式与运算符1.1 表达式Expression1.2 运算符优先级1.3 代码规范空格与美观二、变量2.1 为什么需要变量2.2 变量的本质2.3 定义与赋值2.4 变量的读取与修改2.5 变量命名规则硬性规则不遵守程序无法运行软性规范建议遵守让代码更优雅三、数据类型3.1 为什么需要类型3.2 整数int3.3 浮点数float3.4 字符串str引号的灵活运用字符串操作字符串与数字不能混拼3.5 布尔类型bool3.6 类型的意义四、动态类型 vs 静态类型4.1 什么是动态类型4.2 动态类型 vs 静态类型4.3 类型声明Type Hint五、注释5.1 为什么需要注释5.2 行注释#5.3 文档字符串5.4 写好注释的原则六、输入与输出6.1 控制台Console6.2 输出print()6.3 格式化字符串f-string七、错误类型7.1 语法错误7.2 运行时错误8. 要点速查一、表达式与运算符1.1 表达式Expression表达式是由数字、运算符、变量等组成的算式计算后得到一个值称为表达式的返回值。print(12-3)# 输出0print(12*3)# 输出7先乘除后加减print(12/3)# 输出1.6666666666666665术语1、2、3这样的数字 →字面值常量Literal、-、*、/→运算符/操作符Operator整个算式1 2 - 3→表达式Expression计算结果 →表达式的返回值1.2 运算符优先级与数学一致先乘除后加减。可用()改变优先级。# 求四个分数的平均值print((67.589.012.932.2)/4)# 输出50.4⚠️ Python 中整数除以整数结果仍为小数浮点数这与 C/Java 不同C/Java 会舍弃小数部分。1.3 代码规范空格与美观运算符两侧建议加空格语法上不必须但提高可读性# 推荐print(12*3)# 不推荐虽然能运行print(12*3)代码的颜值很重要——好的代码不仅是给计算机执行的更是给人看的包括六个月后的自己。二、变量2.1 为什么需要变量计算方差时需要先算平均值平均值会被反复使用。用变量保存中间结果避免重复计算。# 计算四个数的方差avg(67.589.012.932.2)/4total(67.5-avg)**2(89.0-avg)**2(12.9-avg)**2(32.2-avg)**2resulttotal/3print(result)**表示乘方运算**2即平方。2.2 变量的本质变量是内存中的存储空间。可以把内存想象成宿舍楼走廊两侧有很多房间内存空间变量名就是房间号数据就存在房间里。2.3 定义与赋值a10# 创建变量 a赋值为 10初始化ba# 读取 a 的值赋给 ba20# 修改变量 a 的值为 20是赋值运算符不是数学上的相等将右侧的数据放入左侧的空间首次使用是创建变量/初始化后续对同一变量使用是修改值2.4 变量的读取与修改a10print(a)# 读取 → 输出10ba# 读取 a赋值给 bprint(b)# 输出10a20# 修改print(a)# 输出202.5 变量命名规则硬性规则不遵守程序无法运行规则正确示例错误示例由字母、数字、下划线组成a_1、counta*a、ab不能以数字开头a11a不能与关键字相同my_ififif 是关键字区分大小写number与Number是两个变量—Python 关键字如if、else、while、for、def、class等都不能作为变量名。软性规范建议遵守让代码更优雅使用有描述性的名字✅count、person_info、total_score❌x、a1、a2多单词命名规范风格写法示例驼峰命名CamelCase首单词小写后续单词首字母大写personInfo、totalCount蛇形命名snake_case单词间用下划线分隔person_info、total_count具体使用哪种取决于公司规范没有高下之分。三、数据类型3.1 为什么需要类型不同类型的数据占用的内存空间不同能进行的操作也不同。类型就是对变量进行分类这样代码更清晰。3.2 整数inta10print(type(a))# class intPython int 的特性任意大数与 C/Java 不同Python 的int可以表示任意大的整数自动扩容不需要long类型。big123456789012345678901234567890# 多大的整数都能存print(big)3.3 浮点数floatb0.5print(type(b))# class floatPython 的float相当于 C/Java 的double双精度8 字节遵循 IEEE 754 标准存在微小精度误差如2/3的结果末尾多一个 5print(2/3)# 0.6666666666666666末尾有精度误差Python 的设计哲学解决一个问题只提供一种方案。所以整数只有int浮点数只有float不像 C 有short/int/long和float/double之分。3.4 字符串strchelloprint(type(c))# class str引号的灵活运用Python 支持多种引号创建字符串可以灵活处理引号嵌套问题# 单引号s1hello# 双引号s2hello# 字符串包含双引号 → 外层用单引号s3my name is Tom# 字符串包含单引号 → 外层用双引号s4Im a student# 同时包含单双引号 → 三引号s5He said: Im Tom⚠️ 所有引号必须是英文标点建议在输入法中设置中文时使用英文标点。字符串操作# 求长度lendhelloprint(len(d))# 5# 拼接a1helloa2worldprint(a1a2)# helloworld拼接生成新字符串原变量不变字符串与数字不能混拼print(hello10)# ❌ TypeError: 字符串不能和整数拼接3.5 布尔类型boolc1Truec2Falseprint(type(c1))# class bool只有两个值True真和False假首字母必须大写与 C/Java 的小写不同用于逻辑判定条件判断、循环等3.6 类型的意义类型内存占用支持的操作int4 字节起自动扩容、-、*、/、**等float8 字节、-、*、/、**等str变长拼接、len()等bool1 字节逻辑运算知道一个变量的类型就知道可以对它进行哪些操作。就好比认识一个朋友知道他是普通朋友、蓝颜知己还是男朋友能做的事情截然不同。四、动态类型 vs 静态类型4.1 什么是动态类型在程序运行过程中变量的类型可以发生改变a10# 此时 a 是 intprint(type(a))# class intahello# 此时 a 变成 strprint(type(a))# class straTrue# 此时 a 变成 boolprint(type(a))# class bool4.2 动态类型 vs 静态类型特性动态类型Python静态类型C/Java变量类型是否可变可改变不可改变定义变量时是否声明类型不需要必须声明灵活度高低大型项目安全性低容易传错类型高编译器检查动态类型的优缺点✅优点代码灵活一行能顶别的语言几行开发速度快适合快速原型❌缺点大型项目中易出错模块间协作需额外文档说明很多创业公司早期用 Python 快速搭产品用户量上来后再用其他语言重构如豆瓣、知乎、B站。4.3 类型声明Type HintPython 支持可选类型声明不改变动态类型本质仅用于代码提示a:int10# 提示 a 是 int 类型b:strhello# 提示 b 是 str 类型类型声明是锦上添花不写也不影响运行。五、注释5.1 为什么需要注释注释不影响程序执行但能解释代码的含义。代码是给人看的其次才是给计算机执行的。# 以下代码在求四个数字的方差avg(67.589.012.932.2)/4total(67.5-avg)**2(89.0-avg)**2(12.9-avg)**2(32.2-avg)**2resulttotal/3print(result)一段代码可能需要反复修改、阅读。提高可读性很关键——就像医生处方字迹潦草可能导致抓错药。5.2 行注释## 这是单独一行的注释a10# 这是写在代码右侧的注释#后的内容直到行尾都是注释注释通常写在代码的上方最常见少数写在右侧5.3 文档字符串 这个文件演示了 Python 基础语法。 包含变量、数据类型、注释等内容。 使用三引号包裹可包含多行常放在文件、函数、类的开头与#注释不同文档字符串可以被 Python 解释器识别5.4 写好注释的原则准确注释要与代码做的事一致。修改代码时务必同步更新注释篇幅合理不要太精简也不要长篇大论使用中文在中国公司用中文写注释避免英文水平参差造成误解内容积极不要在注释里写抱怨/负能量内容曾有程序员写穷逼VIP被曝光道歉批量注释/取消注释选中代码 →Ctrl /六、输入与输出6.1 控制台Console控制台是人与计算机交互的基本方式——用户通过键盘输入命令计算机将结果显示在屏幕上。Windows 原生控制台Win R→ 输入cmdPyCharm 内置控制台右键运行代码后结果输出到下方窗口相比之下图形化界面GUI更易用如 PyCharm 本身但 GUI 编程较复杂基础阶段以控制台交互为主。6.2 输出print()print()可以输出任意类型的变量a10bhellocTrueprint(a)# 10print(b)# helloprint(c)# True6.3 格式化字符串f-string想在字符串中嵌入变量值使用f-stringPython 3.6a10print(fa 等于{a})# a 等于 10print(fa 10 {a10})# a 10 20大括号内可以是表达式f前缀 format用{}嵌入变量或表达式这是 Python 最推荐、最现代化的格式化输出方式❌ 不要用字符串拼接来混合打印print(a等于 a)会报错不能拼接 str 和 int七、错误类型7.1 语法错误程序运行前就能发现的错误PyCharm 中会有红色波浪线print(1*2)# 语法错误* 前面缺操作数7.2 运行时错误程序运行前无法发现执行到对应代码时才报错print(hello10)# TypeError: 运行时才报错运行时错误比语法错误更严重——语法错误在开发阶段就能发现而运行时错误可能在程序发布后才会暴露。8. 要点速查概念说明示例表达式有返回值的算式1 2 * 3变量内存中的存储空间a 10赋值符号不是相等是赋值a a 1整数 int任意大数自动扩容a 10浮点数 float双精度≈C 的 doubleb 3.14字符串 str用引号包裹的文本s hello布尔 boolTrue/Falseflag True动态类型变量类型可在运行时改变a 10; a hi行注释#开头# 这是注释文档字符串三引号包裹的多行注释说明f-string格式化字符串f值{x}print控制台输出print(hi)