复习知识点并进行预习
一、算术运算符:
算术运算符是数值计算的基础,蓝桥杯常结合进制转换、数论、模拟计算考查,核心拓展如下:
表格运算符作用蓝桥杯高频场景示例结果//整数除法(向下取整)分物品、取高位数、进制转换7//2 → 3,-7//2 → -4%取模(求余数)奇偶判断、周期问题、取个位数7%2 → 1,123%10 → 3幂运算次方计算、数的位数推导210 → 1024+ - * /基础加减乘除常规数值计算略
实战代码示例(蓝桥杯真题改编)python运行# 题目:输入一个小于1000的正整数,输出其个位、十位、百位
n = int(input("请输入小于1000的正整数:"))
units = n % 10 # 取个位:对10取模
tens = (n // 10) % 10 # 取十位:先整除10,再对10取模
hundreds = n // 100 # 取百位:直接整除100
print(f"个位:{units},十位:{tens},百位:{hundreds}")
#测试输入:456 → 输出:个位:6,十位:5,百位:4
二、逻辑运算符:
逻辑运算符(and/or/not)用于组合多条件,蓝桥杯常出现在循环终止条件、多条件筛选中,需重点掌握短路求值特性
核心规则
表格运算符逻辑规则短路特性and全 True 才 True,有 False 则 False左侧 False 时,右侧不执行or有 True 则 True,全 False 才 False左侧 True 时,右侧不执行not对条件取反无短路特性
实战代码示例 python运行# 题目:筛选100以内“偶数、大于20、能被3整除”的数
for i in range(1, 101):
if i % 2 == 0 and i > 20 and i % 3 == 0:
print(i, end=" ") # 输出:24 30 36 ... 96
短路求值示例
a = 1
左侧0为False,右侧a+=1不会执行
if 0 and (a += 1):
pass
print(a) # 输出:1(若执行则a=2)
三、循环:
循环(for/while)是蓝桥杯必考内容,常结合枚举、累加 / 累乘、模拟过程考查,重点拓展循环嵌套、循环优化。
- for 循环(枚举类题目首选)python运行# 题目:计算1~100的累加和
sum_num = 0
for i in range(1, 101): # range左闭右开,101才包含100
sum_num += i
print(sum_num) # 输出:5050
#循环嵌套:打印99乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行
- while 循环(未知循环次数场景)python运行# 题目:猜数字游戏
import random
target = random.randint(1, 100) # 生成1-100随机数
count = 0
while True: # #死循环,通过break终止
guess = int(input("猜1~100的数字:"))
count += 1
if guess == target:
print(f"猜对了!共猜了{count}次")
break
elif guess > target:
print("数字太大了")
else:
print("数字太小了")
- 循环
import time
start = time.time()
for i in range(2, 10001):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
pass
print(f"暴力法耗时:{time.time()-start:.2f}s")
优化后:
start = time.time()
for i in range(2, 10001):
flag = True
for j in range(2, int(i**0.5)+1): # 只遍历到√i
if i % j == 0:
flag = False
break
if flag:
pass
print(f"优化法耗时:{time.time()-start:.2f}s")
四、内置函数:
Python 内置函数无需导入,能大幅简化代码,蓝桥杯高频考查以下核心函数:
表格函数核心作用蓝桥杯典型场景len()求长度字符串 / 列表 / 元组长度计算sum()求和替代循环累加,简化代码max()/min()求最值数值筛选、统计类题目enumerate()枚举索引 + 值遍历需同时获取下标和值map()类型转换 / 批量处理输入数据的快速处理abs()绝对值数值计算、距离类题目
实战代码示例(内置函数简化代码)python运行# 题目:输入一组数(空格分隔),计算总和、最大值、最小值
nums = list(map(int, input("输入一组数:").split()))
total = sum(nums) # 替代循环累加
max_num = max(nums) # 替代循环比较
min_num = min(nums)
print(f"总和:{total},最大值:{max_num},最小值:{min_num}")
enumerate():遍历同时获取下标和值
fruits = ["苹果", "香蕉", "橙子"]
for idx, fruit in enumerate(fruits):
print(f"下标{idx}:{fruit}") # 输出:下标0:苹果 下标1:香蕉 下标2:橙子
五、元组:
定义:空元组(),单元素元组需加逗号((1,)),多元素可直接用()包裹;
不可变:创建后无法修改、添加、删除元素
解包:可直接将元组元素赋值给多个变量
实战代码示例(蓝桥杯常见用法)python运行# 1. 存储固定常量
PI = (3.1415926,) # 单元素元组必须加逗号
weekdays = ("周一", "周二", "周三", "周四", "周五", "周六", "周日")
2. 元组解包:交换变量(无需临时变量)
a, b = 10, 20
a, b = b, a # 本质是元组解包
print(a, b) # 输出:20 10
#3. 函数返回多值(本质返回元组)
def get_score():
return 90, 85, 95 # 等价于return (90,85,95)
chinese, math, english = get_score() # 解包赋值
print(f"语文:{chinese},数学:{math},英语:{english}")
#4. 不可变特性
t = (1, 2, 3)
t[0] = 10 # 执行报错:TypeError(元组元素不可修改)
浙公网安备 33010602011771号