【Python】基础语法入门(二)


前言

在上一篇基础语法(一)中,我们搭建了变量、运算符、输入输出等"编程地基",但程序还是只能按固定顺序"从头到尾"执行。在这一篇中,我们将聚焦Python的核心逻辑控制,条件语句和循环语句,以帮你解锁"根据情况做选择"和"重复执行某项任务"的关键能力,让程序真正具备"解决实际问题"的灵活度!


一、程序的3种核心执行结构

所有编程场景的执行逻辑,都离不开3种基础结构:

  • 顺序结构:程序从上到下依次执行(基础语法一已掌握)。
  • 选择结构(条件语句):程序按条件判断,走不同的执行分支(比如"成绩≥60为及格,否则为不及格"。
  • 循环结构(循环语句):程序重复执行某段代码,直到满足结束条件(比如"打印1-100所有数字")。

二、条件语句

条件语句的核心是"分支逻辑",程序会根据条件的"真(True)/假(False)",走向不同的执行路径。

2.1 核心语法

Python的条件语句语法简洁,但有两个特殊规则,和C/C++、Java等语言差异有点大:

  • 条件表达式后不加括号 ,结尾必须跟:(冒号)。
  • 代码块用"缩进"(4个空格或1个Tab)划分归属,而非为{}
  • 多分支用elifelse if的简写),不用重复写else,使得逻辑更清晰。
(1)单分支:if语句(满足条件才执行)

语法:

if 条件: 缩进的代码块(条件为真时,才执行代码块)

python 复制代码
# 示例:判断是否成年,满足条件才提示
age = int(input("请输入你的年龄:"))
if age >= 18:
    print("你已成年,可独立办理业务~")
    print("记得带好身份证哦!")  # 同一缩进,同属if代码块
(2)双分支:if-else语句(二选一逻辑)

语法:

if 条件: 代码块1 else: 代码块2(条件真执行代码块1,假执行代码块2)

python 复制代码
# 示例:判断数字奇偶性,非此即彼
num = int(input("请输入一个整数:"))
if num % 2 == 0:
    print(f"{num}是偶数")
else:
    print(f"{num}是奇数")
(3)多分支:if-elif-else语句(多选一)

语法:

if 条件1: 代码块1 elif 条件2: 代码块2 else: 代码块3(按顺序判断,满足一个即执行)

python 复制代码
# 示例:成绩等级判定(贴近实际学习场景)
score = int(input("请输入成绩(0-100):"))
if score >= 90:
    print("优秀!继续保持~")
elif score >= 80:
    print("良好!再努努力就能冲优秀啦~")
elif score >= 60:
    print("及格!基础掌握了,还要多练习~")
else:
    print("不及格,需要补考哦!建议重新复习知识点~")

2.2 关键点

Python用缩进区分代码块的归属,缩进错误会直接导致语法报错,这是新手最容易踩的坑之一。

python 复制代码
# 正确示例:缩进一致,逻辑清晰
a = 10
if a > 5:
    print("a大于5")
    print("执行代码块1")  # 4个空格缩进,属于if内部
print("无论条件是否成立,都会执行")  # 无缩进,属于外部代码

# 错误示例:缩进混乱,直接报错
a = 10
if a > 5:
print("a大于5")  # 无缩进,语法报错
    print("执行代码块1")
  print("缩进不一致")  # 缩进层级混乱,报错

小技巧

  • 用IDE(如PyCharm)的自动缩进功能,避免手动调整出错;
  • 避免3层以上嵌套缩进(比如if里套if再套if),否则代码可读性会变差,后续维护困难(比如"找半天不知道代码属于哪个分支")。

2.3 空语句pass

如果条件语句中暂时没有要执行的代码,不能留空(会语法报错),此时用pass占位------它不执行任何操作,只保证语法完整,后续可随时补充代码。

python 复制代码
# 示例:暂时不处理"输入1"的情况,用pass占位
num = int(input("请输入数字:"))
if num == 1:
    pass  # 占位用,后续可添加具体逻辑
else:
    print("你输入的不是1")

2.4 实战案例:

判断闰年(嵌套条件的实际应用)

闰年规则:

  • 能被100整除(如2000年、2100年)且能被400整除是闰年。
  • 不能被100整除,且能被4整除是闰年。

