【Python】【期末复习题】【2022秋】

news2024/11/27 12:48:10

文章目录

  • 一、单选题(20分)
  • 二、判断题(10分)
  • 三、填空题(10分)
  • 四、问答题(共30分,6题,每题5分)
  • 五、程序题(3题,每题10分,共30分)

一、单选题(20分)

二、判断题(10分)

三、填空题(10分)

以上三题主要复习范围和要点。

  • Python语言的特点
  • Python的应用场景
  • Python的下载与安装
  • Python的基本语法要素
  • Python常用的集成开发工具
  • Python基本数据类型和运算符
  • Python基本程序结构
  • Python使用Turtle进行绘图
  • 列表的定义
  • 列表的切片
  • 列表的遍历
  • 列表的主要方法
  • 字典、元组和集合的特点、定义和基本操作
  • 函数的概念及定义
  • 函数的参数传递
  • 文件的基本读、写操作
  • 程序错误及异常捕获
  • 类的定义和使用
  • 字符串处理的主要方法

四、问答题(共30分,6题,每题5分)

1、Python的特点 p4
1.简单
2.易学
3.易用
4.易扩展

2、Python的应用场景及使用的第三方库 p5
1.科学计算
2.Web应用开发
3.桌面软件
4.游戏
5.网络爬虫
6.服务器运维的自动化脚本
7.人工智能

3、字典和列表的主要区别p66
①字典的键可以是整数、实数、字符串等类型(严格地说要求是“不可变”类型,这个概念后面会讲到),而列表的下标只能是整数。
②字典中元素的顺序是没有意义的(例如,显示出的顺序与书写的顺序并不一样),而列表中的元素的顺序是很重要的。
③字典中各个键是互不相等的,如果放入多个相等的键,则实际上只能存在一个。例如:
a={1:1,2:2,1:99}
a
{1:99,2:2}
虽然各个键互不相等,但多个值之间是可以相等的。

4、列表、字典、元组和集合的各自特点和区别p73(含表4-3)
列表:数据的序列(元素有顺序关系)。
字典:键值对的集合,元素没有顺序,键不能重复。
元组:数据的序列,具有不可变性。
集合:元素没有顺序,元素不能重复。
在这里插入图片描述

5、可迭代对象的概念 p75
在这里插入图片描述

6、变量的生存期和作用域的定义 p93
在这里插入图片描述

7、文件操作的基本步骤 p121-123
①打开文件
②读写操作
③关闭文件

8、程序错误的主要类型 p135
①语法错误
②逻辑错误
③运行错误

9、安装Python第三方包的步骤及用到的主要方法 p162

①pip安装
②指定国内的安装源

10、正则表达式的概念和要素 p173-175
正则表达式是用来匹配某种格式的字符串的模式。
正则表达式主要由三要素构成:字符、量词(字符个数)、位置。

11、BS4对HTML解析的主要步骤 p203
①根据HTML文本,得到一个BeautifulSoup对象。
②在BeautifulSoup对象中查找,得到Tag对象(标记对象)或者Tag对象的列表。
③对于得到的tag对象,可以得到其属性。
④由于网页的嵌套对象的特点,可以用tag对象进一步查找或遍历。

12、网络的爬虫的工作原理 p206
通用的网络爬虫程序是指沿着网页中的链接得到新的网页,而新的网页中又有新的链接,沿着这些链接将相关的网页或其他资源进行下载或分析。

13、Echarts绘制图表的方法 p229-230
①pyecharts的安装
②图表对象及数据
③显示结果文件
④文件链式调用
⑤对图表进行格式设定

五、程序题(3题,每题10分,共30分)

【例3-18】turtle_draw_fun.py绘制函数图

# coding: utf-8
from turtle import*
import math
# 先画x轴
goto(-200,0)
goto(200,0)
penup()
# 画函数图
k =30  # 放大系数
start =-2* math.pi
end =2* math.pi
goto(start * k, math.sin(start)* k)
pendown()
for x inrange(int(start * k),int(end * k),1):
    y = math.sin(x / k)* k
    goto(x, y)
