【零基础学Python】04-Python运算符、分支、循环与随机数实战教程

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🎯 你正在阅读「Python 从零摸索日记」系列文章 🎯

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🔥 弹简特 个人主页

❄️ 个人专栏直通车:

靠热爱去书写自己,靠勇敢去书写生活!

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨


🌟 博主简介:


文章目录:

  • 一、前言
  • 二、算术运算符、比较运算符和逻辑运算符
    • [1. 算术运算符](#1. 算术运算符)
    • [2. 比较运算符](#2. 比较运算符)
    • [3. 逻辑运算符](#3. 逻辑运算符)
  • 三、分支语句
    • [1. 介绍](#1. 介绍)
    • [2. 分支语句的关键字和语法](#2. 分支语句的关键字和语法)
      • [2.1 语法](#2.1 语法)
      • [2.2 pass关键字](#2.2 pass关键字)
    • [3. if分支和else的基本使用](#3. if分支和else的基本使用)
    • [4. if多分支判断](#4. if多分支判断)
    • [5. if嵌套的使用](#5. if嵌套的使用)
  • 四、随机数-random模块
    • [1. 随机整数-randint](#1. 随机整数-randint)
    • [2. 从容器中随机提取choice](#2. 从容器中随机提取choice)
  • 五、循环语句
    • [1. while循环:条件驱动的重复执行](#1. while循环:条件驱动的重复执行)
      • [1.1 核心作用](#1.1 核心作用)
      • [1.2 使用场景](#1.2 使用场景)
      • [1.3 案例:累加求和直到超过阈值](#1.3 案例:累加求和直到超过阈值)
      • [1.4 关键注意点](#1.4 关键注意点)
    • [2. for循环:遍历驱动的高效迭代](#2. for循环:遍历驱动的高效迭代)
      • [2.1 Python的for与Java的for有什么不同?](#2.1 Python的for与Java的for有什么不同?)
      • [2.2 如何实现"固定次数循环"?------ range() 函数](#2.2 如何实现“固定次数循环”?—— range() 函数)
      • [2.3 核心作用与使用场景](#2.3 核心作用与使用场景)
      • [2.4 案例:成绩批量统计](#2.4 案例:成绩批量统计)
      • [2.5 拓展用法:遍历容器](#2.5 拓展用法:遍历容器)
    • [3. break与continue:循环流程的控制开关](#3. break与continue:循环流程的控制开关)
      • [3.1 break:直接终止整个循环](#3.1 break:直接终止整个循环)
        • [示例1:while循环中使用 break ------ 猜数字(找到即停止)](#示例1:while循环中使用 break —— 猜数字(找到即停止))
        • [示例2:for循环中使用 break ------ 查找列表中是否存在目标元素](#示例2:for循环中使用 break —— 查找列表中是否存在目标元素)
      • [3.2 continue:跳过本次循环,进入下一次迭代](#3.2 continue:跳过本次循环,进入下一次迭代)
        • [示例1:while循环中使用 continue ------ 只处理1到10之间的偶数](#示例1:while循环中使用 continue —— 只处理1到10之间的偶数)
        • [示例2:for循环中使用 continue ------ 计算1-20之间所有偶数的和](#示例2:for循环中使用 continue —— 计算1-20之间所有偶数的和)
      • [3.3 对比总结:break vs continue](#3.3 对比总结:break vs continue)
  • 六、写在最后

一、前言

本篇是 Python 从零摸索日记系列内容,面向编程新手。文章细致讲解各类运算符、if 分支语句、while 与 for 循环,以及 random 模块用法,搭配丰富代码案例与实操演示,循序渐进带你掌握 Python 基础核心语法。

二、算术运算符、比较运算符和逻辑运算符

1. 算术运算符

算数运算符有:加减乘除,取余取整,乘方(幂运算)

具体看如下的代码即可:

py 复制代码
print(12 + 6) # 18
print(12 - 6) # 6
print(12 * 6) # 72

# 取整
print(13 // 6) # 2......1 取整=2
# 取余
print(13 % 6)  # 2......1 取余=1
# 乘方:2*2*2 2的3次方
print(2 ** 3)  # 2*2*2 = 8

2. 比较运算符

比较运算符有:大于、小于、等于、不等于、大于等于、小于等于

那么注意:我们比较运算符得到的结果都是布尔类型哦~

具体请看代码:

py 复制代码
print(3 > 5) # False
print(3 < 5) # True
print(3 >= 5) # False
print(3 <= 5) # True
print(3 != 5) # True
print(3 == 5) # False
print(3 == 3) # True

3. 逻辑运算符

逻辑运算符有:and or not

也就是我们的

  • and 所有条件都为真,结果才为真,一假则假
  • or 所有的条件都为假,结果才为假,一真则真
  • not 真的变为假,假的变为真

代码:

py 复制代码
# 逻辑运算符有:and or not
print((1 == 1) and (3 <= 2)) # False
print((1 == 1) and (3 <= 5)) # True
print((1 == 1) or (3 <= 5)) # True
print((1 != 1) or (3 <= 2)) # False
print(not 1 != 1) # True
print(not 1 == 1) # False

三、分支语句

1. 介绍

我们几乎所有的编程语言的代码执行过程都有三大体系:

  • 顺序执行
  • 分支执行
  • 循环执行

我们之前所说的那些都是顺序执行,本期就介绍分支执行和循环执行。

2. 分支语句的关键字和语法

分支语句我们使用的关键字是if

2.1 语法

  • if 判断条件:
    • 条件成立会执行的代码块
  • else:
    • 条件不成立会执行的代码块

2.2 pass关键字

语法:

py 复制代码
age = eval(input('请输入你的年龄'))
if age > 18:
    # 在这里你不知道写什么就会报错 此时使用pass来消除错误
    pass
else:
    # 在这里你不知知道写什么就会报错
    pass

3. if分支和else的基本使用

示例::输入考试成绩,那么如果成绩>=60就算及格,否则不及格

py 复制代码
# if和else的基本使用:
# 需求: 输入成绩 >= 60 几个,否则不及格
print('开始查询考试成绩:')
score = int(input('请输入你的分数:'))
if score >= 60:
    print('恭喜你,考试成绩合格了~')
    print('请进入下一阶段的学习~~')
else:
    print('很遗憾,考试不及格')
    print('别灰心,我们一起继续努力~~')
print('成绩查询结束')

结果:

代码解释:

4. if多分支判断

我们使用elif关键字来进行匹配对应的输出条件代码块。

案例: 统计学生的成绩

编写一个Python程序,实现以下功能:

  1. 让用户输入一个考试分数(0-100之间的整数)
  2. 根据分数区间,输出对应的成绩等级和评语:
    • 90分及以上:等级为「优秀」,评语:"太棒了!继续保持!"
    • 80~89分:等级为「良好」,评语:"表现不错,还有进步空间!"
    • 70~79分:等级为「中等」,评语:"基础还行,多刷难题冲一冲!"
    • 60~69分:等级为「及格」,评语:"刚好及格,一定要查漏补缺!"
    • 60分以下:等级为「不及格」,评语:"别灰心,认真复习下次一定能过!"

代码:

py 复制代码
# 需求:用户输入考试分数,根据不同分数区间给出对应的等级评价
score = int(input('请输入你的考试分数:'))

if score >= 90:
    print('成绩等级:优秀🎉')
    print('太棒了!继续保持这个水平!')
elif score >= 80:
    print('成绩等级:良好👍')
    print('表现不错,还有进步空间哦~')
elif score >= 70:
    print('成绩等级:中等😊')
    print('基础还可以,多复习难题就能往上冲!')
elif score >= 60:
    print('成绩等级:及格✅')
    print('刚好及格,一定要查漏补缺!')
else:
    print('成绩等级:不及格❌')
    print('别灰心,认真复习下次一定能过!')

5. if嵌套的使用

如果出现这样的一个场景:在满足第一个的情况下,我还满足其他,此时就是用if语句的嵌套的,具体使用方法,我们通过下述例子来介绍:

示例:

编写一个 Python 程序,实现景区门票价格计算:

  1. 先判断用户是否为学生 (输入 yn
  2. 如果是学生:
    • 身高≥1.4米:学生票半价(30元)
    • 身高<1.4米:免票(0元)
  3. 如果不是学生:
    • 身高≥1.4米:全价票(60元)
    • 身高<1.4米:优惠票(20元)

代码:

py 复制代码
# 需求:景区门票价格判断(if嵌套练习)
# 1. 先判断是否为学生
# 2. 学生:身高≥1.4米 → 半价;<1.4米 → 免票
# 3. 非学生:身高≥1.4米 → 全价;<1.4米 → 优惠票

student = input('请问你是学生吗?(y/n): ')
height = float(input('请输入你的身高(米): '))

if student == 'y':
    print('你是学生,可享受学生优惠政策')
    if height >= 1.4:
        print('身高≥1.4米,购买学生半价票')
        print(f'最终票价:30元')
    else:
        print('身高<1.4米,免票入园')
        print(f'最终票价:0元')
else:
    print('你不是学生,按普通游客标准收费')
    if height >= 1.4:
        print('身高≥1.4米,购买全价票')
        print(f'最终票价:60元')
    else:
        print('身高<1.4米,购买优惠票')
        print(f'最终票价:20元')

四、随机数-random模块

1. 随机整数-randint

案例1: 获取一个随机整数

语法: randint(起始,终止)

注意:范围是左闭右闭的,比如randint(1,3) 那么就会在1,3即1到3之间随机出一个数,包括1和3

示例:

py 复制代码
# 随机获取一个整数
from random import randint

# 我们在[1,10]之间随机出来数字
print(f'第1次随机出来的值:{randint(1, 10)}')
print(f'第2次随机出来的值:{randint(1, 10)}')
print(f'第3次随机出来的值:{randint(1, 10)}')
print(f'第4次随机出来的值:{randint(1, 10)}')
print(f'第5次随机出来的值:{randint(1, 10)}')

2. 从容器中随机提取choice

案例2: 从列表中随机提取一个元素值

语法: choice(列表)

示例:

py 复制代码
# 从列表中随机获取一个元素
from random import choice

name_list = ['弹简特', '李四', '张三', '赵六', '刘备']
print(f'从列表中随机出一个元素:{choice(name_list)}')
print(f'从列表中随机出一个元素:{choice(name_list)}')
print(f'从列表中随机出一个元素:{choice(name_list)}')

根据您的要求,我已重新整理文章。主要调整包括:

  1. while循环 :明确写出初始表达式循环条件更新表达式 ,且示例中不包含 break/continue
  2. for循环 :针对Java转Python的学习者,详细解释其与Java for循环的区别,强调Python的for是"遍历驱动"而非"索引驱动",并说明 range() 的用法。示例中不包含 break/continue
  3. break与continue :分别用 whilefor 各举至少一个例子,共4个示例,清晰展示两者的不同作用。

以下是整理后的文章:


五、循环语句

1. while循环:条件驱动的重复执行

1.1 核心作用

while 循环通过条件判断 控制代码块的重复执行------只要条件为 True,循环体就会持续运行,直到条件变为 False。它适合循环次数不确定的场景,需要手动管理三个关键要素:

  • 初始表达式:循环开始前定义的变量(如计数器)
  • 循环条件:每次迭代前判断的布尔表达式
  • 更新表达式 :循环体内修改变量,使条件最终趋向 False

1.2 使用场景

  • 次数不确定的重复任务(如用户输入验证、游戏循环)
  • 需要持续执行直到满足特定条件的场景(如监控数据、轮询状态)
  • 配合计数变量实现固定次数循环(与 for 功能互补)

1.3 案例:累加求和直到超过阈值

需求:从1开始累加正整数,直到总和首次超过100,输出此时的总和以及累加到的最后一个数。

python 复制代码
# ---------- while 循环的三要素 ----------
# 1. 初始表达式
total = 0
num = 1

# 2. 循环条件:当总和 ≤ 100 时继续累加
while total <= 100:
    total += num      # 累加
    # 3. 更新表达式:num 自增,使条件逐渐接近 False
    num += 1

print(f"总和首次超过100时的值为:{total}")
print(f"此时累加到了数字:{num - 1}")   # 因为最后一次累加后 num 又多加了1

运行结果

1.4 关键注意点

  • 必须包含更新表达式 (如 num += 1),否则循环条件永远为真 → 死循环
  • 条件判断要合理,确保存在使条件变为 False 的可能
  • 固定次数的循环优先使用 for(更简洁安全),while 更适合"直到某个条件达成"的场景

2. for循环:遍历驱动的高效迭代

2.1 Python的for与Java的for有什么不同?

如果你熟悉Java,Python的 for 循环不是 Java中的 for (初始化; 条件; 更新) 形式。Python的 for 本质上是一个 "迭代器循环" ,它直接遍历容器中的每一个元素,类似Java的 增强for循环(for-each)

java 复制代码
// Java 增强for循环
int[] numbers = {1,2,3,4,5};
for (int n : numbers) {
    System.out.println(n);
}
python 复制代码
# Python for循环
numbers = [1,2,3,4,5]
for num in numbers:
    print(num, end=' ')

上述两者完全等价!Python的 for 无需手动管理索引、条件判断和更新,它会自动按顺序取出可迭代对象(列表、字符串、range序列等)中的每一个元素。

2.2 如何实现"固定次数循环"?------ range() 函数

在Java中,固定次数循环常用 for (int i=0; i<10; i++)。Python中则使用 range() 生成一个数字序列:

python 复制代码
# 写法一:range(stop) ------ 从0开始到stop-1
for i in range(10):      # i = 0 1 2 3 4 5 6 7 8 9
    print(i)

# 写法二:range(start, stop) ------ 从start到stop-1
for i in range(1, 11):   # i = 1 2 3 4 5 6 7 8 9 10 
    print(i)

# 写法三:range(start, stop, step) ------ 指定步长
for i in range(0, 20, 2): # i = 0 2 4 6 8 10 12 14 16 18 
    print(i)

记忆技巧range(n) 会产生 n 个数,最后一个数是 n-1,这和Java的 for (int i=0; i<n; i++) 完全一致。

2.3 核心作用与使用场景

  • 核心作用:遍历可迭代对象(列表、字符串、元组、字典、range序列等),自动控制循环次数,代码更简洁安全。
  • 典型场景
    • 固定次数的重复任务(配合 range()
    • 批量处理数据(计算、筛选、修改列表元素)
    • 遍历字符串、字典等复合数据类型

2.4 案例:成绩批量统计

需求:输入10个学生的成绩,分别统计及格(≥60)和不及格的人数,并计算平均分。

python 复制代码
scores = []
pass_count = 0
fail_count = 0
total_score = 0

# 使用 for + range 实现固定次数循环
for i in range(10):
    score = float(input(f"请输入第{i+1}个学生的成绩:"))
    scores.append(score)
    total_score += score
    
    if score >= 60:
        pass_count += 1
    else:
        fail_count += 1

# 计算平均分
average_score = total_score / len(scores)

print("\n===== 成绩统计结果 =====")
print(f"总人数:{len(scores)}人")
print(f"及格人数:{pass_count}人,不及格人数:{fail_count}人")
print(f"平均分:{average_score:.2f}分")
print(f"最高成绩:{max(scores)}分,最低成绩:{min(scores)}分")

2.5 拓展用法:遍历容器

python 复制代码
# 1. 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(fruit)

# 2. 遍历字符串
word = "Hello"
for ch in word:
    print(ch)

# 3. 遍历元组
numbers = (1, 2, 3)
for num in numbers:
    print(num)

# 4. 遍历字典
person = {"name": "小明", "age": 18}
for key, value in person.items():
    print(key, value)

3. break与continue:循环流程的控制开关

breakcontinue 可以在 whilefor 循环中使用,用于改变循环的正常执行流程。下面分别用两种循环举例说明。

3.1 break:直接终止整个循环

  • 作用:立即跳出当前所在的整个循环体,后续所有迭代都不再执行。
  • 典型场景:找到目标数据后无需继续查找、用户主动退出、发生致命错误时终止。
示例1:while循环中使用 break ------ 猜数字(找到即停止)
python 复制代码
secret = 7
guess = 0

while True:          # 条件永远为真,需要内部用 break 退出
    guess = int(input("猜一个1-10之间的数字:"))
    if guess == secret:
        print("恭喜猜对了!")
        break        # 猜对后立即终止循环
    else:
        print("猜错了,再试一次")
示例2:for循环中使用 break ------ 查找列表中是否存在目标元素
python 复制代码
numbers = [12, 45, 78, 23, 56, 89, 34]
target = 56
found = False

for num in numbers:
    if num == target:
        print(f"找到目标数字:{target}")
        found = True
        break        # 找到后直接终止循环,后面的元素不再检查
    print(f"当前检查:{num}")

if not found:
    print("未找到目标数字")

3.2 continue:跳过本次循环,进入下一次迭代

  • 作用 :跳过当前循环中 continue 之后的所有代码,直接开始下一次循环迭代。
  • 典型场景:过滤无效数据、跳过某些不需要处理的值。
示例1:while循环中使用 continue ------ 只处理1到10之间的偶数
python 复制代码
num = 1
while num <= 10:
    if num % 2 != 0:   # 奇数
        num += 1
        continue       # 跳过本次循环,不执行下方的打印
    print(f"{num} 是偶数")
    num += 1
示例2:for循环中使用 continue ------ 计算1-20之间所有偶数的和
python 复制代码
sum_even = 0
for i in range(1, 21):
    if i % 2 != 0:
        continue       # 奇数直接跳过,不累加
    sum_even += i

print(f"1-20之间所有偶数的和:{sum_even}")  # 输出:110

3.3 对比总结:break vs continue

关键字 作用 对循环的影响 典型场景
break 终止整个循环 循环立即结束,不再执行任何剩余迭代 找到目标数据、用户退出、错误处理
continue 跳过本次循环 仅跳过当前迭代的剩余代码,循环继续下一次 过滤无效数据、跳过特定条件的元素

六、写在最后

能坚持看到最后的朋友,属实是真爱学编程了,先歇会儿眼睛放松一下~

很多同学刚开始学Python,都不知道它到底能干啥。还是简单跟大伙唠唠:

可以做自动化测试 、写办公脚本解放双手爬虫采集数据做数据分析、开发小工具、甚至做简单后端和小游戏,用途真的特别广。

最后分享几句实在又走心的话送给正在学Python的你:

  1. 慢慢来别着急,代码不会辜负每一个愿意坚持敲键盘的人

  2. 现在多学一点技能,未来就多一份选择的底气

  3. 与其原地迷茫焦虑,不如从一行Python代码开始悄悄变强

  4. 看似不起眼的日复一日,终会在将来的某天,让你看到坚持的意义

铁汁们~ 觉得内容有用的话,麻烦点个赞、关注一波,后续会持续更新Python入门、实战、自动化相关笔记,咱们一起慢慢进阶。

文章有哪里讲得不妥的,欢迎评论区随时指正,大家一起交流进步!

兄弟们,咱们一起学好Python,悄悄逆袭~~~

相关推荐
星越华夏10 小时前
python办公自动化,csv文件/excel文件差集合并
开发语言·python·excel
jiayong2310 小时前
03 写第一个带逐行注释的 Python 程序
python
不会C语言的男孩10 小时前
C++ Primer Plus 第3章:处理数据
开发语言·c++
一天 24h10 小时前
Python自定义迭代器:从入门到精通
开发语言·python·迭代器模式·学习方法·新人首发
叶帆10 小时前
【YFIOs】用C#开发硬件之GPIO操作
开发语言·c#
在繁华处10 小时前
Hermes Agent 完全使用指南:从安装到多平台部署的全流程教程
python·开源·飞书
Starry-sky(jing)10 小时前
Hermes Agent 接入 Qwen3.7-Max 报 401?OpenCode Go 模型路由源码级排查与修复
开发语言·人工智能·chrome·golang
likerhood10 小时前
Java 集合框架入门:List、Set、Queue 与 Map
java·开发语言·list
暴躁小师兄数据学院10 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第五章):条件判断与流程控制
大数据·人工智能·python·学习