当前位置:首页>python>全国信息素养-算法应用主题Python|初赛备考手册

全国信息素养-算法应用主题Python|初赛备考手册

  • 2026-10-11 07:47:05
全国信息素养-算法应用主题Python|初赛备考手册

以下手册根据初赛大纲整理,需要可以自取


信息素养-算法应用 | Python初赛备考手册

目录

  • • 一、IPO(输入/处理/输出)
    • • 1. 输出语句
    • • 2. 输入语句
    • • 3. 变量命名
    • • 4. 变量赋值
    • • 5. 基础数据类型
    • • 6. 注释、缩进
  • • 二、运算模块
    • • 1. 算术运算
    • • 2. 比较运算
    • • 3. 逻辑运算
  • • 三、分支结构
    • • 1. 单分支
    • • 2. 双分支
    • • 3. 多分支
  • • 四、循环结构
    • • 1. for 循环
    • • 2. while 循环
    • • 3. 循环控制
    • • 4. 双层循环
  • • 五、字符串
    • • 1. 字符串定义
    • • 2. 字符串索引
    • • 3. 字符串拼接
    • • 4. 字符串重复
    • • 5. 字符串长度
    • • 6. 字符串包含
    • • 7. 字符串分割
  • • 六、列表
    • • 1. 列表定义
    • • 2. 列表索引
    • • 3. 列表添加
    • • 4. 列表删除
    • • 5. 列表遍历
    • • 6. 列表长度
    • • 7. 列表包含
    • • 8. 列表顺序
  • • 七、字典
    • • 字典特性
  • • 八、元组
    • • 1. 元组定义
    • • 2. 元组长度
    • • 3. 元组索引
  • • 九、文件
    • • csv文件
  • • 十、异常处理
    • • try-except语句
  • • 十一、数制
    • • 数制转换

一、IPO(输入 / 处理 / 输出)

1. 输出语句:输出字符串;输出算式运算结果

  • • 讲解:print()函数用于将内容输出到控制台。可以输出字符串(用引号括起来),也可以直接输出算术表达式的结果。
  • • 示例代码:
# 输出字符串print("你好,非遗文化!")# 输出算式运算结果print(7 * 8 + 15)
  • • 输出结果:
你好,非遗文化!71
  • • 执行过程分析:第一行print将字符串原样输出并换行;第二行先计算7*8+15得到71,再将数值71转换为字符串输出。

2. 输入语句:input() 输入,input() 输入数据的类型为字符串

  • • 讲解:input()从键盘读取一行文本,返回值永远是字符串类型。如需整数或浮点数,需用int()或float()转换。
  • • 示例代码:
name = input("请输入你的名字:")print("你好," + name)print("输入的数据类型是:", type(name))
  • • 输出结果(假设用户输入“小明”):
请输入你的名字:小明你好,小明输入的数据类型是: <class 'str'>
  • • 执行过程分析:程序暂停等待用户输入,用户输入“小明”并回车后,字符串“小明”被赋给变量name,后续输出展示其类型为str。

3. 变量命名:变量名命名规则

  • • 讲解:变量名只能包含字母、数字、下划线,且不能以数字开头;不能使用Python关键字(如if、for);区分大小写;应具有描述性。
  • • 示例代码:
# 合法变量名示例非遗_项目 = "剪纸"num_students = 30score2 = 95print(非遗_项目, num_students, score2)
  • • 输出结果:
剪纸 30 95
  • • 执行过程分析:三个变量分别存储字符串、整数、整数,命名符合规则,输出正常。若写成2score = 95会报语法错误。

4. 变量赋值:= 赋值格式

  • • 讲解:使用等号=将右侧的值赋给左侧的变量。可以连续赋值或同时给多个变量赋值。
  • • 示例代码:
a = 10# 简单赋值b = c = 20# 链式赋值x, y = 3, 4# 元组解包赋值print(a, b, c, x, y)
  • • 输出结果:
10 20 20 3 4
  • • 执行过程分析:a得到10;b和c同时得到20;x和y依次获得3和4。赋值顺序是从右向左计算右侧表达式。

5. 基础数据类型:整数、字符串、浮点数、布尔类型

  • • 讲解:int(整数,如5,-3)、str(字符串,如"abc")、float(浮点数,如3.14)、bool(布尔值,True/False)。可用type()查看。
  • • 示例代码:
