Python 14 复习环节
又到一年总结季,下周要考Python啦,整理一下老师给的ppt
Python Programing 03
代码块
- 分支语句的作用范围可以是有限的
- 使用代码块表示该作用范围
- 代码块由缩进定义
- 注意使用冒号
- 同一代码块的缩进空格数要一致
Python Programing 04 函数,模块,简单文件读写
函数
- 程序可能会很长很长
- 同样的功能可能会多次执行
- 把执行特定功能的模块封装起来就是函数
- 便于修改,逻辑更加清晰,代码可以重用
lambda函数
- lambda语句创建一个无名函数,并将该函数作为返回值
- 只能包含一个表达式,连
if
这样的结构都不支持 - def语句中的函数名是预先设定好的。lambda语句则可以把产生的函数赋给任意一个变量名
- lambda语句产生的函数也可以不占用变量名
模块
将一些函数或变量封装在
.py
文件中,以供调用比函数更高层次的封装
.py
文件的名字就是模块的名字通过这种封装,可以避免单个
.py
文件过长自定义的模块应该放在主程序目录下
模块的调用
模块被载入后成为了一个对象
模块的意义:代码重用和管理(同函数);模块提供命名空间(作为对象来实现)
读取文本文件
#打开一个文件
input = open(‘file_name’, ‘r’)
#读取文件中的内容到一个字符串
content = input.read()
#关闭文件
input.close()
相对路径和绝对路径
- 相对路径:以程序文件所在的位置为根目录
- 绝对路径:从“C:\”写起
- 路径的书写经常使用raw字符串:
r‘xxx’
按行读取文件
line=input.readline()
- 文件结尾处返回空字符串
lines=input.readlines()
写入文件
#以写入方式打开一个文件
output = open(‘file_name’, ‘w’)
#写入一行
output.write(‘one apple a day’ + ‘\n’)
#关闭文件
output.close()
- 把数字转化成字符串写入
从文件中读取数字
Python Programing 05 类与对象,异常处理
定义一个类
class 你的类:
xxx
xxx
方法中的指代
self
——对象自己super
(类名称,self)——父类
产生对象
- -使用赋值语句创建对象:
o1=C1()
o2=C1()
类的方法和对象的属性
- 类中定义的函数称为方法
- 方法可以理解为类的行为
- 对象可以含有一些变量(可能是方法产生的),称为属性
- 属性是属于个体的
类的继承
class 类的名字(父类的名字):
xxx
xxx
- 父类中的方法将被子类继承
继承多个父类
class C1(C2,C3):......
- 当C2和C3中存在同名内容时,以C2为准
多态:同样的接口,不同的方法
- 水果.切
- 西瓜.切
- 橙子.切
- 榴莲.切
- 同名方法的搜索:自下而上
钩子
- 类中,以__XXX__为名的函数称为钩子
- 重载钩子函数可以实现特殊功能
构造函数
__init__()
- 对象产生时会自动运行这个函数
异常处理
- 异常:可以改变程序中控制流程的事件
- 异常是一种特殊分支
- 一般是某种错误或者失败发生
- Python可以自动处理异常,处理方法是立即终止程序,并且报告问题类型和位置
- 我们可以手动定义异常处理的方式
异常处理的基本语法
try
观察一段代码,尝试捕捉其中发生的异常except
相应某种异常,或者所有的异常finally
无论异常是否发生,总会运行这里的代码else
如果try内的语句未发生异常,则执行
异常捕获机制
- 按先后顺序尝试捕获异常
- 如果一条except不响应这个异常,则向后传递
- 如果没有语句响应这个异常,则Python系统处理
Python Programing 06 Ipython,Numpy,Scipy
Ipthon
- 安装:cmd下输入
pip install ipython
- 运行:cmd下输入
ipython
输入?
查看帮助文档
Tab键自动完成
- 键入一些内容之后,按Tab键,显示可能的变量或者函数名;
- 也可以用于显示模块中有哪些可调用的方法或常量:
import math
math.[Tab]
内省
中断执行的代码
- 当代码死循环时可以用
ctrl + C
退出运行
命令历史
-按↑可以调出上一条指令
找回忘记保存的变量
魔术命令
用Ipython运行文件
- %run+路径+文件名
%run D:/test.py
在交互模式下运行大段代码
- 默认情况下,交互模式只能一条一条执行代码,不能把一段代码复制粘贴到交互模式运行
- 使用
%cpaste
命令来执行多行代码 - 或者直接使用
%paste
命令来执行当前剪贴板中的内容
Numpy
- 在cmd下通过
pip install numpy
安装 - 用
import numpy as np
来载入
多维数组array
- NumPy的核心就是这个多维数组array
Python自带的数组是弱类型的,可以存放不同类型的内容,因此无法进行某些运算,如矩阵相乘
array是一个同结构数据的多维容器
每个array数组都有一个shape和一个dtype属性,分别记录其各维度大小以及数据类型 - 创建array序列
d=[1,2,3]
arr=np.array(d)
- 指定array的类型
arr1 = np.array([1,2,3], dtype = np.float64)
arr2 = np.array([1,2,3], dtype = np.int32)
索引和切片
- 二维数组可以索引两次
- np的索引和切片不复制内容
- 复制:
.copy()
Scipy
- 通过在cmd下输入
pip install scipy
安装
Python Programing 07 Pandas数据处理
Pandas
- 基于Numpy构建
- 包含
Series
和DataFrame
两种数据结构,以及相应的方法 - 调用方式
from pandas import Series,DataFrame
import pandas as pd
创建Series
- 常规创建
obj2 = Series([2,2,3,3], index = [‘a’, ‘b’, ‘c’, ‘d’])
- 以字典创建
d = {‘a’:123, ‘b’:456, ‘c’ :789}
obj3 = Series(d)
states = [‘a’, ‘c’, ‘d’]
DataFrame
- 很像一个Excel表格
- 含有一组有序的列
- 列内同构,列之间可以是不同的数据类型
- 既有列索引,也有行索引
- 以二维结果保存数据(高维数据视作二维表格的叠加)
- 创建DataFrame
d = {‘name’: [‘Bob’, ‘Jack’, ‘Lili’, ‘Dongwei’],‘age’: [28, 33, 22, 88],‘salary’:[3000, 2, 5000, 999999999]}
frame1 = DataFrame(d)
frame2 = DataFrame(d, columns = [‘age’, ‘name’, ‘salary’])
frame3 = DataFrame(d, index = [‘01’, ‘02’, ‘03’, ’04’])
- 给列赋值
frame3[‘IQ’] = [110, 70, 100, 999] #长度必须匹配
- 按行索引
somebody = frame3.ix[’02’]
- 丢弃指定行或列
frame4 = frame3.drop(‘IQ’, axis = 1) #丢弃列
frame5 = frame3.drop(’02’)
- 插入列
s = Series([1,2,3])
frame5.insert(1, ‘aaa’, s)
- 两个index的运算
append #连接
difference #差集
intersection #交集
union #并集
- 过滤
frame6 = frame3[frame3[‘age’] > 30]
- 按索引排序
obj6 = obj3.sort_index()
frame 10 = frame3. sort_index()
frame 11 = frame3. sort_index(axis = 1)
- 处理缺失数据
手工产生NaN值:np.nan
x2 = x.dropna() #剔除含NaN的行
x2 = x.fillna(0) #以0替换NaN
x2 = x.fillna({‘a’:-1, ‘c’:0}) #对于’a’列’c’列分别操作
x2 = x.fillna(method = ‘ffill’) # 以插值替换NaN
- 统计汇总
s1 = frame3.sum() #按列小计
s2 = frame3.sum(axis = 1) #按行
- 合并数据集
Python Programing 08 数据读写
Numpy读写矩阵
np.save(文件名,矩阵)
np.load(文件名)
- pandas读取csv表格
pd.read_csv(文件名)#读取csv表格,自动类型推断
- pandas写入csv表格
frame.to_csv(文件名)
处理畸形的csv文件
- 当csv文件结构有问题时,pd.read_csv函数无法读取
- 使用上述方法读入文件,然后进行整理,最后转化成DataFrame
pandas读取二进制文件
frame.save(文件名)
pd.load(文件名)
pandas读写Excel文件
xls_file = pd.ExcelFile(‘data.xls’)
table = xls_file.parse(‘Sheet1’)
读取JSON文件
读取xml
- 使用lxml库来解析xml
from lxml import objectify
parsed = objectify.parse(open('cd_catalog.xml'))
root=parsed.getroot()
- 可用函数:getchildren() x.tag
读取html
from lxml.html import parse
from urllib.request import urlopen
parsed = parse(urlopen('http://www.zufe.edu.cn/’))
doc = parsed.getroot()
links = doc.findall('.//a’)
links[0].get('href’)
links[0].text_content()
读取html中的table
parsed = parse(urlopen('http://info.zufe.edu.cn/xygk/szdw.htm’))
doc = parsed.getroot()
tables = doc.findall(‘.//table’)
‘.//tr’ ‘.//td’
Python Programing 09 数据绘图
matplotlib绘图
- 载入
import matplotlib.pyplot as plt
- 载入图片
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(np.arange(10))
fig.show()
- 管理subplot
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
#参数:行数,列数,第几个
- 调节subplot间距
fig.subplots_adjust(wspace = 0.5)
#可用参数:left right bottom top wspace hspace
- 绘制各种图像
from numpy.random import randn
ax1.plot(randn(50).cumsum())#折线图
ax2.hist(randn(100), bins = 20)#柱状图
ax3.scatter(randn(50), randn(50))#散点图
fig.show()
- 颜色标记线型
ax1.plot(randn(50).cumsum(), linestyle = ‘--’, color = ‘g’, marker = ‘o’ )
- 设置坐标轴范围
ax1.set_xlim([0,100])
ax1.set_ylim([-1,1])
- 设置刻度标签和具体刻度
ticks = ax1.set_xticks([0,20,40,60,80,100])
labels = ax1.set_xticklabels([‘zero’, ‘one’, ‘two’, ‘three’, ‘four’, ‘five’], rotation = 30)
- 设置标题和轴标签
ax1.set_title('fig 1’)
ax1.set_xlabel(‘Step’)
ax1.set_ylabel(‘Value’)
fig.show()
- 添加图例
ax4 = fig.add_subplot(2,2,4)
ax4.plot(randn(1000).cumsum(), ‘k’, label = ‘one’)
ax4.plot(randn(1000).cumsum(), ‘r.’, label = ‘two’)
ax4.legend(loc = ‘best’)
fig.show()
- 绘制形状
rect = plt.Rectangle((0.2,0.75), 0.4, 0.15, color = ‘g’, alpha = 0.2)
ax.add_patch(rect)
- 保存图片
fig.savefig(‘xxx.svg’, dpi = 400, bbox_inches = ‘tight’)
pandas绘图
from pandas import Series, DataFrame
import pandas as pd
df = DataFrame(randn(10,4).cumsum(0), columns = [‘A’, ‘B’, ‘C’, ‘D’], index = np.arrange(0,100,10))
df.plot()
读入Matlib图片
import scipy.io as sio
raw_K=sio.loadmat('Subject1K.mat')
raw_V=sio.loadmat('Subject1V.mat')
k = raw_K['Subject1K']
v = raw_V['Subject1V']
Python Programing 10 PyQt信号和槽
我们选择的GUI库:PyQt5
- PyQt安装:在cmd下输入
pip install pyqt5
- 第一个例子
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self,parent=None):super().__init__(parent)
app=QApplication(sys.argv)
form=Form()
form.show()
app.exec_()
- 第二个例子:计算器
import sys
from math import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self, parent=None):super().__init__(parent)self.text = QLabel('AAA')self.browser = QTextBrowser()self.lineedit = QLineEdit("Type an expression.")self.lineedit.selectAll()layout = QVBoxLayout()layout.addWidget(self.text)layout.addWidget(self.browser)layout.addWidget(self.lineedit)self.setLayout(layout)self.lineedit.setFocus()self.lineedit.returnPressed.connect(self.updateUi)self.setWindowTitle("Calculate")def updateUi(self):try:text = str(self.lineedit.text())self.browser.append("%s = <b>%s</b>" % (text, eval(text)))except:self.browser.append("<font color=red>%s is invalid!</font>" % text)app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
Qt类
- Qt类的继承关系:各种控件类都继承自QWidget QWidget继承自QObject
常见的控件
- QPushButton:按钮
QLabel:文本标签(不能交互)
QLineEdit:单行文本框控件
QTextEdit:多行文本控件
QCheckBox:勾选框
QSlider:滑动条
信号
-信号就是信号类型的对象
信号和槽链接的方式
- 发出对象.信号名.connect(接收对象.槽名)
第三个例子:汇率
import sys
import urllib.request
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self, parent=None):super().__init__(parent)date = self.getdata()rates = sorted(self.rates.keys())dateLabel = QLabel(date)self.fromComboBox = QComboBox()self.fromComboBox.addItems(rates)self.fromSpinBox = QDoubleSpinBox()self.fromSpinBox.setRange(0.01, 10000000.00)self.fromSpinBox.setValue(1.00)self.toComboBox = QComboBox()self.toComboBox.addItems(rates)self.toLabel = QLabel("1.00")grid = QGridLayout()grid.addWidget(dateLabel, 0, 0)grid.addWidget(self.fromComboBox, 1, 0)grid.addWidget(self.fromSpinBox, 1, 1)grid.addWidget(self.toComboBox, 2, 0)grid.addWidget(self.toLabel, 2, 1)self.setLayout(grid)self.fromComboBox.currentIndexChanged.connect(self.updateUi)self.toComboBox.currentIndexChanged.connect(self.updateUi)self.fromSpinBox.valueChanged.connect(self.updateUi)self.setWindowTitle("Currency")def updateUi(self):to = self.toComboBox.currentText()from_ = self.fromComboBox.currentText()amount = ((self.rates[to]/self.rates[from_])*self.fromSpinBox.value())self.toLabel.setText("{0:.2f}".format(amount))def getdata(self): self.rates = {}try:date = "Unknown"data = urllib.request.urlopen("https://www.gov.uk""/government/uploads/system/uploads""/attachment_data/file/702273""/exrates-monthly-0518.csv").read()for line in data.decode("utf-8", "replace").split("\n"):line = line.rstrip()if not line or line.startswith(("#", "Closing ", "Country")):continuefields = line.split(",")if line.startswith("China"):date = fields[-1]else:try:value = float(fields[3])self.rates[fields[0]] = valueexcept ValueError:passreturn "Exchange Rates Date: " + dateexcept Exception as e:return "Failed to download:\n{}".format(e)app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
Python Programing 11 PyQt5对话框,控件
QLabel
self. aLabel = QLabel(self)
self. aLabel. setText(“AAA”)
self. aLabel.setPixmap( QPixmap(“a.jpg"))
QSpinBox,QDoubleSpinBox 数字框
self.mySpinBox = QDoubleSpinBox(self)
self.mySpinBox. setRange(1, 1000000000)
self.mySpinBox.setValue(1000)
self.mySpinBox.valueChanged.connect(self.updateUi)
QSlider 滑动条
设置:setMinimum,setMaximum,setSingleStep,setValue
信号:valueChanged
读取:v = self.mySlider.value()
QLineEdit,QTextEdit 可编辑文本框
self.lineedit = QLineEdit("Type a string.")
self.lineedit.returnPressed.connect(self.updateUi)
s = self.lineedit.Text()
QTextBrowser 不可编辑文本框
self.browser = QTextBrowser()
self.browser.append(‘aaa’)
QListWidget 选单
self.listWidget = QListWidget(self)
self.listWidget.addItems(['item1', 'item2', 'item3'])
self.listWidget.itemClicked.connect(self.XXX)
QComboBox 下拉选单
self.comboBox = QComboBox(self)
itemdata = ['item0', 'item1', 'item2']
self.comboBox.addItems(itemdata)
self.comboBox.currentIndexChanged.connect(self.updateUi)
QPushButton 按钮
self.okButton = QPushButton(self)
self.okButton. setText(“OK")
self.okButton.clicked.connect(self.accept)
QHLayOut,QVLayOut 横,纵向布局
self.layout = QVBoxLayout(self)
self.layout.addWidget(xxx)
self.setLayout(layout)
QGridLayOut 矩阵式布局
self.layout = QGridLayout(self)
self.layout.addWidget(myLabel, 0, 0)
self.layout.addWidget(mySpinBox, 0, 0)
self.setLayout(layout)
QSpacerItem 弹簧
s = QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Expanding)
layout.addSpacerItem(s)
利用弹出式对话框获得信息
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class PenPropertiesDlg(QDialog):def __init__(self, parent=None):super(PenPropertiesDlg, self).__init__(parent)widthLabel = QLabel("&Width:")self.widthSpinBox = QSpinBox()widthLabel.setBuddy(self.widthSpinBox)self.widthSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter)self.widthSpinBox.setRange(0, 24)self.beveledCheckBox = QCheckBox("&Beveled edges")styleLabel = QLabel("&Style:")self.styleComboBox = QComboBox()styleLabel.setBuddy(self.styleComboBox)self.styleComboBox.addItems(["Solid", "Dashed", "Dotted", "DashDotted", "DashDotDotted"])okButton = QPushButton("&OK")cancelButton = QPushButton("Cancel")buttonLayout = QHBoxLayout()buttonLayout.addStretch()buttonLayout.addWidget(okButton)buttonLayout.addWidget(cancelButton)layout = QGridLayout()layout.addWidget(widthLabel, 0, 0)layout.addWidget(self.widthSpinBox, 0, 1)layout.addWidget(self.beveledCheckBox, 0, 2)layout.addWidget(styleLabel, 1, 0)layout.addWidget(self.styleComboBox, 1, 1, 1, 2)layout.addLayout(buttonLayout, 2, 0, 1, 3)self.setLayout(layout)self.setWindowTitle("Pen Properties")okButton.clicked.connect(self.accept)cancelButton.clicked.connect(self.reject)class Form(QDialog):def __init__(self, parent=None):super(Form, self).__init__(parent)self.width = 1self.beveled = Falseself.style = "Solid"penButton = QPushButton("Set Pen")self.label = QLabel("The Pen has not been set")self.label.setTextFormat(Qt.RichText)layout = QVBoxLayout()layout.addWidget(penButton)layout.addWidget(self.label)self.setLayout(layout)self.setWindowTitle("Pen")penButton.clicked.connect(self.setPenProperties)self.updateData()def updateData(self):bevel = ""if self.beveled:bevel = "<br>Beveled"self.label.setText("Width = {}<br>Style = {}{}".format(self.width, self.style, bevel))def setPenProperties(self):dialog = PenPropertiesDlg(self)dialog.widthSpinBox.setValue(self.width)dialog.beveledCheckBox.setChecked(self.beveled)dialog.styleComboBox.setCurrentIndex(dialog.styleComboBox.findText(self.style))if dialog.exec_():self.width = dialog.widthSpinBox.value()self.beveled = dialog.beveledCheckBox.isChecked()self.style = dialog.styleComboBox.currentText()self.updateData()app = QApplication(sys.argv)
form = Form()
form.resize(400, 200)
form.show()
app.exec_()
Python Programing 12 PyQt主窗口编程
- 具体代码指路:图像编辑代码
图像类
image = QImage(fname)
imageLabel = QLabel()
imageLabel.setPixmap(QPixmap.fromImage(image))
状态栏
菜单栏
工具栏
动作
动作组
Python Programing 13 Qt Designer
- 安装:
pip3 install PyQt5_tools
- 打开Qt Designer方式指路:打开QD
- 完成的设计保存为.ui文件,需要转化为.py文件才可以使用。命令:
pyuic5 -o 1.py 1.ui
- 不要修改转换得到的.py文件
设计步骤
对话框的实现
对话框的测试
大概就是这样了,下周上机考了1551
书于吃了玉米水饺就不会冻耳朵的冬至
12.24
今天考完了Python,无语了,好难啊,我是废物,1551
pip install Python的沉重打击
successfully installed
并不愉快地打出gg
Python 14 复习环节相关推荐
- 2022年(第13届蓝桥杯省赛)Python 14 天夺奖冲刺营
2022年(第13届蓝桥杯省赛)Python 14 天夺奖冲刺营 2022.03.25 攒了一周的视频直播没有看,更新完了直接看合集. 数据结构基础之链表篇 什么是链表 链表是线性表的链式存取的数据结 ...
- 太牛了 Python期末复习总结,提高成绩必备回家过个开心年
Python期末复习之语法 将用一张思维导图的形式来展示python的基础语法. Python期末复习之运算符 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑 ...
- python编写自定义函数判断n1-n2范围内的素数_【每日道代码题001】- PYTHON基础复习...
问题001-1:请对输入三个整数a,b,c,判断能否以它们为三个边长构成三角形.若能,输出YES和面积,否则输出NO a = float(input()) b = float(input()) c = ...
- Python 速效复习汇总(新手慎用)二
Python 速效复习汇总 jieba库 常用分词函数 示例 文件 打开与关闭 读和写相关方法 PIL 库 一. Image 类 图像读取和创建 常用属性 序列图像操作方法 图像转换和保存方法 图像旋 ...
- python 基础复习二
这里写自定义目录标题 python 基础复习二 1.数据类型 2.数据的应用 3.数据的转换 总结 python 基础复习二 1.数据类型 最常用的数据类型有三种--字符串(str).整数(int)和 ...
- 【面试复习】Python基础复习
[面试复习]Python基础复习 前言 相信一些学习python的朋友找不到一些python的的朋友找不到相对应的python面经,所以博主就推荐大家可以去牛客上面看看哦,各种大厂面经和习题哦! 地址 ...
- (萌新笔记)python的复习笔记
简介:python,作为我在暑假入门的第一门语言,我发现它特别简洁和实用,因此我想记录我的python学习过程,现在刚刚大一入门(我比较弱鸡,所以本文可能会有记录很多我初学时遇到的问题,还请大家斟酌观 ...
- 大一上期Python考前复习
初识Python考试前复习 Python介绍 基本语法 1.赋值语句 2.del语句 3.if 语句 4.for循环语句 4.while循环语句 4.1循环下的语句 数据类型 1.数据可变性 2.数据 ...
- Python总复习-下
目录 人工智能总目录网页链接 文章目录 目录 9.Python-web前端 Day01-HTML-页面 1. Web 1. 什么是WEB 2. 组成 3. Web 服务器 4. 浏览器 2. HTML ...
最新文章
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- linux查看文件和文件夹大小
- opc调试软件_组态王和三菱OPC软件完美演绎天塔之光
- word修改一处另一处自动修改_这么做让word自动记录修改明细,再也不用一个字一个字的核对了...
- 智能计米器jk76怎么安装_春节智能锁消费指南:只看价格的后果有多严重?
- 处理兼容问题:对于某些css3属性需要加前缀?
- 在线HTTP请求/响应头转JSON工具
- 内置对象 API Math对象、Data对象、Array对象、String对象
- 拳王虚拟项目公社:微店闲鱼怎样自动化卖虚拟商品,虚拟资源自动化收钱项目
- ie主页被劫持怎么办 解决浏览器主页劫持方法
- P3237 [HNOI2014]米特运输
- 【Android】Webview加载url出现空白但是在手机或者pc的浏览器中可以正常打开的解决方法
- 国家气候气象观测站分类
- C/C++ 数据范围int
- 二十一世纪大学英语读写基础教程学习笔记(原文)——8 - Young and in Love(超年轻恋人)
- 电子产品销售数据分析
- 如何删除电脑弹出的热点新闻
- python web py入门-4-请求处理(上)
- 拼图游戏-从基础到应用玩转手势变化。
- 过敏性鼻炎通过免疫治疗可彻底根治
热门文章
- JAVA毕设项目民宿运营管理网站(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
- 三国演义 关羽过五关斩六将具体指什么
- 明哥之家的又一个博客
- java除法保留n位有效位
- 学历对计算机专业的人很重要吗?
- mysql整段注释_MySQL的注释方式
- tensorflow系列——读取tfrecord数据
- vue项目 使用 export * from 時候报错
- 复旦邱锡鹏新作:单机微调650亿参数大模型,业内人士:对大模型普及意义重大...
- 青岛软件企业认定的要求