中国电子学会青少年软件编程等级考试

官网:www.qceit.org.cn

编程环境

python语言的特点

  1. python是面向对象的程序设计语言
  2. python支持多个操作系统的
  3. python是一种动态数据类型程序设计语言
  4. python是一种解释型程序设计语言

名词解释

解释器:Python解释器是一种执行Python代码的软件程序,负责逐行读取、解析并执行用户编写的Python指令,将代码编译为字节码后执行

编译器:编译器是将高级语言源代码**(如C/C++)一次性翻译为机器可执行的低级语言目标代码(机器码/汇编)的程序

调试器:用于基础断点调试,(内置pdb)

集成开发环境:又称为IDE,是为开发者提供的一体化软件套件,集成编码、调试、编译、版本控制等工具

开发环境:开发环境是涵盖软件开发全流程所需工具与资源的集合,包括硬件、操作系统、语言工具链、协作系统等

python安装与版本

python2与python3

  • 两个版本不兼容,2.x版本的代码需要修改才能在3.x版本上运行

  • 目前python的发展方向向着3.x.x的方向发展

  • 查询版本号:python -V (V需要大写)

32位(x86)与64位(x64)

多少多少位是指CPU能同时处理多少位的数据,例如64位就2^64

2.安装python

官网:www.python.org

常见开发环境

  1. 海龟编辑器
  2. Mu Editor
  3. Visual Studio code
  4. Jupyter Notebook
  5. PrCharm
  6. IDLE
  7. …

IDLE编辑器

IDLE是安装python后自带编辑器

IDLE需要掌握的操作

  1. 新建文件
  2. 保存文件
  3. 编辑代码
  4. 运行代码
  5. 会切换模式

(需要自己多多练习)

IDLE的两种模式

  1. 【Shell】命令行模式:用于逐行执行代码。
  2. 【Edit】编辑模式:用于编写多行的程序,需要保存文件。
    程序编写基本的方法

格式要求

  1. 缩进用来表示代码执行的层级关系(每级缩进使用4个空格)
  2. 单行长度尽量不超过79个字符,超长时用括号换行,并对齐首字符或使用4空格悬挂缩进
