Python编程基础语法详解:变量、数据类型与控制流入门

Aria
Aria
发布时间:2026-11-07| 6人浏览过
原创

从变量、基本数据类型、类型转换到if条件判断、for循环和while循环,系统讲解Python编程基础语法,并通过完整代码示例帮助初学者理解程序如何保存数据、判断条件和重复执行任务。

学习Python基础语法,可以先抓住三个问题:数据保存在哪里、数据是什么类型、程序下一步执行什么。变量负责保存和引用数据,数据类型决定这些数据能够怎样运算,条件判断和循环组成控制流,决定代码按照什么顺序执行。把这三部分连起来,就已经能够写出不少完整的小程序。

本文从可以直接运行的Python代码开始,依次讲清变量、常用数据类型、类型转换、条件判断以及循环,并特别说明一些看起来合理但容易造成误解的写法。

一、先理解Python代码是怎样运行的

Python程序通常按照从上到下的顺序执行。例如下面的代码先创建变量,再进行计算,最后输出结果:

price = 25
count = 3
total = price * count

print(total)

示例输出:

75

这里实际上已经涉及三个最核心的基础概念:price和count是变量,它们保存的值属于整数类型,price * count是一条表达式,而print()负责输出结果。

Python编程基础语法详解:变量、数据类型与控制流入门
图1:变量、表达式与程序输出之间的基本关系

二、Python变量:给数据一个可以引用的名字

变量可以理解为程序中引用数据的名称。Python创建变量时不需要提前声明类型,只要直接赋值即可:

name = "Tom"
age = 20
height = 1.75
is_student = True

赋值运算符=的含义不是数学中的“左右相等”,而是把右侧计算得到的对象绑定给左侧变量名。例如:

score = 80
score = score + 5

print(score)

示例输出:

85

score = score + 5如果按照数学等式理解,会觉得不成立;但按照编程中的赋值理解就很自然:先读取原来的score,计算80 + 5,再让score引用新的结果85。

变量名应该怎样写

Python变量名通常由字母、数字和下划线组成,但不能以数字开头。下面这些写法是常见且容易阅读的:

user_name = "Alice"
user_age = 18
total_price = 99.5

下面的写法则存在问题:

# 不能以数字开头
# 2name = "Alice"

# Python关键字不能直接作为变量名
# class = "Python"

虽然像a、x1这样的变量名在语法上没有问题,但实际代码中最好让名称体现含义。计算商品总价时,total_price通常比x更容易理解。

Python变量不是固定类型的盒子

初学时经常把变量解释成“装数据的盒子”,这种比喻适合帮助入门,但并不完全准确。Python变量名更接近于对对象的引用,因此同一个变量名可以在不同时刻指向不同类型的数据:

value = 10
print(type(value))

value = "Python"
print(type(value))

示例输出:

<class 'int'>
<class 'str'>

也就是说,不能简单理解为“变量value永远是整数类型”。更准确的说法是:第一次赋值后它引用整数对象,第二次赋值后又引用字符串对象。

三、Python常用数据类型

数据类型决定一个值是什么,也决定可以对它进行哪些操作。入门阶段最常用的是整数、浮点数、字符串、布尔值,以及列表、元组、字典和集合等容器类型。

类型 Python名称 示例 常见用途
整数 int 10 数量、次数、年龄等
浮点数 float 3.14 带小数的数值
字符串 str "Python" 姓名、文本、消息等
布尔值 bool True 表示真或假
列表 list [1, 2, 3] 保存一组可修改的数据
元组 tuple (1, 2, 3) 保存一组通常不修改的数据
字典 dict {"name": "Tom"} 使用键和值组织数据
集合 set {1, 2, 3} 处理不重复元素及集合运算

整数与浮点数

count = 10
price = 12.5

print(count + 2)
print(price * 2)

示例输出:

12
25.0

整数和浮点数都可以参与算术运算。常见运算符包括:

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • //:整除
  • %:取余
  • **:幂运算

需要注意,/和//不是同一种运算:

