Python 零基础入门:运算符、格式化输出与字符编码全解(避坑版)
Python 零基础入门:运算符、格式化输出与字符编码全解(避坑版)
摘要
本文面向纯零基础学习者,系统拆解Python三大核心基础:格式化输出全用法、全品类运算符与优先级、字符编码底层原理。全文附带可直接运行的示例代码、新手高频报错案例、乱码根治方案,帮你一次性避开占位符报错、运算符短路、编码乱码三大新手重灾区,筑牢Python编程底层根基。
目录
格式化输出:百分号占位符、f-string、转义与类型强制规范
全套运算符:算术/比较/赋值/逻辑/成员运算符详解
字符编码:ASCII/GBK/Unicode/UTF-8区别与Python版本差异
补充语法:循环进阶、pass占位、in/not in实战场景
新手必看:高频报错与避坑总结
一、格式化输出:新手最易踩坑的基础语法
1.1 主流格式化方案对比
Python目前常用三种格式化方式,零基础优先掌握**%占位符和f-string**,前者兼容旧代码,后者简洁高效(Python3.6+推荐)。
| 格式化方式 | 语法特点 | 适用场景 | 推荐指数 |
|---|---|---|---|
| % 占位符 | 传统写法,区分数据类型 | 兼容Python2、老旧项目 | ⭐⭐⭐ |
| str.format() | 兼容强,无需区分类型 | 通用项目、多参数排版 | ⭐⭐⭐⭐ |
| f-string | 简洁直观,直接嵌入变量 | 日常开发、新手编码 | ⭐⭐⭐⭐⭐ |
1.2 %占位符核心规则
占位符用于预留字符串位置,后续填充变量,核心区分数据类型,填错直接报错:
%s:字符串占位符,万能占位符,可接收数字、列表、字符串等任意类型
%d:整数占位符,仅接收整型,传入字符串/浮点数直接抛类型错误
%f:浮点数占位符,默认保留6位小数,可手动限定精度
1.3 实战案例:个人信息模板输出
# 接收用户终端输入(input默认获取字符串类型)name=input("请输入姓名:")age=int(input("请输入年龄:"))# 强制转为整型,适配%dheight=float(input("请输入身高(m):"))address=input("请输入所在地:")# 多行模板格式化user_info=''' ========== 用户信息卡片 ========== 姓名:%s 年龄:%d 岁 身高:%.2f m 所在地:%s ================================ '''%(name,age,height,address)print(user_info)1.4 百分号转义:如何输出原生%符号
在**%格式化字符串内**,单个%是占位符标识,想要原生百分号,必须用**%%**转义;无占位符的普通字符串直接写%即可。
# 1. 含占位符:必须双百分号转义print("我叫%s,今年%d岁,已掌握3%%的Python基础语法"%(name,age))# 2. 无占位符:直接写单百分号print("当前学习进度:100%")1.5 新手必避坑:类型强制转换
input()函数获取的所有数据默认都是字符串str,直接传给%d/%f会直接报错,必须手动类型转换:
# 错误写法(直接传字符串给%d,程序报错)age=input("年龄:")print("年龄:%d"%age)# 正确写法(先转整型再格式化)age=int(input("年龄:"))print("年龄:%d"%age)1.6 极简推荐:f-string格式化(Python3专属)
无需区分占位符、无需拼接字符串,直接在{}中写入变量/表达式,新手首选:
name="Tom"score=92.5# 直接嵌入变量,自动适配类型print(f"学生姓名:{name},考试分数:{score:.1f}")# 支持直接运算print(f"总分翻倍:{score*2}")二、基本运算符:程序计算与判断的核心
运算符是Python实现计算、判断、逻辑推理的基础,优先级和短路规则是新手高频易错点。
2.1 算术运算符(数值计算专用)
预设变量:a = 10,b = 3
| 运算符 | 功能说明 | 示例代码 | 运行结果 |
|---|---|---|---|
| + | 加法/字符串拼接 | a + b、“py”+“thon” | 13、python |
| - | 减法/取负 | a - b | 7 |
| * | 乘法/字符串重复 | a * b、“Hi”*3 | 30、HiHiHi |
| / | 浮点除法(必出小数) | a / b | 3.3333333 |
| // | 整除(向下取整) | a // b | 3 |
| % | 取模(求余数) | a % b | 1 |
| ** | 幂运算(次方) | a ** b | 1000 |
2.2 比较运算符(返回True/False)
用于条件判断,所有运算结果只有两个:真True、假False,是if、while语句的基础
| 运算符 | 说明 | 示例(a=10) | 结果 |
|---|---|---|---|
| == | 等于(判断值是否相同) | a == 10 | True |
| != | 不等于 | a != 5 | True |
| > | 大于 | a > 20 | False |
| < | 小于 | a < 20 | True |
| >= | 大于等于 | a >= 10 | True |
| <= | 小于等于 | a <= 9 | False |
避坑提醒:=是赋值运算符,==是比较运算符,条件判断中写错会直接语法报错!
2.3 赋值运算符(简化变量更新)
用于快速修改变量值,简化重复赋值代码
| 运算符 | 等效写法 | 释义 |
|---|---|---|
| += | a = a + b | 自身累加 |
| -= | a = a - b | 自身累减 |
| *=、/= | a = a * b / a = a / b | 自身乘除 |
| //=、%=、**= | 同逻辑 | 整除、取模、幂运算赋值 |
2.4 逻辑运算符(多条件组合)
用于组合多个比较条件,核心重点:优先级与短路规则
2.4.1 优先级排序
括号() > not(取反) > and(且) > or(或)
2.4.2 核心规则
and:两边条件全为真,结果才为真;一假则假
or:两边条件一个为真,结果就为真;全真才真
not:对原有条件结果取反,真变假、假变真
2.4.3 短路规则(面试高频)
x or y:x为真直接返回x,x为假返回y
x and y:x为真直接返回y,x为假返回x
print(8or4)# 8(非0为真,直接返回前者)print(0and3)# 0(0为假,直接返回前者,短路不执行后者)print(not0)# True(0代表假,取反为真)三、字符编码:彻底根治中文乱码
编码是新手乱码、文件报错的根源,弄懂编码原理,从此告别问号乱码、方框乱码。
3.1 五大主流编码详解
| 编码格式 | 占用字节 | 支持范围 | 使用场景 |
|---|---|---|---|
| ASCII | 1Byte | 仅英文、数字、基础符号,无中文 | 老旧系统、底层硬件 |
| GB2312/GBK | 2Byte/汉字 | 中文国标,兼容ASCII,支持繁体 | Windows本地老旧文件 |
| Unicode | 2/4Byte | 万国码,收录全球所有文字 | 内存中字符存储 |
| UTF-8 | 变长:英文1Byte/中文3Byte | Unicode变长实现,兼容全球文字 | 互联网、Python3默认 |
| UTF-16 | 2Byte起步 | 双字节为主 | Windows部分软件、移动端 |
3.2 Python版本编码差异(核心)
Python2:默认编码ASCII,文件含中文必须头部加
# -*- coding:utf-8 -*-,否则直接乱码报错Python3:默认UTF-8编码,原生支持中文,无需额外声明,新手推荐直接使用Python3
3.3 数据存储单位换算(必记)
计算机最小单位是比特(bit),文件存储基础单位是字节(Byte)
8 bit = 1 Byte (1字节=8位二进制) 1024 Byte = 1KB 1024 KB = 1MB 1024 MB = 1GB 1024 GB = 1TB3.4 乱码根治核心原则
编码乱码本质:文件保存编码 ≠ 程序读取编码
最佳实践:所有Python文件、文本文件统一使用UTF-8编码,彻底杜绝乱码!
四、补充进阶语法
4.1 while-else 循环进阶
核心规则:循环正常执行完毕(无break跳出),才会执行else代码块;break终止循环则不执行
index=1whileindex<5:ifindex==3:break# 强制跳出循环,else不执行print("当前数字:",index)index+=1else:print("循环无中断,正常结束")4.2 pass 占位语句
pass是空语句,什么都不执行,仅用于占位补全语法结构,避免缩进报错:
# 临时预留分支逻辑,后续补充if10>5:pass# 无pass会直接语法报错else:print("条件不成立")4.3 in / not in 成员运算符
判断元素是否存在于字符串、列表等序列中,常用于敏感词过滤、数据检索
# 敏感词过滤实战comment=input("请输入评论内容:")if"垃圾"incommentor"违规"incomment:print("评论包含敏感词,发布失败")else:print("评论发布成功!")# not in 反向判断word="python"if"java"notinword:print("字符串中无java")五、新手高频报错与避坑总结
格式化报错:%d传入字符串 → 先用int()/float()完成类型转换
百分号显示异常:格式化内用%%转义,普通字符串直接用%
逻辑判断报错:区分赋值=和比较==,条件判断必须用双等号
中文乱码:Python2头部声明编码,所有文件统一保存为UTF-8
循环else不执行:检查是否被break强制跳出循环
缩进报错:空代码块必须添加pass占位
结语
格式化输出、运算符、字符编码是Python最底层的三大基石,也是新手入门的第一道门槛。运算符决定程序如何计算判断,格式化输出规范数据展示,编码规则解决中文乱码问题。
建议逐行敲写文中示例代码,牢记编码统一规则、运算符优先级、格式化类型约束,打好基础后,后续学习爬虫、数据分析、Web开发时会事半功倍!