【Python专项】基础语法(2)

14.if选择结构

python 复制代码
"""
if选择结构基本语法
    if 条件判断:
        条件为True,执行下方缩进代码
        如果条件不成立,则不执行下方缩进代码
"""
age = 21
if age <= 35 :
    print("还没到35岁呢,别怕被裁员了,心放宽")

# 下方没有缩进,则代表和if语句没有任何关系,无论if是否成立,都会执行下方代码
print("信不信,我可以一直输出!")

📝 代码总结

  • 核心知识点 :单分支 if 条件结构
  • 实现逻辑:评估条件表达式,为真则执行缩进代码块;非缩进代码不受条件控制
  • 关键语法if 条件: + 缩进代码块
  • 功能作用:实现程序的基础流程控制,演示 Python 严格依赖缩进划分代码作用域的特性

15.if选择结构结合input

python 复制代码
# 定义一个可输入变量,来进行条件判断!
age = int(input("请输入你的年龄:"))
if age >= 35:
    print("你被裁员了!")

📝 代码总结

  • 核心知识点if 结构与动态输入结合
  • 实现逻辑:将用户输入转为整数后作为条件判断依据,实现动态分支执行
  • 关键语法if int(input()) >= 值:
  • 功能作用:展示条件判断在实际交互场景中的应用,使程序具备根据用户输入做出不同响应的能力

16.if_else选择结构

python 复制代码
"""
if 条件判断:
    条件为 True,则执行下方缩进代码
else:
    条件为 False,则执行else下方缩进代码
案例:接收用户年龄,大于等于 35 则正常上班;不满足条件,则被公司优化,回家种地。
"""
age = int(input("恭喜你运行此程序,请输入您的年龄:"))
if age >= 35:
    print("您被我们优化了,您太老了,请前往人事部门,可以回家享福种地去了。")
else:
    print("哈哈,不要摸鱼了,小心出事情。")

📝 代码总结

  • 核心知识点 :双分支 if...else 结构
  • 实现逻辑 :条件成立执行 if 块,不成立则必定执行 else 块,二者必选其一
  • 关键语法if 条件:\n 代码\nelse:\n 代码
  • 功能作用:处理非此即彼的二元逻辑场景,完善条件控制的覆盖范围

17.if_elif_else多选择结构

python 复制代码
"""
① 如果年龄小于 18 的情况为童工年龄区间,不合法;
② 如果年龄在 18-35 岁之间为奋斗年龄区间;
③ 大于等于 35 岁为优化年龄区间。
第一个条件 age < 18
第二个条件 18 <= age < 35
第三个条件 age >= 35
"""
age = int(input("怎么又在偷摸运行程序来摸鱼?请输入您的年龄:"))
if age < 18:
    print("您怎么还未成年,您现在是童工年龄区间,谁把你招进来的,不合法,别让我把丢出去。")
elif 18 <= age < 35:
    print("哈哈,摸鱼被我抓到了吧,请速度回到工作之中,不然我就调用系统工具截图,并发送你至上层邮箱了")
else:
    print("老爷子,您处于我们公司优化年龄区间了,请自觉提出离职,谢谢!")

📝 代码总结

  • 核心知识点 :多分支 if...elif...else 结构
  • 实现逻辑 :自上而下依次评估条件,命中第一个为真的分支后执行并跳出,全不匹配则执行 else
  • 关键语法if...elif 条件:...else:...,支持链式比较 18 <= age <= 60
  • 功能作用:处理多区间、互斥的业务逻辑,演示 Python 特有的连续比较语法,提升条件判断的表达力

18.基于if_elif_else选择结构的猜拳游戏

python 复制代码
"""
游戏规则:人机大战
有两个角色:player 玩家角色、computer 电脑角色
玩家手工出拳(可以选择石头 1、剪刀 2、布 3)
电脑要求随机出拳(随机 random)
进行条件判断,大概三种情况:玩家获胜、平局、电脑获胜
思路:   ① 定义两个变量
        ② input()
        ③ 电脑随机出拳(random模块)
        ④ 使用if...elif...else进行条件判断

难点:如何判断玩家获胜?
player -> 1 -> computer -> 2 -> player win
player -> 2 -> computer -> 3 -> player win
player -> 3 -> computer -> 1 -> player win
"""
import random

