Python 零基础入门:运算符、格式化输出与字符编码全解(避坑版)

Python 零基础入门:运算符、格式化输出与字符编码全解(避坑版)

摘要

本文面向纯零基础学习者,系统拆解Python三大核心基础:格式化输出全用法全品类运算符与优先级字符编码底层原理。全文附带可直接运行的示例代码、新手高频报错案例、乱码根治方案,帮你一次性避开占位符报错、运算符短路、编码乱码三大新手重灾区,筑牢Python编程底层根基。


目录

  1. 格式化输出:百分号占位符、f-string、转义与类型强制规范

  2. 全套运算符:算术/比较/赋值/逻辑/成员运算符详解

  3. 字符编码:ASCII/GBK/Unicode/UTF-8区别与Python版本差异

  4. 补充语法:循环进阶、pass占位、in/not in实战场景

  5. 新手必看:高频报错与避坑总结


一、格式化输出:新手最易踩坑的基础语法

1.1 主流格式化方案对比

Python目前常用三种格式化方式,零基础优先掌握**%占位符f-string**,前者兼容旧代码,后者简洁高效(Python3.6+推荐)。

格式化方式 语法特点 适用场景 推荐指数
% 占位符 传统写法,区分数据类型 兼容Python2、老旧项目 ⭐⭐⭐
str.format() 兼容强,无需区分类型 通用项目、多参数排版 ⭐⭐⭐⭐
f-string 简洁直观,直接嵌入变量 日常开发、新手编码 ⭐⭐⭐⭐⭐

1.2 %占位符核心规则

占位符用于预留字符串位置,后续填充变量,核心区分数据类型,填错直接报错:

  • %s:字符串占位符,万能占位符,可接收数字、列表、字符串等任意类型

  • %d:整数占位符,仅接收整型,传入字符串/浮点数直接抛类型错误

  • %f:浮点数占位符,默认保留6位小数,可手动限定精度

1.3 实战案例:个人信息模板输出

python 复制代码
# 接收用户终端输入(input默认获取字符串类型)
name = input("请输入姓名:")
age = int(input("请输入年龄:"))  # 强制转为整型,适配%d
height = float(input("请输入身高(m):"))
address = input("请输入所在地:")

# 多行模板格式化
user_info = '''
========== 用户信息卡片 ==========
姓名:%s
年龄:%d 岁
身高:%.2f m
所在地:%s
================================
''' % (name, age, height, address)

print(user_info)

1.4 百分号转义:如何输出原生%符号

在**%格式化字符串内**,单个%是占位符标识,想要原生百分号,必须用**%%**转义;无占位符的普通字符串直接写%即可。

python 复制代码
# 1. 含占位符:必须双百分号转义
print("我叫%s,今年%d岁,已掌握3%%的Python基础语法" % (name, age))

# 2. 无占位符:直接写单百分号
print("当前学习进度:100%")

1.5 新手必避坑:类型强制转换

input()函数获取的所有数据默认都是字符串str,直接传给%d/%f会直接报错,必须手动类型转换:

python 复制代码
# 错误写法(直接传字符串给%d,程序报错)
age = input("年龄:")
print("年龄:%d" % age)  

# 正确写法(先转整型再格式化)
age = int(input("年龄:"))
print("年龄:%d" % age)

1.6 极简推荐:f-string格式化(Python3专属)

无需区分占位符、无需拼接字符串,直接在{}中写入变量/表达式,新手首选:

python 复制代码
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

python 复制代码
print(8 or 4)     # 8(非0为真,直接返回前者)
print(0 and 3)    # 0(0为假,直接返回前者,短路不执行后者)
print(not 0)      # 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)

plaintext 复制代码
8 bit = 1 Byte (1字节=8位二进制)
1024 Byte = 1KB
1024 KB   = 1MB
1024 MB   = 1GB
1024 GB   = 1TB

3.4 乱码根治核心原则

编码乱码本质:文件保存编码 ≠ 程序读取编码

最佳实践:所有Python文件、文本文件统一使用UTF-8编码,彻底杜绝乱码!


四、补充进阶语法

4.1 while-else 循环进阶

核心规则:循环正常执行完毕(无break跳出),才会执行else代码块;break终止循环则不执行

python 复制代码
index = 1
while index < 5:
    if index == 3:
        break  # 强制跳出循环,else不执行
    print("当前数字:", index)
    index += 1
else:
    print("循环无中断,正常结束")

4.2 pass 占位语句

pass是空语句,什么都不执行,仅用于占位补全语法结构,避免缩进报错:

python 复制代码
# 临时预留分支逻辑,后续补充
if 10 > 5:
    pass  # 无pass会直接语法报错
else:
    print("条件不成立")

4.3 in / not in 成员运算符

判断元素是否存在于字符串、列表等序列中,常用于敏感词过滤、数据检索

python 复制代码
# 敏感词过滤实战
comment = input("请输入评论内容:")
if "垃圾" in comment or "违规" in comment:
    print("评论包含敏感词,发布失败")
else:
    print("评论发布成功!")

# not in 反向判断
word = "python"
if "java" not in word:
    print("字符串中无java")

五、新手高频报错与避坑总结

  • 格式化报错:%d传入字符串 → 先用int()/float()完成类型转换

  • 百分号显示异常:格式化内用%%转义,普通字符串直接用%

  • 逻辑判断报错:区分赋值=和比较==,条件判断必须用双等号

  • 中文乱码:Python2头部声明编码,所有文件统一保存为UTF-8

  • 循环else不执行:检查是否被break强制跳出循环

  • 缩进报错:空代码块必须添加pass占位


结语

格式化输出、运算符、字符编码是Python最底层的三大基石,也是新手入门的第一道门槛。运算符决定程序如何计算判断,格式化输出规范数据展示,编码规则解决中文乱码问题。

建议逐行敲写文中示例代码,牢记编码统一规则、运算符优先级、格式化类型约束,打好基础后,后续学习爬虫、数据分析、Web开发时会事半功倍!