done()

【例4-18】random_pi.py用画点模拟法估算π的值

#coding: utf-8
import random
import turtle

# 画圆
r =200# 圆的半径
turtle.Screen().delay(0)  # 让画图更快
turtle.penup()
turtle.goto(0,-r)# 画圆是从南面的点开始的
turtle.pendown()
turtle.pencolor("red")
turtle.circle(r)
# 画正方形
turtle.penup()
turtle.goto(-r,-r)# 从西南角开始
turtle.pendown()
turtle.pencolor("black")
for i inrange(4):# 画4条边
    turtle.forward(2* r)
    turtle.left(90)

# 模拟打点并统计在圆中的点数
points =0# 总点数
incircle =0  # 在圆形中的点数
for i inrange(1000):
    x = random.random()*2* r - r  # 点的坐标位于-r到r
    y = random.random()*2* r - r
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    if x**2+ y**2< r**2:  # 如果位于圆中
        turtle.dot(3,"red")  # 画点,两个参数分别为大小和颜色
        incircle +=1  # 计数
    else:
        turtle.dot(3,"green")
    points +=1
    print("当前π的估算值:", incircle / points *4)
turtle.done()

【例8-5】pinyin_idiom.py成语接龙

#coding: utf-8
import pinyin
import random

# 先读取文件,得到成语字典
dictBegin = {} # 以首拼音为key的字典,value是成语的列表
dictEnd = {} # 以尾拼音为key的字典,value是成语的列表
with open("idiom.txt", "r", encoding="utf-8") as f:
	for line in f:
		line = line.strip().replace("\t\t","\t") #格式规范一下
		if line == "":
			continue
		parts = line.strip().split("\t")
		idiom = parts[0]  # 成语
		charpinyins = parts[1].split("'") # 每个字的拼音 
		pinyinBegin = charpinyins[0]  # 首字拼音
		pinyinEnd = charpinyins[-1]  # 尾字拼音
		if pinyinBegin in dictBegin: # 如果在字典中
			dictBegin[pinyinBegin].append(idiom) # 则加上一条
		else:
			dictBegin[pinyinBegin] = [idiom] # 否则,用一个新的列表
		if pinyinEnd in dictEnd:
			dictEnd[pinyinEnd].append(idiom)
		else:
			dictEnd[pinyinEnd] = [idiom]


def getIdiomByBegin(c):
	'''得到以字c的音为首音的成语'''
	p = pinyin.get(c, format="strip")
	idioms = dictBegin[p] # 得到以这个音为首音的成语列表
	idiom = idioms[random.randrange(len(idioms))] # 从中取一个成语
	return idiom

def getIdiomByEnd(c):
	'''得到以字c的音为尾音的成语'''
	p = pinyin.get(c, format="strip")
	idioms = dictEnd[p] # 得到以这个音为尾音的成语列表
	idiom = idioms[random.randrange(len(idioms))] # 从中取一个成语
	return idiom

def checkIdiomBeginWidth(word, c):
	'''检查词语word是不是以c的拼音开头的成语'''
	p = pinyin.get(c, format="strip")
	idioms = dictBegin[p] # 得到以这个音为首音的成语列表
	return word in idioms

# 成语接龙
s = input("请输入一个字:")
idiom = getIdiomByBegin(s[0]) # 用这个字找个成语
print(idiom)
while True:
	s = input().strip()  # 获取用户输入
	if s == "0": # 用0表示结束接龙
		break 
	elif s == "": # 用上个成语的尾字得到新的成语
		idiom = getIdiomByBegin(idiom[-1]) 
		print(idiom)
	else: # 检查是否可以接龙
		if checkIdiomBeginWidth(s, idiom[-1]):
			print("ok, 请继续!")
			idiom = s  #当前的成语
		else:
			print("不对啊,请重新输入。输入回车自动接龙,输入0结束")