我们可以用嵌套条件语句来实现,逻辑清晰且贴近实际开发:

python 复制代码
year = int(input("请输入年份:"))
if year % 100 == 0:
    # 嵌套条件:世纪年的额外判断
    if year % 400 == 0:
        print(f"{year}是闰年,有366天")
    else:
        print(f"{year}是平年,有365天")
else:
    if year % 4 == 0:
        print(f"{year}是闰年,有366天")
    else:
        print(f"{year}是平年,有365天")

当然我们也可以简化成这种写法:

python 复制代码
year = int(input('请输入年份:'))
if (not year % 4  and year % 100 ) or not year % 400:
    print(f"{year}是闰年,有366天")
else:
     print(f"{year}是平年,有365天")

三、循环语句

遇到需要反复执行的操作(比如打印1-10、计算1-100的和、批量录入数据),使用循环语句的话能帮你避免写大量重复代码,实现"自动化重复",这也是编程提高效率的核心优势之一。

Python主要有whilefor两种循环,它们适用的场景不同,我们要学会"按需去选择"。

3.1 while循环

while循环的逻辑:只要条件为真,就反复执行循环体,直到条件为假才结束。适合"不确定循环次数,但知道结束条件"的场景。

(1)基础语法
python 复制代码
while 条件:
    循环体(缩进代码)
    循环变量更新(必须要有!否则程序会一直无限循环)
(2)经典示例
  • 示例1:打印1-10
python 复制代码
num = 1
while num <= 10:
    print(num)
    num += 1  # 循环变量+1,否则条件永远为真(无限循环)
  • 示例2:计算1-100的和
python 复制代码
sum_total = 0  # 存储总和的变量,初始值0
num = 1
while num <= 100:
    sum_total += num  # 等价于sum_total = sum_total + num
    num += 1
print(f"1-100的和:{sum_total}")  # 输出:5050
输出结果

5050

  • 示例3:嵌套循环------打印99乘法表
python 复制代码
i = 1
while i <= 5:
    j = 1
    while j <= i:
        print(f"{j}×{i}={j*i}", end="\t")  # end="\t"让结果横向对齐
        j += 1
    print()  # 换行,进入下一行乘法表
    i += 1
(3)无限循环

如果循环变量不更新(比如没写num += 1),条件会永远为真,程序会一直循环下去(比如一直打印1),只能强制终止。

常见无限循环场景及解决

  • 忘记更新循环变量:添加num += 1i -= 1等更新语句;
  • 条件永远为真(如while True):需在循环体内用break手动终止(我们后面会介绍到)。

3.2 for循环

Python的for循环和其他语言差异很大,它不用手动管理循环变量(初始化、更新、判断),而是直接遍历"可迭代对象"(比如数字序列、字符串、列表),语法更简洁,是我们日常开发中最常用的循环。

(1)基础语法
python 复制代码
for 循环变量 in 可迭代对象:
    循环体
(2)核心工具:range函数(生成数字序列)

range是Python中的内置函数,专门用来生成连续整数序列,有三种常用格式:

  • range(n):生成0~n-1,比如range(5)→0,1,2,3,4。
  • range(a, b):生成a~b-1(左闭右开区间),比如range(1,6)→1,2,3,4,5。
  • range(a, b, step):生成a~b-1,且步长为step(每次增减的数值),比如range(2,12,2)→2,4,6,8,10。