age = 12# intpi = 3.1415# floatname = "丝绸之路"# stris_passed = True# boolprint(type(age), type(pi), type(name), type(is_passed))
  • • 输出结果:
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
  • • 执行过程分析:每个变量被赋予不同类型的字面量,type()函数返回其类型对象,打印出类型名称。

6. 注释、缩进:注释符号、注释的作用、缩进格式

  • • 讲解:单行注释用#,多行注释可用三个引号。注释用于解释代码,不会被运行。缩进在Python中表示代码块(如if、for后缩进4个空格),必须严格一致。
  • • 示例代码:
# 这是一个单行注释"""多行注释示例用于说明代码功能"""score = 85if score >= 60:print("及格")   # 这行前面有4个空格(缩进)print("程序结束")
  • • 输出结果:
及格程序结束
  • • 执行过程分析:注释不影响执行。if条件为True,执行缩进内的print;最后的print无缩进,属于外层代码,一定执行。

二、运算模块

1. 算术运算:+ - * / // % **

  • • 讲解:+加,-减,*乘,/除(结果浮点数),//整除(取商整数),%取余,**幂运算。
  • • 示例代码:
a, b = 17, 5print("加:", a + b)print("减:", a - b)print("乘:", a * b)print("除:", a / b)print("整除:", a // b)print("余数:", a % b)print("幂:", 2 ** 4)
  • • 输出结果:
加: 22减: 12乘: 85除: 3.4整除: 3余数: 2幂: 16
  • • 执行过程分析:依次计算各表达式,注意除法结果为浮点数,整除向下取整,幂运算2**4为2的4次方。

2. 比较运算:> < >= <= == !=

  • • 讲解:比较两个值,结果为布尔值True或False。==判断相等,!=判断不等。
  • • 示例代码:
x, y = 10, 20print(x > y)   # Falseprint(x < y)   # Trueprint(x >= 10) # Trueprint(x <= 9)  # Falseprint(x == 10) # Trueprint(x != 10) # False
  • • 输出结果:
FalseTrueTrueFalseTrueFalse
  • • 执行过程分析:每个比较运算独立计算,输出对应的布尔值。

3. 逻辑运算:not and or

  • • 讲解:用于组合布尔表达式。and两侧都为True结果才为True;or一侧为True即为True;not取反。
  • • 示例代码:
a, b = True, Falseprint(a and b)   # Falseprint(a or b)    # Trueprint(not a)     # False# 结合比较运算score = 85print(score >= 60and score <= 100)  # True
  • • 输出结果:
FalseTrueFalseTrue
  • • 执行过程分析:先计算score >= 60为True,score <= 100为True,True and True得True。

三、分支结构

1. 单分支:if 单分支

  • • 讲解:if后面跟条件表达式,条件为True时执行缩进代码块。
  • • 示例代码:
age = 12if age >= 10:print("你可以参加小学高段组比赛")print("继续执行")
  • • 输出结果:
你可以参加小学高段组比赛继续执行
  • • 执行过程分析:age>=10为True,执行缩进内的print;然后执行后面的print。

2. 双分支:if ... else ...

  • • 讲解:if条件True执行其代码块,否则执行else代码块。
  • • 示例代码:
score = 58if score >= 60:print("通过初赛")else:print("未通过初赛")
  • • 输出结果:
未通过初赛
  • • 执行过程分析:条件score>=60为False,跳转到else分支执行。

3. 多分支:if ... elif ... else ...

  • • 讲解:依次判断多个条件,执行第一个满足条件的代码块,最后可加else处理其余情况。
  • • 示例代码:
level = 3if level == 1:print("小学低段组")elif level == 2:print("小学高段组")elif level == 3:print("初中组")else:print("未知组别")
  • • 输出结果:
初中组
  • • 执行过程分析:level==1False,level==2False,level==3True,执行对应print后跳过整个分支。

四、循环结构

1. for 循环:for i in range();遍历列表;遍历字典;遍历字符串

  • • 讲解:for循环可遍历可迭代对象。range(stop)生成0到stop-1的整数序列。也可直接遍历列表、字典、字符串。
  • • 示例代码:
# range示例print("range(3):", end=" ")for i inrange(3):print(i, end=" ")print()# 遍历列表heritage = ["剪纸", "皮影", "刺绣"]for h in heritage:print(h, end=" ")print()# 遍历字符串for ch in"丝路":print(ch, end=" ")
  • • 输出结果:
range(3): 0 1 2 剪纸 皮影 刺绣 丝 路 
  • • 执行过程分析:range(3)产生0,1,2;列表遍历逐个取出元素;字符串遍历逐个取出字符。

2. while 循环: while True 无限循环

  • • 讲解:while条件为True时重复执行代码块。while True表示无限循环,通常配合break退出。
  • • 示例代码:
count = 0whileTrue:print("循环中", count)    count += 1if count >= 3:breakprint("退出循环")
  • • 输出结果:
循环中 0循环中 1循环中 2退出循环
  • • 执行过程分析:while True永远为真,执行内部代码;count从0开始,每次加1,当count>=3时执行break跳出循环。

3. 循环控制:break、continue

  • • 讲解:break立即终止整个循环;continue跳过本次循环剩余代码,进入下一次迭代。
  • • 示例代码:
for i inrange(5):if i == 2:continue# 跳过i=2时的输出if i == 4:break# i=4时终止循环print(i)
  • • 输出结果:
013
  • • 执行过程分析:i=0,1正常输出;i=2遇到continue,跳过print,直接进行下一轮i=3;i=3输出;i=4遇到break,循环结束,不输出4。

4. 双层循环:for 循环嵌套

  • • 讲解:循环内部再嵌套循环,外层循环每迭代一次,内层循环完整执行一轮。
  • • 示例代码:
for i inrange(1, 4):      # 外层:1,2,3for j inrange(1, 4):  # 内层:1,2,3print(f"{i}×{j}={i*j}", end=" ")print()  # 换行
  • • 输出结果:
1×1=1 1×2=2 1×3=3 2×1=2 2×2=4 2×3=6 3×1=3 3×2=6 3×3=9 
  • • 执行过程分析:外层i=1时,内层j跑1,2,3;输出后换行;然后i=2,再跑内层,以此类推。

五、字符串

1. 字符串定义:用引号创建字符串

  • • 讲解:可以使用单引号'...'、双引号"..."、三引号'''...'''或"""..."""创建字符串。
  • • 示例代码:
s1 = '红色文化's2 = "长征精神"s3 = '''井冈山黄洋界'''print(s1, s2)print(s3)
  • • 输出结果:
红色文化 长征精神井冈山黄洋界
  • • 执行过程分析:三引号允许字符串跨行,输出时保留换行。

2. 字符串索引:单个字符的正索引访问(从 0 开始)

  • • 讲解:通过[位置]获取指定索引的字符,索引从0开始,最后一个字符索引为len(s)-1。
  • • 示例代码:
s = "非遗传承"print(s[0])   # 第一个字符print(s[2])   # 第三个字符print(s[-1])  # 负索引表示倒数第一个
  • • 输出结果:
非传承
  • • 执行过程分析:字符串“非遗传承”中,索引0:'非',1:'遗',2:'传',3:'承';负索引-1对应最后一个字符'承'。

3. 字符串拼接:使用 + 连接两个字符串

  • • 讲解:用+将多个字符串合并为一个新字符串。
  • • 示例代码:
part1 = "文化"part2 = "自信"result = part1 + part2print(result)
  • • 输出结果:
文化自信
  • • 执行过程分析:part1和part2中的字符依次连接,生成新字符串。

4. 字符串重复:使用 * 重复字符串

  • • 讲解:字符串 * n会将字符串重复n次。
  • • 示例代码:
symbol = "★"print(symbol * 5)print("丝路" * 2)
  • • 输出结果:
★★★★★丝路丝路
  • • 执行过程分析:"★"*5生成包含5个星号的字符串。

5. 字符串长度:len() 获取长度

  • • 讲解:len(字符串)返回字符串中字符的个数(中英文均算一个字符)。
  • • 示例代码:
s = "Hello, 兵马俑"print(len(s))
  • • 输出结果:
12
  • • 执行过程分析:字符包括H,e,l,l,o,,,空格,兵,马,俑 → 共12个。

6. 字符串包含:使用 in 判断子串是否存在

  • • 讲解:sub in s判断sub是否为s的子串,返回布尔值。
  • • 示例代码:
poem = "黄沙百战穿金甲"print("黄沙"in poem)print("绿洲"in poem)
  • • 输出结果:
TrueFalse
  • • 执行过程分析:"黄沙"连续出现在poem开头,返回True;"绿洲"不在其中。

7. 字符串分割:split() 按分隔符切分字符串

  • • 讲解:split(sep)将字符串按sep分割成列表,默认按空白(空格、换行等)分割。
  • • 示例代码:
data = "剪纸,皮影,泥塑"items = data.split(",")print(items)
  • • 输出结果:
['剪纸', '皮影', '泥塑']
  • • 执行过程分析:以逗号为分隔符,将字符串拆分成三个元素的列表。

六、列表

1. 列表定义:用 [] 创建列表

  • • 讲解:列表用方括号[]表示,元素间用逗号分隔,可存储任意类型。
  • • 示例代码:
empty_list = []scores = [88, 92, 76]mixed = ["长征", 1934, True]print(scores, mixed)
  • • 输出结果:
[88, 92, 76] ['长征', 1934, True]
  • • 执行过程分析:分别创建整数列表和混合类型列表。

2. 列表索引:通过正索引访问单个元素

  • • 讲解:与字符串类似,使用[索引]访问元素,索引从0开始。
  • • 示例代码:
heritage = ["剪纸", "皮影", "年画"]print(heritage[0])   # 第一个print(heritage[2])   # 第三个
  • • 输出结果:
剪纸年画
  • • 执行过程分析:索引0指向"剪纸",索引2指向"年画"。

3. 列表添加:append() 在末尾追加元素

  • • 讲解:列表.append(元素)在列表末尾添加一个新元素,修改原列表。
  • • 示例代码:
heritage = ["剪纸", "皮影"]heritage.append("刺绣")print(heritage)
  • • 输出结果:
['剪纸', '皮影', '刺绣']
  • • 执行过程分析:在原列表末尾增加字符串"刺绣"。

4. 列表删除:remove() 删除指定元素

  • • 讲解:列表.remove(值)删除列表中第一个匹配的元素,若不存在则报错。
  • • 示例代码:
scores = [95, 88, 95, 72]scores.remove(95)   # 只删除第一个95print(scores)
  • • 输出结果:
[88, 95, 72]
  • • 执行过程分析:从左到右找到第一个值为95的元素并删除,剩余元素顺序保持。

5. 列表遍历:使用 for 循环逐个访问元素

  • • 讲解:用for 变量 in 列表:依次取出每个元素。
  • • 示例代码:
colors = ["红", "黄", "蓝"]for c in colors:print(c)
  • • 输出结果:
红黄蓝
  • • 执行过程分析:每次迭代将列表中的一个元素赋值给c,然后执行循环体。

6. 列表长度:len() 获取元素个数

  • • 讲解:len(列表)返回列表中元素的个数。
  • • 示例代码:
heritage = ["剪纸", "皮影", "刺绣", "年画"]print(len(heritage))
  • • 输出结果:
4
  • • 执行过程分析:列表包含4个字符串,len返回4。

7. 列表包含:使用 in 判断元素是否存在

  • • 讲解:元素 in 列表返回布尔值。
  • • 示例代码:
festivals = ["春节", "中秋", "端午"]print("清明"in festivals)print("端午"in festivals)
  • • 输出结果:
FalseTrue
  • • 执行过程分析:检查元素是否在列表中。

8. 列表顺序:升序:sort();降序:sort(reverse=True);sorted();reverse()

  • • 讲解:列表.sort()原地升序排序;列表.sort(reverse=True)原地降序;sorted(列表)返回新排序列表;列表.reverse()反转元素顺序。
  • • 示例代码:
nums = [3, 1, 4, 2]nums.sort()print("升序:", nums)nums.sort(reverse=True)print("降序:", nums)nums.reverse()print("再反转:", nums)new_nums = sorted([5, 2, 8])   # 原列表不变print("sorted返回:", new_nums)
  • • 输出结果:
升序: [1, 2, 3, 4]降序: [4, 3, 2, 1]再反转: [1, 2, 3, 4]sorted返回: [2, 5, 8]
  • • 执行过程分析:sort()直接修改原列表;reverse()将元素头尾调换;sorted()生成新列表。

七、字典

字典特性:一系列键值对,键为不可变类型

  • • 讲解:字典用{}表示,存储键值对键:值。键必须是不可变类型(如字符串、数字、元组),值可以是任意类型。通过键快速访问值。
  • • 示例代码:
# 存储非遗项目信息intangible = {"名称": "中国剪纸","地区": "河北","级别": "国家级"}print(intangible["名称"])# 添加新键值对intangible["年份"] = 2006print(intangible)
  • • 输出结果:
中国剪纸{'名称': '中国剪纸', '地区': '河北', '级别': '国家级', '年份': 2006}
  • • 执行过程分析:字典通过键"名称"获取值;直接赋值新键"年份"会在字典中添加条目。

八、元组

1. 元组定义:tuple()定义元组

  • • 讲解:元组用小括号()表示,元素不可变(不能增删改)。也可以用tuple(可迭代对象)转换。
  • • 示例代码:
t1 = (1, 2, 3)t2 = tuple([4, 5, 6])print(t1, t2)
  • • 输出结果:
(1, 2, 3) (4, 5, 6)
  • • 执行过程分析:两种方式都创建元组,元组内容不能修改。

2. 元组长度:len()获取元组长度

  • • 讲解:len(元组)返回元组中元素个数。
  • • 示例代码:
colors = ("红", "黄", "蓝")print(len(colors))
  • • 输出结果:
3
  • • 执行过程分析:元组有三个元素,长度为3。

3. 元组索引:通过索引访问单个元素

  • • 讲解:与列表类似,使用[索引]访问,索引从0开始。
  • • 示例代码:
dimensions = (1920, 1080)print("宽度:", dimensions[0])print("高度:", dimensions[1])
  • • 输出结果:
宽度: 1920高度: 1080
  • • 执行过程分析:索引0对应第一个元素1920,索引1对应1080。

九、文件

csv文件:csv文件的读取和写入

  • • 讲解:CSV(逗号分隔值)是一种常见数据格式。Python通过csv模块读写。读取时常用csv.reader,写入用csv.writer。
  • • 示例代码(读取非遗项目CSV,再写入新文件):
import csv# 写入CSVwithopen('heritage.csv', 'w', newline='', encoding='utf-8') as f:    writer = csv.writer(f)    writer.writerow(["项目", "地区", "年份"])   # 写入表头    writer.writerow(["剪纸", "河北", 2006])    writer.writerow(["皮影戏", "陕西", 2011])# 读取CSVwithopen('heritage.csv', 'r', encoding='utf-8') as f:    reader = csv.reader(f)for row in reader:print(row)
  • • 输出结果:
['项目', '地区', '年份']['剪纸', '河北', '2006']['皮影戏', '陕西', '2011']
  • • 执行过程分析:先以写模式打开文件,csv.writer将行数据写入;再以读模式打开,csv.reader逐行读取返回列表。newline=''防止Windows下多余空行。

十、异常处理

try-except语句:try-except结构语句的逻辑

  • • 讲解:try块中放置可能出错的代码,如果发生异常,程序跳转到except块执行,避免程序崩溃。可指定异常类型。
  • • 示例代码:
try:    num = int(input("请输入整数:"))    result = 100 / numprint("结果是:", result)except ValueError:print("输入的不是有效整数!")except ZeroDivisionError:print("不能除以零!")
  • • 输出结果(假设用户输入“abc”):
请输入整数:abc输入的不是有效整数!
  • • 执行过程分析:int("abc")引发ValueError,程序立即跳转到对应的except ValueError块,输出提示,不会执行后续除法。若输入0,则触发ZeroDivisionError。

十一、数制

数制转换:bin()、hex()、oct()等

  • • 讲解:bin(x)将整数转为二进制字符串(前缀0b);hex(x)转为十六进制(前缀0x);oct(x)转为八进制(前缀0o)。反向转换可用int(s, base)。
  • • 示例代码:
num = 42print("十进制:", num)print("二进制:", bin(num))print("八进制:", oct(num))print("十六进制:", hex(num))# 从字符串转换回整数print(int('0b101010', 2))   # 二进制转十进制
  • • 输出结果:
十进制: 42二进制: 0b101010八进制: 0o52十六进制: 0x2a42
  • • 执行过程分析:42的二进制为101010;八进制52;十六进制2a;int('0b101010', 2)按二进制解析得到42。

以上是带目录的完整考点大纲讲解。您可以将此文档用于备赛复习。祝比赛顺利!

PDF附件:

最新文章

随机文章