Python复习总结——期末复习知识点总结大全
Python复习总结——期末复习知识点总结大全
第1章 程序设计基本方法
1.1 计算机的概念
- 计算机系统结构阶段(1946-1981年):以全球首台数字计算机ENIAC诞生为标志。
- 计算机网络和视窗阶段(1982-2007年):以面向全球子网间组网的TCP/IP网络协议的标准化为标志。
- 复杂信息系统阶段(2008年至今):以安卓(Andriod)开源移动操作系统的发布为起点。
- 人工智能阶段(约20年后某个时期开始):随着深度学习、开源硬件、智能机器人等技术的发展。
1.2 程序设计语言
1.3 Python语言概述
1.4 Python语言开发环境
1.5 程序的基本编写方法
1.6 Python语言的版本更迭
第2章 Python程序实例解析
2.1 实例1:温度转换
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32) / 1.8
print("转换后的温度是:{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("转换后的温度是:{:.2f}F".format(F))
else:
print("输入格式错误")
2.2 Python程序语法元素分析
2.3 实例2:Python蟒蛇绘制
import turtle # 导入turtle图形库
# 设置绘图窗口的大小为650x350像素,窗口左上角距离屏幕左上角的水平和垂直距离分别为200像素
turtle.setup(650, 350, 200, 200)
# 提起画笔,这样移动时不会在画布上留下痕迹
turtle.penup()
# 向后移动250像素,为绘制图形设定起始位置
turtle.fd(-250)
# 放下画笔,开始绘制
turtle.pendown()
# 设置画笔的粗细为25像素
turtle.pensize(25)
# 设置画笔颜色为紫色
turtle.pencolor("purple")
# 设置海龟的方向为-40度,即向左上方倾斜
turtle.seth(-40)
# 绘制图形的主体部分,循环4次以创建对称图案
for i in range(4):
turtle.circle(40, 80) # 绘制一个半径为40像素,圆周角为80度的圆弧
turtle.circle(-40, 80) # 绘制一个半径为-40像素(方向相反),圆周角为80度的圆弧
turtle.circle(40, 80 / 2) # 绘制一个半径为40像素,圆周角为40度的圆弧
# 向前移动40像素,为绘制尾部做准备
turtle.fd(40)
# 绘制一个半径为16像素,圆周角为180度的圆弧,形成尾部的一部分
turtle.circle(16, 180)
# 向前移动40 * 2 / 3像素,完成尾部的绘制
turtle.fd(40 * 2 / 3)
# 完成绘图
turtle.done()
解释:
turtle.setup()
:用于设置绘图窗口的大小和位置。turtle.penup()
和 turtle.pendown()
:控制画笔的提起和放下,提起时移动不绘图,放下时移动绘图。turtle.pensize()
:设置画笔的粗细。turtle.pencolor()
:设置画笔的颜色。turtle.seth()
:设置海龟的方向,以角度表示。turtle.circle()
:绘制圆弧,参数为半径和圆周角。turtle.fd()
:向前移动指定距离。turtle.done()
:完成绘图,保持窗口打开。这段代码绘制了一个类似蟒蛇的图案,通过组合圆弧和直线移动来实现。
2.4 turtle语法元素分析
以下是第3章“基本数据类型”的内容,以Markdown格式呈现,包括您提供的所有小节和细节:
第3章 基本数据类型
3.1 数字类型
整数类型:int
浮点数类型:float
复数类型:complex
3.2 数字类型的操作
内置的数字类型转换函数
int()
:将其他类型转换为整数。float()
:将其他类型转换为浮点数。complex()
:将其他类型转换为复数。内置的数值运算函数
abs()
:返回数值的绝对值。divmod()
:返回两个数相除的商和余数。pow()
:返回数值的幂。round()
:对数值进行四舍五入。max()
:返回多个数值中的最大值。min()
:返回多个数值中的最小值。3.3 字符串类型及其操作
字符串的定义
""
或者单引号''
括起来的一个或多个字符。字符串的索引和切片
字符串的操作符
+
:连接两个字符串。*
:重复字符串多次。in
:检查一个字符串是否是另一个字符串的子串。内置的字符串处理函数
len()
:返回字符串的长度。str()
:将其他类型转换为字符串。chr()
:根据Unicode编码返回对应的字符。ord()
:返回字符的Unicode编码。hex()
:将整数转换为十六进制字符串。oct()
:将整数转换为八进制字符串。内置的字符串处理方法
upper()
:将字符串转换为大写。lower()
:将字符串转换为小写。find()
:查找子串在字符串中的位置。replace()
:替换字符串中的子串。split()
:将字符串分割为列表。join()
:将列表连接为字符串。3.4 字符串类型的格式化
format()
方法
格式控制标记
<填充>
:指定填充字符。<对齐>
:指定对齐方式(左对齐、右对齐、居中)。<宽度>
:指定字段的宽度。<>
:(此处应为占位符说明,实际使用中不直接出现,用于表示格式说明符的开始和结束)<精度>
:指定浮点数的小数位数或字符串的最大长度。<类型>
:指定转换类型(如整数、浮点数、字符串等)。3.5 实例4:文本进度条
import time # 导入time模块,用于实现延迟
scale = 50 # 设置进度条的总长度(即最大迭代次数)
print("执行开始") # 输出开始执行的提示
# 使用for循环遍历从0到scale(包括scale)
for i in range(scale + 1):
a, b = '*' * i, '' * (scale - i) # 生成当前进度的字符串a和剩余空白的字符串b
c = (i / scale) * 100 # 计算当前进度的百分比
# 使用\r(回车符)在同一行刷新显示进度条
# {:^3.0f}格式化百分比为整数,居中显示,宽度为3
# [{}{}]格式化进度条,其中a是已完成的星号部分,b是剩余的空白部分
print("\r{:^3.0f}[{}{}]".format(c, a, b), end='')
time.sleep(0.1) # 暂停0.1秒,以便观察进度条的变化
print("\n执行结束") # 输出执行结束的提示,并换行
第4章 程序的控制结构
4.1 程序的基本结构
程序的基本结构决定了代码如何被执行,主要分为以下三种:
顺序结构:
print("程序开始")
x = 10
y = 20
print("x + y =", x + y)
print("程序结束")
分支结构:
if
、if-else
、if-elif-else
语句实现。循环结构:
while
循环和for
循环实现。4.2 程序的分支结构
分支结构允许程序根据条件执行不同的代码路径。
单分支结构:
if
语句,当条件为真时执行特定代码块。x = 15
if x > 10:
print("x大于10")
二分支结构:
if-else
语句,提供一个条件为真时执行的代码块和一个条件为假时执行的代码块。x = 5
if x > 10:
print("x大于10")
else:
print("x不大于10")
多分支结构:
if-elif-else
语句,处理多个条件,依次判断每个条件,执行第一个为真的条件对应的代码块。x = 12
if x > 20:
print("x大于20")
elif x > 10:
print("x大于10但小于或等于20")
else:
print("x小于或等于10")
4.3 循环结构
循环结构用于重复执行代码块。
while循环:
count = 0
while count < 5:
print("计数:", count)
count += 1
for循环:
fruits = ["苹果", "香蕉", "樱桃"]
for fruit in fruits:
print(fruit)
4.4 异常处理
异常处理用于捕获和处理运行时发生的错误,防止程序崩溃。
try-except语句:
try:
x = 1 / 0
except ZeroDivisionError:
print("不能除以零")
异常类型:
NameError
(未定义变量)、TypeError
(类型不匹配)等。第5章 函数和代码复用
5.1 函数的定义和调用
定义函数
def
保留字来定义函数,后跟函数名和参数列表。def my_function():
print("这是一个函数")
调用函数
my_function() # 输出:这是一个函数
5.2 函数的参数和返回值
位置参数
def add(a, b):
return a + b
result = add(3, 5) # result的值为8
关键字参数
def greet(name, greeting):
print(f"{greeting}, {name}!")
greet(name="Alice", greeting="Hello") # 输出:Hello, Alice!
默认参数
def multiply(a, b=2):
return a * b
result = multiply(3) # result的值为6
可变参数
*args
用于接收任意数量的位置参数,以元组的形式存储。**kwargs
用于接收任意数量的关键字参数,以字典的形式存储。def var_args(*args, **kwargs):
print(args)
print(kwargs)
var_args(1, 2, 3, a=4, b=5) # 输出:(1, 2, 3) 和 {'a': 4, 'b': 5}
返回值
return
语句返回结果,可以返回多个值(以元组的形式)。def subtract(a, b):
return a - b
result = subtract(10, 5) # result的值为5
5.3 lambda函数
定义
语法
lambda 参数: 表达式
add = lambda x, y: x + y
result = add(3, 5) # result的值为8
5.4 datetime库的使用
获取当前日期和时间
from datetime import datetime
now = datetime.now()
from datetime import datetime
now = datetime.now()
print(now) # 输出当前日期和时间
格式化日期和时间
strftime()
方法将日期和时间格式化为字符串。formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_now) # 输出格式化后的日期和时间
5.5 函数递归
定义
递归的基本条件
def factorial(n):
if n == 1:
return 1 # 基准情况
else:
return n * factorial(n - 1) # 递归情况
result = factorial(5) # result的值为120
第6章 组合数据类型
您提供的关于序列类型的定义和类型是非常准确的。以下是对这部分内容的详细阐述,以Markdown格式呈现:
6.1 序列类型
定义
类型
字符串(String)
"Hello, World!"
元组(Tuple)
(1, 2, 3, "a", "b", "c")
列表(List)
[1, 2, 3, "apple", "banana"]
6.2 列表类型
定义
操作
append(element)
:在列表末尾添加一个新的元素。extend(iterable)
:通过添加一个可迭代对象的所有元素来扩展列表。insert(index, element)
:在指定位置插入一个元素。remove(value)
:移除列表中第一个匹配的元素。pop([index])
:移除列表中指定位置的元素,如果不指定位置,则移除并返回最后一个元素。clear()
:移除列表中的所有元素。示例
my_list = [1, 2, 3]
my_list.append(4) # [1, 2, 3, 4]
my_list.extend([5, 6]) # [1, 2, 3, 4, 5, 6]
my_list.insert(2, 'a') # [1, 2, 'a', 3, 4, 5, 6]
my_list.remove('a') # [1, 2, 3, 4, 5, 6]
my_list.pop() # 移除并返回6,列表变为[1, 2, 3, 4, 5]
my_list.clear() # 移除所有元素,列表变为[]
6.3 元组类型
定义
用途
示例
my_tuple = (1, 2, 3)
# my_tuple[1] = 4 # 会报错,因为元组是不可变的
6.4 字典类型
定义
操作
keys()
:返回一个包含所有键的视图。values()
:返回一个包含所有值的视图。items()
:返回一个包含所有键值对的视图。get(key, default=None)
:返回指定键的值,如果键不存在,则返回默认值。update(other_dict)
:更新字典,添加或覆盖键值对。示例
my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = my_dict.keys() # dict_keys(['a', 'b', 'c'])
values = my_dict.values() # dict_values([1, 2, 3])
items = my_dict.items() # dict_items([('a', 1), ('b', 2), ('c', 3)])
value = my_dict.get('b', 0) # 2
my_dict.update({'d': 4, 'b': 5}) # {'a': 1, 'b': 5, 'c': 3, 'd': 4}
6.5 实例11:Python之禅
程序功能
代码示例
import this
运行上述代码后,Python解释器会输出“Python之禅”,这是一段由Tim Peters编写的关于编写Python代码的指导原则,强调了代码的可读性、简洁性和明确性。
通过这些内容,您可以了解Python中的组合数据类型,包括列表、元组和字典的基本用法和操作,以及一个有趣的实例“Python之禅”。这些知识是编程中的基础,对于掌握Python编程非常重要。
以下是您提供的第7章“文件和数据格式化”的内容,以完整的Markdown格式呈现,包括所有小节和细节:
第7章 文件和数据格式化
7.1 文件的操作
打开文件
open()
函数来打开文件,返回一个文件对象。文件模式
'r'
:只读模式(默认)。'w'
:写入模式,会覆盖文件内容。'a'
:追加模式,在文件末尾添加内容。'b'
:二进制模式,可以与其他模式结合使用(如'rb'
、'wb'
)。读写文件
read()
:读取整个文件内容。write()
:将字符串写入文件。readline()
:读取文件的一行。readlines()
:读取文件的所有行,返回一个列表。writelines()
:将字符串列表写入文件。关闭文件
close()
方法来关闭文件,释放资源。7.2 PIL库的使用
定义
安装
pip install pillow
来安装Pillow库。基本操作
open()
:打开图像文件。show()
:显示图像。save()
:保存图像。convert()
:转换图像模式(如RGB、灰度等)。thumbnail()
:创建图像的缩略图。7.3 一二维数据的格式化和处理
一维数据
二维数据
CSV格式
7.4 CSV格式的HTML展示
程序功能
代码示例
import csv
html = "<table border='1'>\n"
with open('data.csv', mode='r', newline='') as file:
reader = csv.reader(file)
for row in reader:
html += "<tr>"
for cell in row:
html += "<td>{}</td>".format(cell)
html += "</tr>\n"
html += "</table>"
print(html)
data.csv
文件,将其内容转换为HTML表格格式,并打印出来。7.5 高维数据的格式化
定义
存储格式
7.6 json库的使用
定义
json
库用于处理JSON格式的数据。基本操作
loads()
:将JSON字符串解析为Python对象。dumps()
:将Python对象转换为JSON字符串。load()
:从文件读取JSON数据并解析为Python对象。dump()
:将Python对象写入文件,以JSON格式存储。第8章 程序设计方法论
8.1 计算思维
定义
应用
8.2 实例15:体育竞技分析
程序功能
代码示例
import random
def simOneGame(probA, probB):
scoreA, scoreB = 0, 0
serving = "A"
while not gameOver(scoreA, scoreB):
if serving == "A":
if random.random() < probA:
scoreA += 1
else:
serving = "B"
else:
if random.random() < probB:
scoreB += 1
else:
serving = "A"
return scoreA, scoreB
def gameOver(a, b):
return a == 15 or b == 15
def simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
def main():
probA, probB, n = eval(input("请输入选手A的能力值 (0-1): ")), eval(input("请输入选手B的能力值 (0-1): ")), eval(input("模拟比赛的场次: "))
winsA, winsB = simNGames(n, probA, probB)
print("选手A获胜{}场比赛,占比{:.2%}".format(winsA, winsA / n))
print("选手B获胜{}场比赛,占比{:.2%}".format(winsB, winsB / n))
main()
8.3 自顶向下和自底向上
自顶向下设计
自底向上执行
8.4 pyinstaller库的使用
定义
pyinstaller
是一个将Python脚本打包成可执行文件的工具。安装
pip install pyinstaller
来安装pyinstaller
库。使用
pyinstaller -F script.py
命令将script.py
脚本打包成一个可执行文件。-F
选项表示生成一个单独的可执行文件。8.5 计算生态和模块编程
定义
模块编程
8.6 Python第三方库的安装
pip
是Python的包管理工具,用于安装和管理Python库和工具。pip install package_name
命令来安装指定的Python库。通过这些内容,您可以了解计算思维的概念和应用、体育竞技分析的程序设计实例、自顶向下和自底向上的设计方法、pyinstaller
库的使用、计算生态和模块编程的概念以及Python第三方库的安装方法。这些知识对于掌握程序设计方法论和提高编程能力非常重要。
作者:HhhDreamof_