【例9-4】letter_count.py读取英文文章,统计其字母出现的频率

#coding: utf-8

# 先读入语料的所有内容
fileName = "speech.txt"
with open(fileName, "r", encoding="utf-8") as f:
    content = f.read()
# 统计字母出现的次数
letter_cnt = {}  # 用字典来表示
total = 0  # 总字母数
for c in content:
    c = c.lower()  # 都以小写为准
    if 'a' <= c <= 'z':  # 只统计字母
        total += 1
        if c in letter_cnt:  # 如果已在字典中
            letter_cnt[c] += 1  # 计数加1
        else:
            letter_cnt[c] = 1  # 初始化为1

print(letter_cnt)
# 个数转成频率值
for c in letter_cnt:
    letter_cnt[c] = round(letter_cnt[c] / total, 2)
# 排序后显示
print(sorted(letter_cnt.items(), key=lambda kv: kv[1]), reverse=True)

【例9-6】jieba_cut.py使用结巴分词进行分词、词性标注及关键词提取

# encoding: utf-8

import jieba
import jieba.posseg
import jieba.analyse

str1 = "我来到北京清华大学"

print("\n精准模式:")
for seg in jieba.cut(str1):  # 默认是精准模式
    print(seg, end=",")

print("\n全模式:")
for seg in jieba.cut(str1, cut_all=True):  # 全模式
    print(seg, end=",")

print("\n词性标注:")
for w in jieba.posseg.cut(str1):  # 词性标注
    print(w.word, "/", w.flag, ", ", end=",")

print("\n关键词提取:")
result3 = jieba.analyse.extract_tags(str1, 2)  # 第二个参数表示关键词个数
print(result3)

【例10-6】get_all_images_2.py用requests及bs4来实现下载网页中的多张图像

# coding:utf-8
import requests
from bs4 import BeautifulSoup

def get_html(url):
    '''获取网页'''
    return requests.get(url).text

def get_image(imgurl, file):
    '''获取并保存图片'''
    content = requests.get(imgurl).content
    with open(file, "wb") as f:
        f.write(content)

def get_imgags_in_page(html):
    '''找到网页中的多个图片'''
    soup = BeautifulSoup(html, "html.parser")
    images = soup.find_all("img", 
        {"pic_type": "0", "class": "BDE_Image"}) 
    cnt = 0
    for img in images:
        imgurl = img["src"]
        print(imgurl)
        get_image(imgurl,'./images/'+str(cnt)+'.jpg')
        cnt += 1

url = "https://tieba.baidu.com/p/2460150866"
html = get_html(url)
get_imgags_in_page(html)

【例11-1】plot_linechat.py折线图及散点图

#coding:utf-8

import matplotlib.pyplot as plt
import os
import random

# 设置字体以支持汉字显示
import os
if os.name == "nt": # Windows系统
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体
else: # MacOS系统
    plt.rcParams["font.family"] = 'Arial Unicode MS'  
plt.rcParams['axes.unicode_minus'] = False  # 支持负号的正常显示

# 绘制图表
xdata = [10,12,13,16,18]
ydata = [1.107,1.213,1.405,1.654,1.701]
xdata2 = [random.uniform(10, 18) for _ in range(20)]
ydata2 = [random.uniform(1.1, 1.7) for _ in range(20)]
plt.plot(xdata, ydata, linestyle="--",
	marker="o", color="red", label="实验值")  # 绘折线图
plt.scatter(xdata2, ydata2, 
	marker="+", color="blue", label="随机值") # 绘散点图

# 设置一些基本元素
plt.title('电信号测量') # 图标标题
plt.grid() # 显示网格线
plt.xlabel('电压') # x轴标签
plt.ylabel('电流') # y轴标签
plt.xlim(8, 20) # x轴范围
plt.ylim(1.0, 1.8) # y轴范围 
plt.legend(loc='upper left')  #显示图例,位置在左上角
plt.text(1.1, 7, r'特殊值')  #指定位置显示文字