print("-" * 5,"欢迎来到人机大战-猜拳游戏","-" * 5)
player = int(input("请输入您的出拳信息(石头 1 剪刀 2 布 3): "))
computer = random.randint(1,3)

if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
    print("恭喜您,您战胜了机器!")
elif player == computer:
    print("不可思议,竟然是平局,太厉害了!")
else:
    print("加油,不要气馁,下次一定能行!")
print("-" * 5,"欢迎来到人机大战-猜拳游戏","-" * 5)

📝 代码总结

  • 核心知识点:逻辑运算符与综合条件判断实战
  • 实现逻辑 :结合输入、随机数生成,使用 and/or 组合多个相等判断,覆盖游戏胜负平所有情况
  • 关键语法and, or, random.randint(), 复杂布尔表达式组合
  • 功能作用:将基础语法融会贯通,演示实际项目中的多条件逻辑编排,强化对流程控制与逻辑运算的理解

19.While循环

python 复制代码
"""
Task:
    编写计数器,附带循环条件,循环体内部更新计数器的值(i=i+1)
注意:Python 中没有 i++ i-- 的写法!
"""
i = 1
while i <= 10:
    print(i,"我好痛苦,我想财富自由!")
    i = i + 1   # 等价于 i += 1

📝 代码总结

  • 核心知识点while 循环与计数器更新机制
  • 实现逻辑 :初始化计数器 i = 1,设定循环条件 i <= 10,循环体内打印信息并执行 i = i + 1 更新计数器
  • 关键语法while 循环、i = i + 1(等价于 i += 1)、print() 输出
  • 注意事项 :Python 中不支持 i++ / i-- 自增/自减运算符,必须使用赋值语句更新变量
  • 功能作用:演示循环结构的三要素(初始化、条件判断、变量更新),培养循环控制思维

20.while循环实现死循环结构

python 复制代码
# 定义一个死循环结构
while True:
        print('-' * 5,"Student Manage System",'-' * 5)
        print("1.Add Student")
        print("2.Delete Student")
        print("3.Modify Student")
        print("4.Search Student")
        print('-' * 5,"Student Manage System",'-' * 5)
        # 引入input()提示用户输入需要的选项,以此来阻塞代码。
        choice = int(input("Choice(1-4): "))

📝 代码总结

  • 核心知识点while True 死循环 + 菜单交互
  • 实现逻辑 :无限循环显示学生管理系统菜单,通过 input() 获取用户选项(1-4),int() 转换后用于后续增删改查功能分支
  • 关键语法while True、字符串乘法 '-' * nint(input())print() 格式化输出
  • 注意事项 :必须提供退出机制(如 break),否则程序无限运行;用户输入非数字会触发 ValueError,建议添加异常处理
  • 功能作用:搭建系统交互框架,实现菜单重复显示与用户选择输入

21.for循环实现遍历

python 复制代码
# for 循环主要用于字符串,列表,元组,字典,集合类型的便利操作
str1 = "KSKBL"
for i in str1:
    print(i)
# str1 有多少字符,就会循环多少次。

📝 代码总结

  • 核心知识点for 循环遍历可迭代对象(字符串)
  • 实现逻辑for 循环逐次取出字符串 str1 中的每个字符,赋值给变量 i,并执行 print(i) 输出
  • 关键语法for 临时变量 in 可迭代对象:、字符串作为序列类型自动支持迭代
  • 执行次数:循环次数等于字符串长度(5个字符循环5次)
  • 功能作用 :演示 for 循环在字符串遍历中的基本用法,理解可迭代对象与循环次数的对应关系

22.Debug调试工具的使用

python 复制代码
"""
Debug: bug 异常或错误,Debug 就是针对异常或错误进行调试,了解代码执行流程,排查问题。
    1.下断点,Debug 一般打在 if/while/for 开头
    2.启动 Debug 调试
    3.使用 step over 一步一步进行调试
"""
str2 = "123456789"
for i in str2:
    print(i)

