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

官网: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

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. 区分大小写(如 nameName 不同)

  3. 禁止使用关键字(如 ifforclass

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

命名规范

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

  • 常量名:全大写,如 MAX_SIZE

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

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

数据类型

向变量中存放的东西叫数据,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 301 and 33
  • 0 or 441 or 51

位运算符

直接操作二进制位:

运算符 描述 示例 结果(二进制)
& 按位与 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. notandor(逻辑)
    提示​:使用 () 显式指定优先级,如 (2+3)*4

表达式

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

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

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

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

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

常见第三方库

领域 库名称 主要作用 典型场景
🌐 网络请求 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画正方形