plt.savefig("test.png") # 保存图片
plt.show() # 显示图表

要求:补充程序中不完整的部分

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React.js 简介以及一些基本概念

React 是什么 React 跟angular.js 和Vue.js 一样是构建用户界面的js库 2011 年 由Facebook 工程师Jordan Walke创建 在 2013 开源 React 的优势 原生js的痛点 原生的Javascript 操作DOM繁琐&#xff0c;效率低(DOM-API 操作UI&#xff09;使用Javascript 直接操作DOM&#xf…

scala语法(三)(有java基础速学)

面向对象编程&#xff08;中&#xff09; scala的包 Scala中包名和源码所在的系统文件目录结构要可以不一致&#xff0c;但是编译后的字节码文件路径和包名会保持一致 scala 自动引入的包 Scala中&#xff0c;以下三个包的内容会隐式引用到每个程序上。 import java.lang._…

[附源码]Python计算机毕业设计二手交易平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

如何管理客商主数据,附要点和QA

客商主数据&#xff08;客户、供应商、既是客户也是供应商&#xff09;是企业最常用的主数据类型之一。要实现上下游的打通&#xff0c;方便企业内部相关业务的运转以及信息流通&#xff0c;做好客商主数据的管理至关重要。 什么是客商主数据 客商主数据是一类复杂的主数据&a…

一文搞懂Vue Diff算法

为什么需要diff算法&#xff1f; 对于一个容器&#xff08;比如我们常用的#app&#xff09;而言&#xff0c;它的内容一般有三种情况&#xff1a; 1.字符串类型&#xff0c;即是文本。 2.子节点数组&#xff0c;即含有一个或者多个子节点 3.null&#xff0c;即没有子节点 在…

【软件开发】前后端分离架构下JWT实现用户鉴权

前后端分离架构下JWT实现用户鉴权在【计算机网络】JWT&#xff08;JSON Web Token&#xff09;初识 中&#xff0c;我们讲解了 JWT 的基础知识。Token 验证的方式一般是用在前后端分离的软件开发项目中&#xff0c;所以本篇文章将会从前端和后端的角度去考虑 JWT 的实现。前端 …

H5和小程序的区别

近年来&#xff0c;由于社交电商的火爆程度&#xff0c;相较于传统的电商淘宝、京东、天猫这种第三方平台&#xff0c;其余平台的发展也势不可挡。并且第三方平台的竞争过大&#xff0c;成本过高&#xff0c;抢流量越来越难之后&#xff0c;越来越多的商家企业开始转战H5微商城…

基于知识图谱的多模内容创作技术

导读&#xff1a;由于大数据时代的发展&#xff0c;知识呈指数级增长&#xff0c;而知识图谱技术又在近年来逐步火热&#xff0c;因此诞生了利用知识图谱技术进行智能创作的新想法。本文将分享基于知识图谱的多模内容创作技术及应用。主要包括以下四大部分&#xff1a; 百度知识…

Network Configuration Manager固件漏洞管理

固件漏洞可能会使您的企业和客户的敏感数据面临风险&#xff0c;导致黑客容易进入、销售额下降、声誉损失和处罚。为了避免这些事故&#xff0c;识别这些固件漏洞并定期采取纠正措施非常重要。 使用 Network Configuration Manager&#xff0c;你现在可以识别网络设备中的潜在…

【数据结构-JAVA】包装类 泛型

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 一道面试题 2. 泛型 2.1 什么是泛型 3. 泛型是如何编译的 3.1 擦除机制 4. 泛型的上界 5. 泛型方法 1. 包装类 在 Java 中&#xff0c;由于基本类型不是继承自 Object&#xff0c;为了在泛型代码中可以…