📝 代码总结

  • 核心知识点 :Debug 调试技巧与 for 循环遍历
  • 实现逻辑 :在循环行(for i in str2:)设置断点,启动 Debug 后使用 Step Over 逐行执行,观察变量 i 每次循环的变化及 print() 输出过程
  • 关键语法:断点设置(行号处点击)、Debug 模式启动、Step Over(F8)单步执行
  • 调试要点 :断点通常打在循环/条件判断开头,便于观察流程控制;通过 Debug 可清晰看到字符串字符逐个被取出赋给 i 的过程
  • 功能作用:掌握 Debug 调试工具的使用,理解代码实际执行顺序,学会通过调试排查程序逻辑错误

23.for循环结合range函数实现指定次数循环

python 复制代码
# 1.循环生成 0-4 ,range(5) -> range(0-5), 5 是 stop 结束值,永远也达不到。
for i in range(5):
    print(i)
print('-' * 10 )
for i in range(0,5):
    print(i)
print('-' * 10 )
# 2.循环 1-9,默认都是从 0 开始
for i in range(1,10):
    print(i)
print('-' * 10 )
# 3.获取 1-10 之间的所有奇数
for i in range(1,11,2):
    print(i)
print('-' * 10 )

📝 代码总结

  • 核心知识点range() 函数三种基本用法
  • 实现逻辑
    • range(5):单参数,从0开始到5结束(不包含5),生成0,1,2,3,4
    • range(1,10):双参数,从1开始到10结束(不包含10),生成1-9
    • range(1,11,2):三参数,从1开始到11结束(不包含11),步长为2,生成1,3,5,7,9(奇数)
  • 关键语法range(start, stop, step),stop为终止值(取不到),step默认为1
  • 注意事项range() 生成的序列不包含stop值;步长可为负数实现倒序
  • 功能作用 :掌握 range() 在不同场景下的灵活运用,实现精确的循环次数控制和数字序列生成

24.for循环实现求解1-100累加

python 复制代码
"""
sum = 1 + 2 + 3 + ... + 98 + 99 + 100
"""
sum = 0
for i in range(1,101):
    sum += i
print(f'1-100累加之和为:{sum}')      # 这里记得跳出 for 循环

📝 代码总结

  • 核心知识点for 循环累加求和
  • 实现逻辑 :初始化变量 sum = 0,使用 for i in range(1,101) 遍历1到100,每次循环执行 sum += i 累加,循环结束后输出结果
  • 关键语法range(1,101) 生成1-100序列、累加赋值运算符 +=、f-string格式化输出 f"{sum}"
  • 典型应用:计算等差数列之和、统计总和等需要累积计算的场景
  • 注意事项print() 必须写在循环外部,否则每次循环都会输出中间结果

25.for循环求解1-100偶数的和

python 复制代码
"""
sum = 2 + 4 + 6 + ... + 96 + 98 + 100
"""
sum1 = 0
sum2 = 0
for i in range(2,101,2):
    sum1 += i
for i in range(1,101):
    if i%2 == 0:
        sum2 += i

print(f'1-100内的偶数之和为: {sum1}')
print(f'1-100内的偶数之和为: {sum2}')

📝 代码总结

  • 核心知识点:偶数求和的多种实现方式
  • 实现逻辑
    • 方法一:range(2,101,2) 步长为2,直接遍历所有偶数累加
    • 方法二:range(1,101) 遍历1-100,通过 if i%2 == 0 判断偶数后再累加
  • 关键语法range() 步长控制、取模运算符 % 判断奇偶性、条件筛选累加
  • 对比分析:方法一更简洁高效(循环50次),方法二更通用灵活(可修改判断条件实现奇数求和等)
  • 功能作用:演示如何通过步长控制或条件判断实现指定规律的数字累加

26.continuebreak使用

python 复制代码
"""
continue:跳过本次循环,继续下一次的循环
break:终止此循环结构
"""
# 背景:5 个苹果,吃第 3 个苹果,发现有虫,不吃了,跳过吃后面的 -> continue
for i in range(1,6):
    if i == 3:
        print("不吃这个烂苹果,我要吃下面的")
        continue
    print(f"这是我吃的第{i}个苹果!")
