【上海华师大版】高一信息技术必修一编程部分期末复习

【上海华师大版】高一信息技术必修一编程部分期末复习

AlexWei Lv1

本复习以python相关部分易错点,重难点为主,面向应考的高一学生,概念表述可能并不严谨,仅供参考,如有纰漏,敬请指出

2023.6.29增改

第二章 算法与程序实现

算法的特征:

  1. 有穷性
  2. 确定性
  3. 有>=0个输入
  4. 有>=1个输出

运算符与表达式

逻辑运算符优先级:not>and>or

优先级:算数>关系>逻辑(运算符)

循环结构

(1)for循环

格式:

1
2
for 循环变量(常用i) in 范围:
每次循环中所要执行的代码

含义:循环变量会在每次循环中分别取范围内的每一个值,即从前往后依次取范围内的值,一次循环中循环变量为范围中的值之一,待取到范围内每一个值的每一次循环都结束后,跳出循环

(2)while循环

格式:

1
2
while 条件:
每次循环中所要执行的代码

含义:只要条件成立,将一直执行循环

注意,为避免死循环,使用while语句时,需自行声明循环变量,并具有能使循环判断表达式改变的语句,最终能够结束循环(有穷性)

(3)range函数

格式:range(起始值,终值,步长)

效果:生成一个从起始值开始(包含起始值),每次+步长,一直到终值(不包含终值)的整数序列

注意点:起始值如留空,默认为0,步长如留空,默认为1,终值不可留空

正确的留空写法:range(终值),range(起始值,终值),不可写成range(终值,步长)

枚举法

“辗转相除法”简介(求最大公约数)

用较大数整除较小数,取余数,并用除数再除以余数,以此循环,直到余数为0时,此时的除数即位最大公约数

1
2
3
4
5
6
7
8
9
10
11
m=int(input())
n=int(input())
times=0
if (m>n):
m,n=n,m
while (n!=0):
t=m%n
m=n
n=t
times+=1
print(m)

请注意:我个人认为这段代码有误或非必要,因为按照“辗转相除法”的概念,应使用较大整数对较小整数取余,而此处代码实现的是用较小整数对较大整数取余,且事实上,在算法实际执行过程中,你会发现这两者得到结果并无差异。

1
2
if (m>n):
m,n=n,m

第三章 数据处理与应用

简单网络爬虫

所用到的库:requests,bs4(这里只用到beautifulsoup)

Requests简介:

  • 功能:发送http请求
  • 涉及到的方法:get

BeautifulSoup简介:

  • 功能:解析HTML代码,并获得相关标签内容
  • 涉及到的方法:select(),title,text

关键代码解析

1
2
3
from bs4 import BeautifulSoup

import requests

导入外部库,不必多说,但绝对不可以遗漏

1
html=requests.get(url)

获取指定url的网页HTML数据,并存入名为“html”的变量(注意,此处变量类型是一个URL对象,代表了整个网页,不是写有网页源代码文字的文本类型,因此在解析源代码时,第一个参数要写html.text)

1
html.encoding="utf-8"

确定编码格式

1
sp=BeautifulSoup(html.text,'html.parser')

用解析器“html.parser“解析源代码,并将结果返回到sp中(注意 此处sp是一个BeautifulSoup类对象,这里涉及到面向对象的概念,这里不做详细解释,可将其简单理解为一个自带一些方法(属性),可操作的抽象对象)

1
title=sp.select("title")

利用sp对象的select属性,抓取该网页中名为“title”的标签,并存入title变量(注意,这里并未去除html标签)

1
print(sp.title.text)

注意此处的.text,用于去除html标签(形如的,称为html语言中的标签)

数据整理

所用到的库:pandas,numpy

读取csv:

1
df=pandas.read_csv(“ ”,encoding=" ")

读取csv文件,写入名为df的对象(该对象为DataFrame对象)

read_csv函数需至少传入两个参数,前一个为文件路径(注意,如果代码文件和所需csv文件在同一个根目录下,可只写csv文件名,这称为相对路径),后一个为编码格式,常用utf-8和ansi

筛选记录值

1
df1.df[df["字段名"]==字段内容]

在df中筛选符合制定字段的记录值(也就是说,寻找符合指定特征的记录值)

注:以下的DataFrameName代指需要操作的,用pandas构建的DataFrame对象的名字,如案例中的df1

在一列数据中求平均/最大/最小

平均:

1
numpy.mean(DataFrameName对象名["字段名"])

最大:

1
numpy.max(DataFrameName["字段名"])

最小:

1
numpy.min(DataFrameName["字段名"])

去重(注意,需要pandas)

DataFrameName.drop_duplicates(subset=[‘字段名’],keep=””,inplace=)

第一个参数,需要去重的字段名

第二个参数,如引号内写first,保留第重复数据中的第一个,写last保留最后一个,写False不保留

第三个参数,接受布尔值(True或False),代表是否覆盖原文件

去除缺失

DataFrameName.dropna(axis= ,inplace= )

第一个参数接受二进制0或1,0删除行,1删除列

第二个参数接受布尔值,代表是否覆盖原文件

绘图

所用库:matplotlib.pyplot

常用函数:(以下用plt作为matplotlib.pyplot的别称)

plt.plot()#折线图

plt.scatter()#散点图,可用于发现异常值

plt.bar()#柱状图

plt.pie()#饼图

plt.boxplot()#箱形图,可用于发现异常值

  • 标题: 【上海华师大版】高一信息技术必修一编程部分期末复习
  • 作者: AlexWei
  • 创建于: 2023-01-11 23:19:57
  • 更新于: 2023-07-06 13:25:21
  • 链接: https://www.alexwei.top/2023/01/11/cs-of-grade10sem1/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论