为什么 FIQ 比 IRQ 的响应速度更快?

目录 1、FIQ在异常向量表位于最末 2、FIQ模式有5个私有寄存器 3、FIQ的优先级高于IRQ 1、FIQ在异常向量表位于最末 一般来说&#xff0c;处理器跳转到异常向量表以后&#xff0c;会根据当前的异常源类型&#xff0c;执行下一次的跳转指令&#xff0c;但是FIQ在异常向量表的…

尚医通:项目搭建-提交到Git(六)

&#xff08;1&#xff09;前后端概念介绍 &#xff08;2&#xff09;搭建项目后端环境 &#xff08;3&#xff09;提交到Git仓库 &#xff08;1&#xff09;前后端概念介绍 &#xff08;2&#xff09;搭建项目后端环境 项目模块构建 hospital-manage&#xff1a;医院接口模拟…

微服务框架 SpringCloud微服务架构 分布式缓存 44 Redis 分片集群 44.5 RedisTemplate访问分片集群

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 分布式缓存 文章目录微服务框架分布式缓存44 Redis 分片集群44.5 RedisTemplate访问分片集群44.5.1 RedisTemplate访问分片集群44 Redis 分片…

手把手教你使用SpringBoot做一个员工管理系统【代码篇·上】

手把手教你使用SpringBoot做一个员工管理系统【代码篇上】1.登录功能2.登录拦截器的实现3.展示员工列表1.登录功能 首先把登录页面的表单提交地址写一个controller <form class"form-signin" th:action"{/user/login}">表单的name属性不可少&#…

13、腾讯云轻量应用服务器挂载文件系统

前言&#xff1a;腾讯云轻量应用服务器腾讯云文件存储&#xff08;Cloud File Storage&#xff0c;CFS&#xff09;系统的使用小记 轻量应用服务器系统版本是windows server 2012r 一、必要概念 1.1 轻量应用服务器 轻量应用服务器&#xff08;TencentCloud Lighthouse&#x…

【MySQL】浅谈事务与隔离级别

文章目录1. 事务概述2. 事务的特性3. 事务的隔离级别1. 事务概述 什么是事务&#xff1f; 在MySQL中的事务&#xff08;Transaction&#xff09;是由存储引擎实现的&#xff0c;在MySQL中&#xff0c;只有InnoDB存储引擎才支持事务。事务处理可以用来维护数据库的完整性&#x…

大数据学习--使用Java API访问HDFS

Java API访问HDFS编写Java程序访问HDFS1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、启动集群HDFS服务5、在HDFS上创建文件编写Java程序访问HDFS 1、创建Maven项目 创建Maven项目 - HDFSDemo 单击【Create】按钮 2、添加相关依赖 在pom.xml文件里添加hadoop和…

react的jsx和React.createElement是什么关系?面试常问

1、JSX 在React17之前&#xff0c;我们写React代码的时候都会去引入React&#xff0c;并且自己的代码中没有用到&#xff0c;这是为什么呢&#xff1f; 这是因为我们的 JSX 代码会被 Babel 编译为 React.createElement&#xff0c;我们来看一下babel的表示形式。 需要注意的是…

Kotlin 原生拓展函数与非拓展函数

先看一下图文 根据定义的性质可分为两类 非拓展函数 repeat 循环函数,可使用该函数执行一些有限循环任务,务必在构造函数传入循环次数 repeat(repeatNumber:Int 1) with 条件补充区域,可在某些需要两个或者多个函数对象直接的属性进行依赖操作时使用 …

Python 读取图像方式总结

读取并显示图像 opencv3库scikit-image库PIL库读取图像结果分析 打印图像信息 skimage获取图像信息PIL获取图像信息 读取并显示图像方法总结 PIL库读取图像Opencv3读取图像scikit-image库读取图像参考资料 学习数字图像处理&#xff0c;第一步就是读取图像。这里我总结下如何…