(3)经典示例
  • 示例1:打印1-10(用range(1,11)
python 复制代码
for i in range(1, 11):
    print(i)
  • 示例2:打印偶数2、4、6、8、10(步长为2)
python 复制代码
for i in range(2, 12, 2):
    print(i)
  • 示例3:反向打印10-1(步长为-1)
python 复制代码
for i in range(10, 0, -1):
    print(i)
  • 示例4:遍历字符串
python 复制代码
text = "Python"
for char in text:
    print(char)  # 依次输出:P、y、t、h、o、n

3. 循环控制:break和continue

循环中需要"提前结束"或"跳过某次执行"时,用breakcontinue控制流程------两者功能不同,新手容易混淆,一定要分清!

(1)break:直接终止整个循环

不管后续条件是否满足,立即跳出循环,不再执行任何循环体代码。适合"找到目标后就停止"的场景。

python 复制代码
# 示例:找10以内的第一个偶数,找到即停止
for i in range(1, 11):
    if i % 2 == 0:
        print(f"找到的第一个偶数:{i}")
        break  # 终止整个循环,后续数字不再判断
(2)continue:跳过本次循环,进入下次

只跳过当前这次的循环体,不终止整个循环,接下来继续执行下一次迭代。适合"筛选掉不需要的情况,继续后续执行"的场景。

python 复制代码
# 示例:打印1-10,跳过奇数(只打印偶数)
for i in range(1, 11):
    if i % 2 != 0:
        continue  # 跳过奇数,不执行后续print
    print(i)  # 只输出偶数:2、4、6、8、10
(3)实战:输入数字求和,输入0结束(无限循环+break)
python 复制代码
sum_total = 0
while True:  # 无限循环,靠break手动终止
    num = float(input("请输入数字(输入0结束):"))
    if num == 0:
        break  # 输入0,终止循环
    sum_total += num
print(f"所有输入数字的和:{sum_total}")

四、综合实战:简易学生成绩管理系统

结合条件语句和循环,实现一个实用小工具------录入3名学生的成绩,自动判定等级、计算平均分,覆盖"输入校验、循环录入、条件判定、结果统计"等核心场景。

1. 功能需求

  • 循环录入3名学生的成绩(支持0-100,无效成绩需重新输入)。
  • 自动判定每个学生的成绩等级(优秀/良好/及格/不及格)。
  • 计算3名学生的平均分并保留2位小数,最终输出统计结果。

2. 完整代码

python 复制代码
# 简易学生成绩管理系统
sum_score = 0  # 存储3名学生的总分
student_count = 3  # 学生人数

print("=" * 30)
print("学生成绩管理系统(录入3名学生)")
print("=" * 30)

# 循环录入3名学生成绩(for循环+range,明确循环次数)
for i in range(1, student_count + 1):
    # 内层while循环:校验成绩有效性(0-100)
    while True:
        score = float(input(f"\n请输入第{i}名学生的成绩(0-100):"))
        if 0 <= score <= 100:
            break  # 成绩有效,跳出校验循环
        print("成绩无效!请输入0-100之间的数字~")
    
    # 累加总分
    sum_score += score
    
    # 条件语句:判定成绩等级
    if score >= 90:
        grade = "优秀"
    elif score >= 80:
        grade = "良好"
    elif score >= 60:
        grade = "及格"
    else:
        grade = "不及格"
    
    # 输出单名学生结果
    print(f"第{i}名学生:成绩{score}分,等级{grade}")

# 计算并输出平均分(保留2位小数,更规范)
avg_score = sum_score / student_count
print(f"\n{'=' * 30}")
print(f"3名学生的平均分:{avg_score:.2f}分")
print(f"{'=' * 30}")

至此,我们已梳理完Python基础语法(二)的核心内容了。最后我们在文末来进行一个投个票,告诉我你对哪部分内容最感兴趣、收获最大,也欢迎在评论区聊聊你的学习感受。后续我们还将深入探索函数、函数嵌套等内容,敬请关注 , 谢谢!

以上就是本期博客的全部内容了,感谢各位的阅读以及关注。如有内容存在疏漏或不足之处,恳请各位技术大佬不吝赐教、多多指正。

相关推荐
rising start1 小时前
二、python面向对象高级
开发语言·python
虎头金猫1 小时前
随时随地处理图片文档!Reubah 加cpolar的实用体验
linux·运维·人工智能·python·docker·开源·visual studio
Demon--hx1 小时前
[c++]string的三种遍历方式
开发语言·c++·算法
q***08741 小时前
MySQL压缩版安装详细图解
android·mysql·adb
九鼎创展科技1 小时前
九鼎创展发布X3588SCV4核心板,集成LPDDR5内存,提升RK3588S平台性能边界
android·人工智能·嵌入式硬件·硬件工程
共享家95271 小时前
QT-系统(多线程)
开发语言·数据库·qt
郝学胜-神的一滴1 小时前
Effective Python 第52条:用subprocess模块优雅管理子进程
linux·服务器·开发语言·python
valan liya2 小时前
C++list
开发语言·数据结构·c++·list
与籍同行2 小时前
安卓10.0 分屏相关
android