print('*' * 20)
# 背景:5 个苹果,吃第 4 个苹果时候,发现有虫,从此以后有阴影,再也不吃苹果了 -> break
for i in range(1,6):
    if i == 4:
        print(f"我服了,这是我的第{i}个苹果,吃个苹果,都有虫,我再也不吃水果了。")
        break
    print(f"这是我吃的第{i}个苹果。")

27.for循环关于内外循环

python 复制代码
# 定义一个循环,外层循环 2 次,内层循环 3 次,请问:总共循环几次?
for i in range(1,3):
    for j in range(1,4):
        print('*')
print()
for i in range(1,3):
    for j in range(1,4):
        print('*',end='\n')         # print('*') <=> print('*',end='\n')
print()
for i in range(1,3):
    for j in range(1,4):
        print('*',end='\t')         # \t <=> Tab 看看效果
print()
print("结论一:总循环次数 = 外层循环次数 * 内存循环次数")
print("结论二:执行过程中,外层执行 1 次,内层 完整 1 轮 (类似时钟,分钟移动 1 格,秒钟循环 1 圈)")

📝 代码总结

  • 核心知识点:嵌套循环的执行逻辑与次数计算
  • 实现逻辑 :外层循环 range(1,3) 执行2次,内层循环 range(1,4) 执行3次,每次内层循环完整执行完毕后外层才进入下一次迭代
  • 关键语法 :嵌套 for 循环、print()end 参数控制输出格式(\n 换行、\t 制表符)
  • 嵌套次数:总循环次数 = 外层次数 × 内层次数 = 2 × 3 = 6次
  • 执行规律:外层执行1次,内层完整执行1轮(类似时钟:分针走1格,秒针走完60秒)
  • 功能作用 :理解嵌套循环的流程控制,掌握循环总次数的计算方法,学会通过 end 参数控制输出排列效果

28.for循环实现直角三角形的打印

bash 复制代码
for i in range(1,6):
    for j in range(i):
        print("*",end="\t")
    print()  # 等价于 print('',end="\n")

📝 代码总结

  • 核心知识点:嵌套循环实现三角形图案输出
  • 实现逻辑 :外层循环控制行数(1-5行),内层循环控制每行打印的星号数量(第i行打印i个星号),每行结束后执行 print() 换行
  • 关键语法 :内层循环范围 range(i)(i=1时生成1次,i=2时生成2次,依此类推)、end="\t" 星号间用制表符分隔、空 print() 实现换行
  • 执行规律:第1行打印1个星号,第2行打印2个星号...第5行打印5个星号
  • 功能作用:演示如何利用循环变量控制内层循环次数,实现规律性图形输出

29.for循环实现倒直角三角形的打印

bash 复制代码
for i in range(1,6):
    for j in range(6 - i):
        print("*",end="\t")
    print()

📝 代码总结

  • 核心知识点:嵌套循环实现倒三角形图案输出
  • 实现逻辑 :外层循环控制行数(1-5行),内层循环控制每行星号数量(第i行打印 6-i 个星号),每行结束后执行 print() 换行
  • 关键语法 :内层范围 range(6-i) 实现递减数量控制(i=1时5个,i=2时4个...i=5时1个)
  • 执行规律:第1行打印5个星号,第2行打印4个星号...第5行打印1个星号
  • 功能作用:演示如何通过循环变量与固定值的数学运算(总数-当前行数),实现递减规律的图案输出

30.for循环-九九乘法表

bash 复制代码
for i in range(1,10):
    for j in range(1,i+1):
        print(f"{i}x{j}={i*j}",end="\t")
    print()

📝 代码总结

  • 核心知识点:嵌套循环实现九九乘法表
  • 实现逻辑 :外层循环控制乘数 i(1-9行),内层循环控制被乘数 j(从1到 i),每行打印 i x j = i*j 的算式,行末换行
  • 关键语法 :内层范围 range(1, i+1) 实现每行星式数量递增、f-string格式化算式、end="\t" 实现列对齐
  • 数学规律 :第 i 行有 i 个算式,共9行总计45个算式
  • 功能作用:双重循环控制实战,掌握循环变量动态决定内层循环次数,实现乘法表的阶梯式输出