# 括号内换行对齐
result = (value1 + value2
- value3)
  1. 运算符两侧尽量加空格:x = y + 1

  2. 单行注释:用 # 开头 # 注释内容

  3. 多行注释:

    def add(a, b):
    """计算两数之和。
    参数:
    a (int): 第一个加数
    b (int): 第二个加数
    返回:
    int: 相加结果
    """
    return a + b
  4. 字符串标识:单引号(’ ') 双引号(" ") ,下面的特殊用法要分清!不要和多行注释混淆

    a ="""
    使用 3 个双引号分别作为注释的开头和结尾
    可以一次性注释多行内容
    这里面的内容全部是注释内容
    """
  5. 符号都要用英文的符号

编程基础

输出语句 print()

语法:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

  • *objects:任意数量对象(自动转换为字符串输出)
  • sep:对象间分隔符(默认空格),如print(1, 2, sep="|") → 1|2
  • end:输出结束字符(默认换行),如print("Hi", end="!") → Hi!(不换行)
  • file:输出目标(默认控制台),可重定向到文件:
  • flush:强制刷新缓冲区(默认False),实时输出需设为True(如进度条)

简单用法:print(内容)

格式化输出

  1. 连接符 +

    a='hi'
    print("小明" + a + "你好")
  2. 匹配类型符 % 类似C语言

    name,age = '小明',12
    print("Name: %s, Age: %d, Score: %.1f" % (name, age, 95.5))

​ %s 字符串

​ %d 整数

​ %.1f 浮点数(小数),数字表示保留小数点后多少位

  1. f-string(Python ≥3.6推荐),在字符串前加f,变量/表达式用{}嵌入:

    name = "Alice"; age = 25
    print(f"Name: {name}, Age: {age+5}") # 输出:Name: Alice, Age: 30
    print(f"Pi: {3.14159:.2f}") # 保留2位小数:Pi: 3.14

输入语句 input()

**语法:**user_input = input(提示内容)

**注意:**用户输入的内容 始终为字符串类型

查看数据类型的函数:type(数据)

执行流程:

  1. 程序暂停执行,等待用户输入;
  2. 用户按回车键后,输入内容以字符串形式返回;
  3. 程序继续执行后续代码

多值输入与分割处理

若需一次输入多个数据,可用 split() 分割字符串,结合 map() 批量转换类型:

# 示例:输入 "10 20 30",按空格分割并转为整数列表
nums = list(map(int, input("输入三个数(空格分隔):").split()))

# 或直接解包赋值
a, b, c = map(float, input("输入三个浮点数(逗号分隔):").split(','))

split() 默认按空格分割,可指定分隔符如 split(',')

变量

变量的本质

  • 变量是数据的标签(引用),指向内存中存储的值,无需声明类型,赋值即创建
  • 动态类型:变量类型由赋予的值自动推断,可随时重新赋值为不同类型
x = 10        # x 为整数(int)
x = "Python" # 重新赋值为字符串(str)

变量作用域

  • 局部变量:在函数内部定义,作用域仅限于函数内
  • 全局变量:在函数外定义,需用 global 关键字在函数内修改
global_var = 20
def modify():
global global_var
global_var = 30

赋值

  • 单数据赋值 a=1

  • 多数据赋值 a, b, c = 1, 2, "text"

  • 链式赋值:a = b = c = 0

  • 快速交换变量值:a, b = b, a

注意:不要混淆 =(赋值)和 ==(比较)

变量名命名规则

强制规则

  1. 组成字符:字母(a-z, A-Z)、数字(0-9)、下划线 _,不能以数字开头

  2. 区分大小写(如 name 和 Name 不同)

  3. 禁止使用关键字(如 if、for、class)

import keyword
print(keyword.kwlist) # 查看所有关键字/保留字

命名规范

  • 变量名:小写字母 + 下划线分隔(蛇形命名法),如 student_name

  • 常量名:全大写,如 MAX_SIZE

  • 类名:首字母大写的驼峰式,如 ClassName

  • 避免:单字符名(除简单循环变量)、内置函数名(如 list、str)

数据类型

向变量中存放的东西叫数据,Python 数据类型分为基本类型和复合类型,通过 type() 函数可查看类型。

  1. 基本数据类型
类型 描述 示例 特性
int 整数(无大小限制) x = 42 支持算术运算
float 浮点数(小数) y = 3.14 科学计数法(2e5)
str 字符串(文本) s = "Hello" 支持切片、格式化
bool 布尔值(逻辑值) flag = True 仅 True/False
  1. 复合数据类型
类型 描述 示例 特性
list 有序集合 lst = [1, "a", True] 支持增删、切片
tuple 不可变有序集合 tup = (1, 2, "b") 访问快,内存占用小
set 无序唯一元素集合 s = {1, 2, 3} 自动去重,支持集合运算
dict 键值对映射 d = {"name": "Alice"} 键必须为不可变类型

字符串和数值型变量

数值型变量

用于存储数字,分为整型(int)、浮点型(float)和复数型(complex)

常用操作:

  • 算术运算:+(加)、-(减)、*(乘)、/(除,返回浮点)、//(整除)、%(取余)、**(幂运算)

  • 位运算:|(按位或)、&(按位与)、<<(左移)等

字符串

用于存储文本数据,由字符序列组成,用单引号('')、双引号("")或三引号(''' ''')定义,用三引号定义跨行文本

常用操作:

  • + 拼接("Hello" + "World")
  • * 重复("Hi" * 3 → "HiHiHi")
  • 切片
s = "Python"
print(s[1:4]) # 输出:yth(切片)

变量类型转换

使用转换函数可以对数据进行转换

  • int()
  • float()
  • str()
  • bool()
  • list()
  • tuple()
  • set()
  • dict()
转换函数详解

int(x)

  • 功能:将数字字符串、浮点数或布尔值转换为整数。

    int("42")      # 42(字符串 → 整数)
    int(3.99) # 3(浮点数 → 整数,截断小数)
    int(True) # 1(布尔值 → 整数)

float(x)

  • 功能:将数字字符串、整数或布尔值转换为浮点数。

    float("3.14")  # 3.14(字符串 → 浮点数)
    float(5) # 5.0(整数 → 浮点数)
    float(False) # 0.0(布尔值 → 浮点数)

str(x)

  • 功能:将任意类型(数值、列表、字典等)转换为字符串。

    str(100)       # "100"(整数 → 字符串)
    str([1, 2]) # "[1, 2]"(列表 → 字符串)

bool(x)

  • 功能:将值转换为布尔值(True/False)。

  • 规则:

    • False:空值(0、""、[]、{}、None)。
    • True:非空值(如 1、"abc"、[1])。
    bool(0)        # False
    bool("Hello") # True
    ```[2,6](@ref)

list(iterable)

  • 功能:将可迭代对象(字符串、元组、集合)转换为列表。

    list("abc")    # ['a', 'b', 'c'](字符串 → 列表)
    list((1, 2)) # [1, 2](元组 → 列表)
    ```[1,5](@ref)

tuple(iterable)

  • 功能:将可迭代对象转换为元组。

    tuple([1, 2])  # (1, 2)(列表 → 元组)
    ```[1,5](@ref)

dict(iterable)

  • 功能:将键值对序列(列表元组、嵌套列表)转换为字典。

    dict([('a', 1), ('b', 2)])  # {'a': 1, 'b': 2}
    ```[2,6](@ref)

数学运算

运算符

通过系统掌握这些运算符的分类及特性,可显著提升代码的简洁性与执行效率。建议结合具体场景(如数值计算、条件分支、数据结构操作)深化理解。

  1. 算数运算符
  2. 比较运算符
  3. 赋值运算符
  4. 逻辑运算符
  5. 位运算符
  6. 成员运算符
  7. 身份运算符

算数运算符

运算符 名称 示例 输出结果
+ 加 5 + 3 8
- 减 8 - 3 5
* 乘 4 * 3 12
/ 除 10 / 2 5.0 (浮点数)
% 取模 10 % 3 1
** 幂运算 2 ** 3 8
// 整除 10 // 3 3 (向下取整)

注意:除号是这个斜杠 / (向左划下) 不是 \

赋值运算符

为变量赋值或更新值

运算符 描述 示例 等价形式
= 简单赋值 x = 10 -
+= 加法赋值(自加) x += 3 x = x + 3
-= 减法赋值(自减) x -= 2 x = x - 2
*= 乘法赋值(自乘) x *= 2 x = x * 2
/= 除法赋值(自除) x /= 4 x = x / 4

比较运算符

运算符 名称 示例 结果
== 等于 5 == 5 True
!= 不等于 5 != 3 True
> 大于 5 > 3 True
< 小于 3 < 5 True
>= 大于等于 5 >= 5 True
<= 小于等于 3 <= 5 True

注意:

  • 比较值并返回布尔值(True/False):

  • 应用:条件判断、循环控制

逻辑运算符

组合布尔条件:

运算符 描述 示例 结果
and 与 True and False False
or 或 True or False True
not 非 not True False
  • and:一假即假(短路特性:左侧为假时跳过右侧计算)

  • or:一真即真(左侧为真时跳过右侧计算)

非布尔值规则:

  • 0 and 3 → 0;1 and 3 → 3
  • 0 or 4 → 4;1 or 5 → 1

位运算符

直接操作二进制位:

运算符 描述 示例 结果(二进制)
& 按位与 9 & 5 1 (00000001)
` ` 按位或 `9
^ 按位异或 9 ^ 5 12 (00001100)
~ 按位取反 ~9 补码结果
<< 左移 9 << 2 36 (00100100)
>> 右移 9 >> 2 2 (00000010)

成员运算符

检测元素是否在序列中:

运算符 描述 示例 结果
in 存在于序列 2 in [1, 2, 3] True
not in 不存在 "a" not in "hello" True
适用类型:列表、字符串、元组、字典(仅检测键)

运算符优先级

从高到低:

  1. **(幂运算)
  2. ~、+、-(取反、正负号)
  3. *、/、%、//
  4. +、-
  5. <<、>>(位移)
  6. &、^、|(位运算)
  7. ==、!=、>等(比较)
  8. not、and、or(逻辑)
    ​提示​:使用 () 显式指定优先级,如 (2+3)*4

表达式

Python表达式是由操作数(变量、常量、函数调用)和运算符组成的代码单元,用于计算或生成值

  1. 算数表达式
  2. 比较表达式
  3. 逻辑表达式
  4. 赋值表达式
  5. 成员表达式
  6. Lambda表达式
  7. 三元表达式
  8. 身份表达式
  9. …

算数表达式:用于数值计算,返回数值结果

result = 10 + 5 * 2   # 结果为20(优先级:乘法先于加法)
print(9 % 4) # 取余,输出1

比较表达式:比较操作数并返回布尔值(True/False)

a, b = 5, 3
print(a > b) # True

逻辑表达式:组合布尔值,返回布尔值或操作数

print(True and False)  # False
print(0 or 4) # 4(非布尔值规则)

赋值表达式:

x = 10
x *= 2 # x = 20

成员表达式:检测元素是否在容器中,in(存在)、not in(不存在)

lst = [1, 2, 3]
print(2 in lst) # True
dct = {"name": "Alice"}
print("age" not in dct) # True(仅检查键)

三元表达式:

max_val = a if a > b else b  # 返回a和b中的较大值

Lambda表达式:匿名函数

add = lambda x, y: x + y
print(add(2, 3)) # 5

计算思维

python一级需要掌握:

  • 编写顺序执行的程序
  • 分析简单的逻辑运算
  • 比较运算中的结果

程序流程图

程序流程图又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。 程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。

标准符号

image-20250626183802674

基本结构

  • 顺序型
    image-20250626183947663

  • 选择型:由某个逻辑判断式的取值决定选择两个处理中的一个
    image-20250626184030885

  • 先判断的循环(while):在循环控制条件成立时,重复执行特定的处理

    • image-20250626184202523
  • 后判断的循环(until):重复执行某些特定的处理,直至控制条件成立

    • image-20250626184306659
  • 多情况型(case)选择:列举多种处理情况,根据控制变量的取值,选择执行其一
    image-20250626184350074

案例:

image-20250626184445261

Turtle库

第三方库

Python第三方库是由社区开发者(非Python官方团队)创建和维护的可重用代码包,用于扩展Python标准库的功能,覆盖数据分析、Web开发、机器学习等广泛领域。它们通过简化复杂操作、提供高效工具,显著提升开发效率和代码质量。

什么是第三方库
第三方库是独立开发者或组织发布的代码集合,需通过包管理工具(如pip)安装。它们不属于Python标准库,但提供标准库未覆盖的特定功能(如高级数学计算、网络爬虫等)

python环境如何安装第三方库

  • 安装命令:pip install 库名(例如 pip install requests)

  • 版本控制:pip install 库名==版本号(如 pip install pandas==1.3.5)

  • 虚拟环境:使用venv或virtualenv隔离项目依赖,避免版本冲突

常见第三方库

领域 库名称 主要作用 典型场景
🌐 网络请求 requests 简化HTTP请求发送与响应处理,支持GET/POST等方法 API调用、网页数据抓取**1
📈 数据分析 pandas 提供DataFrame数据结构,支持数据清洗、转换、聚合分析 结构化数据处理、CSV/Excel操作
numpy 高效处理多维数组和矩阵运算,支持科学计算 数值模拟、线性代数运算
📊 数据可视化 matplotlib 绘制2D图表(折线图、散点图等) 数据结果可视化
pyecharts 生成交互式Echarts图表 动态数据展示
🤖 机器学习 scikit-learn 提供经典机器学习算法(分类、回归、聚类) 模型训练与评估
TensorFlow 深度学习框架,支持神经网络构建 图像识别、自然语言处理
🧠 NLP处理 nltk 自然语言处理工具包(分词、词性标注) 文本分析、情感识别
spaCy 工业级NLP库,支持实体识别、句法分析 大规模文本处理
🕷️ 网络爬虫 scrapy 分布式爬虫框架,支持数据自动抓取与结构化存储 网站数据批量采集
beautifulsoup4 解析HTML/XML文档,提取特定内容 网页内容抽取
🌐 Web开发 Django 全功能Web框架(ORM、模板引擎、用户认证) 企业级应用开发
Flask 轻量级Web框架,灵活扩展

导入库的方式

  • 全量导入:import pandas as pd
  • 按需导入:from datetime import date

Turetle库导入

import turtle  # 推荐方式,避免命名冲突
# 或
from turtle import * # 直接调用函数(小型项目适用)

画布设置

screen = turtle.Screen()  # 创建画布
screen.title("我的绘图") # 设置窗口标题
screen.bgcolor("lightblue") # 设置背景色


pen = turtle.Turtle() # 创建画笔对象
pen.shape("turtle") # 设置画笔形状(海龟/箭头等)
pen.speed(5) # 设置速度(1-10,10最快)

创建画布对象:

screen = turtle.Screen() # 创建画布

画布名 = 海龟库中的Screen()方法

设置画布状态:

  • 清空画布:clear()
  • 重置画布:reset()
  • 设置画布颜色:bgcolor()
  • 设置画布大小:screensize()
    • image-20250626193129642
    • 注意:设置的是画布的大小并不是窗口的大小

画笔(海龟)设置

创建画笔(海龟)对象的两种方式:

  1. pen = turtle.Pen()
  2. pen = turtle.Turtle()

设置画笔(海龟)的参数:

  • 颜色:pencolor()

  • 填充颜色:fillcolor()

    • pen.begin_fill()         # 开始填充
      # 绘制图形(如正方形)
      for _ in range(4):
          pen.forward(100)
          pen.right(90)
      pen.end_fill()           # 结束填充
      <!--code27-->
      
      
# 五角星
for _ in range(5):
pen.forward(150)
pen.right(144) # 转角144°

多画笔(海龟)

t1 = turtle.Turtle()  # 海龟1画三角形
t2 = turtle.Turtle() # 海龟2画正方形