print(7 / 2)
print(7 // 2)
print(7 % 2)

示例输出:

3.5
3
1

字符串

字符串用于表示文本,可以使用单引号或双引号:

language = "Python"
message = 'Hello'

print(message + " " + language)

示例输出:

Hello Python

这里的+并不是数值相加,而是字符串拼接。这也说明同一个运算符的行为会受到数据类型影响。

字符串还可以通过下标读取某个字符:

text = "Python"

print(text[0])
print(text[1])

示例输出:

P
y

Python序列的下标从0开始,因此text[0]是第一个字符,而不是第二个。

布尔值

布尔类型只有两个值:True和False。它们经常由比较表达式产生:

age = 20

print(age >= 18)
print(age < 18)

示例输出:

True
False

布尔值是后面学习if条件判断的基础,因为条件表达式最终需要判断真或假。

列表和字典

当一个变量需要保存多个值时,可以使用列表:

scores = [80, 92, 76]

print(scores[0])
scores.append(88)

print(scores)

示例输出:

80
[80, 92, 76, 88]

如果数据天然存在“名称—值”关系,可以使用字典:

user = {
    "name": "Tom",
    "age": 20
}

print(user["name"])
print(user["age"])

示例输出:

Tom
20
Python编程基础语法详解:变量、数据类型与控制流入门
图2:Python常见数据类型可以先按单值数据与容器数据理解

四、使用type()查看数据类型

当不确定变量当前保存的是什么类型时,可以使用type():

age = 18
price = 9.9
name = "Tom"
enabled = True

print(type(age))
print(type(price))
print(type(name))
print(type(enabled))

示例输出:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

type()特别适合学习和排查类型相关问题。例如下面的代码看起来像是在计算两个数字:

a = "10"
b = "20"

print(a + b)

示例输出:

1020

原因是a和b实际上都是字符串,所以+执行的是字符串拼接,而不是整数加法。

五、类型转换:输入的数据不一定是需要的类型

类型转换是Python入门时非常重要的一步。尤其是使用input()读取用户输入时,无论用户输入看起来是不是数字,得到的默认都是字符串。

age = input("请输入年龄:")

print(type(age))

如果用户输入20,变量age保存的是字符串"20",而不是整数20。

如果要进行数值运算,需要主动转换:

age_text = input("请输入年龄:")
age = int(age_text)

next_age = age + 1
print("明年年龄:", next_age)

假设输入20,示例输出:

明年年龄: 21

常见类型转换函数有:

  • int():转换为整数
  • float():转换为浮点数
  • str():转换为字符串
  • bool():转换为布尔值
注意:类型转换必须满足目标类型的格式要求。例如int("20")可以成功,但int("Python")不能转换成整数,会产生异常。
Python编程基础语法详解:变量、数据类型与控制流入门
图3:处理用户输入时,先确认数据类型,再转换并参与计算

六、比较运算和逻辑运算:控制流的条件基础

程序要决定“执行哪一段代码”,通常需要先得到一个真假结果。比较运算符就是产生布尔结果的重要工具。

运算符 含义 示例
== 是否相等 age == 18
!= 是否不相等 age != 18
> 大于 score > 60
< 小于 score < 60
>= 大于等于 age >= 18
<= 小于等于 age <= 18

这里最容易混淆的是=和==:

age = 18       # 赋值
print(age == 18)  # 比较

=是赋值,而==才是在判断两边是否相等。

多个条件还可以使用and、or和not组合:

age = 20
has_ticket = True

print(age >= 18 and has_ticket)

示例输出:

True

and要求两边条件都成立;or只需要至少一个条件成立;not则用于取反。

七、if条件判断:让程序根据条件选择分支

if用于判断条件。如果条件成立,就执行对应的代码块。

age = 20

if age >= 18:
    print("已成年")

当需要处理条件不成立的情况时,可以增加else:

age = 16

if age >= 18:
    print("已成年")
else:
    print("未成年")

如果存在多个互斥条件,可以使用elif:

score = 85

if score >= 90:
    print("优秀")
elif score >= 60:
    print("通过")
else:
    print("未通过")

示例输出:

通过

这里判断顺序很重要。Python从上向下检查,一旦某个分支条件成立并执行,后面的elif和else就不会再检查。

因此下面这种顺序虽然语法没有问题,但逻辑上不符合预期:

score = 95

if score >= 60:
    print("通过")
elif score >= 90:
    print("优秀")

它会输出通过,因为95 >= 60已经成立,后面的score >= 90不会再判断。正确做法是优先判断范围更严格的条件。

Python编程基础语法详解:变量、数据类型与控制流入门
图4:if、elif、else会按照从上到下的顺序判断条件

八、缩进不是排版问题,而是Python语法的一部分

Python使用缩进表示代码块,这是初学时必须特别注意的地方。

age = 20

if age >= 18:
    print("条件成立")
    print("这两行都属于if代码块")

print("这行不属于if代码块")

冒号后的缩进代码属于if分支。退出缩进后,程序又回到正常执行流程。

推荐统一使用4个空格作为一级缩进,不要在同一个代码块中随意混用不同数量的空格。

九、for循环:对一组数据逐个处理

如果已经有一组数据,并希望依次处理其中每个元素,for循环通常是最直接的选择。

languages = ["Python", "Java", "Go"]

for language in languages:
    print(language)

示例输出:

Python
Java
Go

每循环一次,变量language就会依次得到列表中的一个元素。

使用range()生成整数序列

如果要重复执行固定次数,可以配合range():

for i in range(5):
    print(i)

示例输出:

0
1
2
3
4

range(5)产生的是从0开始、到5之前结束的整数序列。因此它包含0到4,不包含5。

也可以明确指定起点和终点:

for i in range(1, 6):
    print(i)

示例输出:

1
2
3
4
5

这里的规则可以记成“左边包含,右边不包含”:从1开始,一直到6之前停止。

十、while循环:只要条件成立就继续执行

while循环适合循环次数事先不一定明确,但能够用条件决定是否继续执行的情况。

count = 1

while count <= 3:
    print("第", count, "次执行")
    count = count + 1

示例输出:

第 1 次执行
第 2 次执行
第 3 次执行

程序每次执行循环前都会检查count <= 3。循环内部又执行count = count + 1,所以条件最终会变成False并退出循环。

注意无限循环:如果循环条件始终为True,而循环内部又没有改变相关变量或主动退出,程序就会持续执行。例如忘记增加count就是常见原因。

十一、break与continue:改变循环内部的执行方式

break用于直接结束当前循环。例如在一组数据中找到目标后,不需要继续检查:

numbers = [3, 7, 12, 18, 25]

for number in numbers:
    if number == 12:
        print("找到了")
        break

而continue不会结束整个循环,它只是跳过本次循环剩余代码,直接进入下一次。

for number in range(1, 6):
    if number == 3:
        continue

    print(number)

示例输出:

1
2
4
5

这里遇到3后执行continue,所以本次循环后面的print(number)被跳过,但循环仍然会继续处理4和5。

十二、for和while应该怎样选择

两种循环都可以完成重复执行任务,但表达的意图不同。

当你要遍历一个已有序列,或者已经知道大致重复次数时,通常使用for更清晰:

for name in ["Tom", "Lucy", "Jack"]:
    print(name)

当循环是否继续主要依赖某个动态条件时,while更自然:

password = ""

while password != "python123":
    password = input("请输入密码:")

print("密码正确")

“for用于固定次数、while用于不固定次数”是一个方便入门的说法,但不能理解得过于绝对。真正应该判断的是:当前任务是在遍历一个可迭代对象,还是希望在某个条件为真期间不断执行。

Python编程基础语法详解:变量、数据类型与控制流入门
图5:for与while解决的是不同形式的重复执行问题

十三、把变量、数据类型和控制流组合起来

单独学习每条语法还不够,更重要的是理解它们怎样配合。下面用一个简单的成绩统计程序把前面的知识连接起来。

scores = [85, 46, 92, 73, 58]

passed = 0
failed = 0

for score in scores:
    if score >= 60:
        passed = passed + 1
    else:
        failed = failed + 1

print("通过人数:", passed)
print("未通过人数:", failed)

示例输出:

通过人数: 3
未通过人数: 2

这段代码虽然很短,但已经包含了多个基础知识点:

  • scores是一个列表,用于保存多项数据。
  • passed和failed是整数变量,用于保存统计结果。
  • for逐个读取列表中的成绩。
  • if判断当前成绩是否大于等于60。
  • 根据判断结果,程序更新对应的计数变量。

这就是Python程序最常见的基本结构之一:先准备数据,再遍历数据,在循环中根据条件做出不同处理,最后得到结果。

十四、一个完整的入门练习:输入成绩并判断等级

下面再写一个需要用户输入的完整程序。它会读取成绩,将字符串转换成整数,再按照范围判断等级。

score_text = input("请输入成绩:")
score = int(score_text)

if score < 0 or score > 100:
    print("成绩应在0到100之间")
elif score >= 90:
    print("等级:优秀")
elif score >= 80:
    print("等级:良好")
elif score >= 60:
    print("等级:通过")
else:
    print("等级:未通过")

假设输入86,示例输出:

等级:良好

这个例子值得按程序真正执行的顺序理解:

  1. input()读取用户输入,得到字符串。
  2. int()把字符串转换成整数。
  3. 先检查成绩是否超出合理范围。
  4. 如果范围正常,再从较高分数段开始依次判断。
  5. 执行第一个满足条件的分支,其余分支不再执行。

这里先判断score < 0 or score > 100也体现了一种常见思路:在进入主要业务判断之前,先处理明显无效的数据。

十五、初学Python时容易混淆的几个语法点

1. =不是“判断相等”

=用于赋值,==用于比较:

age = 18

if age == 18:
    print("年龄是18")

2. input()得到的不是自动识别后的数字

用户输入18并不意味着Python自动得到整数18。需要数值计算时通常要转换:

age = int(input("请输入年龄:"))

3. range()的结束值通常不包含在结果中

list(range(1, 5))

对应的是:

[1, 2, 3, 4]

不是[1, 2, 3, 4, 5]。

4. if判断顺序会影响结果

如果多个条件存在包含关系,应优先判断更严格的条件。例如判断90分以上时,应放在60分以上之前。

5. while需要考虑怎样退出

写while时,可以顺手问自己一句:哪一个变量会改变,条件最终怎样变成False?如果无法回答,就需要检查是否可能产生无限循环。

6. Python中的缩进具有语法意义

不要把缩进只看成代码格式。条件判断、循环等代码块都通过缩进确定范围,缩进错误可能改变程序逻辑,甚至直接导致语法错误。

十六、怎样练习这些基础语法

变量、类型和控制流不适合只靠记忆语法。更有效的办法是把它们组合成一些很小但完整的程序。

可以按照下面的顺序练习:

  1. 创建几个变量,练习整数、浮点数、字符串和布尔值。
  2. 使用type()观察不同变量的类型。
  3. 使用input()读取数据,并通过int()或float()转换。
  4. 写一个if / elif / else程序判断数值范围。
  5. 用for遍历列表并统计结果。
  6. 用while实现重复输入,直到满足退出条件。

例如可以自己尝试完成下面三个小练习:

  • 输入一个整数,判断它是正数、负数还是0。
  • 保存5个成绩,使用循环计算通过人数。
  • 反复要求用户输入密码,输入正确后退出循环。

这些练习规模很小,却能覆盖变量、类型转换、比较运算、条件判断和循环,比单独背诵语法更容易建立完整理解。

十七、Python基础语法学习脉络总结

Python编程基础语法详解:变量、数据类型与控制流入门
图6:Python变量、数据类型、表达式与控制流的整体学习路径

Python基础语法并不是一组互不相关的规则。变量让程序能够保存和引用数据;数据类型决定这些数据能够进行什么操作;表达式负责计算或比较;if根据条件选择代码分支;for和while让同一段逻辑重复执行。

真正需要建立的是这样一条思路:先确认手里有什么数据,再确认数据是什么类型,根据需要进行计算或比较,然后通过条件判断和循环决定程序怎样继续运行。

当你能够独立写出“读取输入 → 转换类型 → 判断条件 → 循环处理 → 输出结果”这样的小程序时,变量、数据类型与控制流就不再只是几条孤立语法,而已经组成了Python编程最基础的一套执行逻辑。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。