31.关于单双引号的使用

shell编程中, ''单引号直接会进行原样输出;

但在python中,''和""都会将变量的值输出

bash 复制代码
str1 = 'hello'
str2 = "world"
print(str1,type(str1))
print(str2,type(str2))

📝 代码总结

  • 核心知识点:字符串数据类型与type()函数的使用
  • 实现逻辑:分别使用单引号和双引号定义两个字符串变量,打印输出字符串内容和其数据类型
  • 关键语法 :单引号 'hello' 和双引号 "world" 定义的字符串等价、type() 获取变量数据类型
  • 输出结果hello <class 'str'>world <class 'str'>
  • 功能作用 :验证Python中单引号与双引号定义字符串的等效性,学习使用 type() 检查数据类型

32.索引下标及索引越界

bash 复制代码
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
print(name[3])
print(name[4])
print(name[5])
print("-" * 10)
print(name[6])      # 报错! -> 输出 index out of range 索引越界

📝 代码总结

  • 核心知识点:字符串索引访问与索引越界错误
  • 实现逻辑 :字符串 name = 'abcdef' 长度为6,有效索引范围为0到5,逐个输出索引0-5成功,尝试输出索引6时触发异常
  • 关键语法:字符串名[索引] 获取指定位置字符、索引从0开始计数
  • 错误类型IndexError: string index out of range(索引越界)
  • 注意事项 :字符串长度为 n 时,最大索引值为 n-1,访问 n 或更大索引会报错
  • 功能作用:理解Python中索引的起始规则(0-based indexing),掌握索引越界错误的产生原因与避免方法

33.字符串切片截取操作

bash 复制代码
# 定义一个字符串(默认情况,字符串,列表,元组都支持切片)
num = '0123456789'
# 0 1 2 3 4 5 6 7 8 9
# -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
# 切片操作里面的数字为索引下标数字
# 切片操作如下:比较比较
print(num[3:6])     # 345
print(num[3:6:1])   # 345
print(num[2:5])     # 234
print(num[2:5:1])   # 234
print(num[:5])      # 01234
print(num[1:])      # 123456789
print(num[:])       # 0123456789
print(num[::2])     # 02468
print(num[::-1])    # 9876543210  -> 相当于字符串翻转
print(num[-4:-2])   # 67
print(num[:-1])     # 012345678

📝 代码总结

  • 核心知识点:字符串切片操作
  • 实现逻辑 :通过 [start:stop:step] 语法从字符串中提取子串,start为起始索引,stop为结束索引(不包含),step为步长
  • 关键语法:索引从0开始、支持负索引(-1表示最后一个字符)、省略start默认开头、省略stop默认结尾、step为负数实现反向切片
  • 注意事项:stop位置对应的字符不会被包含
  • 功能作用:掌握字符串切片的核心语法规则,实现灵活的子串提取与字符串变换

34.find关键词

bash 复制代码
"""
字符串.find(关键词)
    找到:就返回关键词所在位置的起始下标
    找不到:就返回 -1
"""
str1 = 'hello world'
print(str1)
print(str1.find('hello'))   # h -> 0
print(str1.find('world'))   # w -> 6
print(str1.find('xxxxx'))   # 返回 -1

📝 代码总结

  • 核心知识点 :字符串 find() 方法查找子串
  • 实现逻辑:在字符串中搜索指定关键词,返回首次出现的起始索引,找不到返回 -1
  • 关键语法字符串.find(关键词)、索引从0开始计数
  • 返回值规则 :找到返回起始下标(如 'hello' 在索引0位置)、找不到返回 -1
  • 功能作用:判断子串是否存在于字符串中,并获取其位置信息

35.获取文件名及后缀find()rfind()

bash 复制代码
"""
find():从左向右查找,查找第一个满足条件的结果
rfind():从左向右查找,查找最后一个满足条件的结果
"""
file = 'error.log'
index = file.rfind('.')
print("index 的索引下标为:",index)
name = file[:index]
postfix = file[index:]
print(f'文件整体名称为:{file}')
print(f'文件前缀:{name}')
print(f'文件后缀:{postfix}')

