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 datetimenow = 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_