📝 代码总结

  • 核心知识点find()rfind() 的区别、字符串切片提取文件信息
  • 实现逻辑rfind('.') 从右向左查找最后一个点号的位置,通过切片分离文件名和后缀
  • 关键语法rfind() 返回指定字符最后一次出现的索引、file[:index] 取前缀、file[index:] 取后缀(包含点号)
  • 对比说明find() 返回第一个匹配项索引,rfind() 返回最后一个匹配项索引
  • 应用场景:提取文件后缀名、处理路径或带有多处相同分隔符的字符串
  • 功能作用 :掌握 rfind() 从右查找的特性,结合切片实现文件名的拆分处理

36.replace使用案例

bash 复制代码
"""
字符串.replace(old,new,次数-可省略)
省略代表全部替换
"""
str1 = 'hello linux and linux'
print(str1)
print(str1.replace('linux','python',1))	# 替换遇到的第一个
print(str1.replace('linux','python'))	# 替换所有

📝 代码总结

  • 核心知识点 :字符串 replace() 方法的替换操作
  • 实现逻辑:将字符串中的旧子串替换为新子串,第三个参数指定替换次数,省略则替换所有匹配项
  • 关键语法replace(old, new, count) - old为被替换内容,new为替换内容,count为最大替换次数
  • 返回值特性:返回新字符串,原字符串不变(字符串不可变)
  • 功能作用:掌握字符串替换语法,理解替换次数参数的作用及原字符串不可变特性

37.splitjoin使用案例

bash 复制代码
"""
字符串.split(分隔符):将字符串按照分隔符进行切割,返回元素组成一个列表类型
拼接字符串.join(列表):将列表中的每一个元素通过拼接字符,拼成一个完整的字符串
"""
str1 = 'linux-mac-windows'
n1 = str1.split('-')
print(n1)

str2 = ['DeepSeek','ChatGPT','GLM',]
n2 = '-'.join(str2)
print(n2)

📝 代码总结

  • 核心知识点split() 分割字符串与 join() 拼接列表
  • 实现逻辑split('-') 按分隔符 - 将字符串切分为列表;'-'.join(str2)- 将列表元素拼接成字符串
  • 关键语法字符串.split(分隔符) 返回列表、分隔符.join(列表) 返回字符串
  • 对称关系split()join() 互为逆操作
  • 功能作用:掌握字符串与列表之间的相互转换,实现数据解析与格式化输出

38.strip是使用案例

bash 复制代码
"""
字符串.strip():删除字符串两边的空格
字符串.strip(指定字符):删除字符串两边指定的字符
"""
username = '    admin   '
if username.strip() == 'admin':
    print(f'用户所输内容旁边的字符串已被消失')
else:
    print('失败'

📝 代码总结

  • 核心知识点strip() 方法删除字符串两边的指定字符(默认为空格)
  • 实现逻辑username.strip() 去除用户名两边的空格后,与字符串 'admin' 进行比较判断
  • 关键语法strip() 默认删除空格、strip(指定字符) 删除两边指定的字符、lstrip() 只删左边、rstrip() 只删右边
  • 注意事项strip() 只删除首尾字符,不处理字符串内部的字符
  • 功能作用:处理用户输入时的意外空格,验证清理后的字符串是否匹配预期内容
相关推荐
某人辛木1 小时前
JDK安装配置
java·开发语言
fox_lht1 小时前
第十章 通用集合
开发语言·后端·算法·rust
小王师傅661 小时前
【Java结构化梳理】泛型-初步了解-下
java·开发语言
2601_956139421 小时前
文旅行业品牌全案公司哪家强
大数据·人工智能·python
hrhcode1 小时前
【LangGraph】二.State 和 Node 的设计细节
python·ai·langchain·langgraph·ai框架
dfdfadffa2 小时前
如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
jvm·数据库·python
SmartRadio2 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信 (采用Arduino代码框架)
开发语言·智能手机·esp32·长距离wifi
m0_624578592 小时前
SQL分组后如何计算移动平均值_利用窗口函数AVG配合ROWS
jvm·数据库·python