Day1
环境搭建
-
下载vscode
下载链接:https://pan.baidu.com/s/1Oo1TIrAKmlEuEfdn9EXgLQ?pwd=nkt9
-
配置vscode的python开发环境
教程:https://www.runoob.com/python3/python-vscode-setup.html
-
安装Pycharm
下载教程:https://blog.csdn.net/qq_44809707/article/details/122501118
-
Anaconda下载安装 教程
Anaconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda-1.5.0-Windows-x86_64.exe
-
安装Python 3.11+
安装教程:https://blog.csdn.net/lugzk/article/details/131138920
Python 3.11.6:https://www.python.org/ftp/python/3.11.6/python-3.11.6-amd64.exe
安装Python 3.12也是可以的
记住Python安装的路径
-
在Pycharm中配置Python环境
-
下载项目
项目地址:https://gitee.com/scy157609962/chatgpt-gui
-
配置pip为国内镜像源
Windows下,创建文件夹
C:\User\xxx\pip
,并在其中创建文件pip.ini
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host = pypi.tuna.tsinghua.edu.cn
-
下载所需的依赖
进入命令行终端:按
win + R
,输入cmd
pip install --upgrade revChatGPT
pip install PyQt5
-
创建新的Python环境
进入命令行终端
conda create -n chatgpt python==3.11
conda activate chatgpt
注意
-
如果 1、2安装vscode出现问题,可以跳过安装 3 Pycharm
-
如果 4 Anaconda安装失败可以跳过安装 5 Python 3.11+ 和 6 Pycharm中配置环境
-
上面的Python环境安装成功后来到 7 配置
pip.ini
-
最后就是在命令行终端下载第三方库函数
Python语法学习
python语法书:https://pan.baidu.com/s/1Mni4kukikK0MZxMPwoMb9A?pwd=9axr
变量
variable_name = variable_value (变量的名字 = 变量的值)
变量的值可以是整数(eg: 5),也可以是小数(eg: 4.8),也可以是字符串(eg: 'Max')
(*注:字符串需要用引号括起来,单引号'
和双引号"
效果相同)
注释
当代码中需要添加文字描述时,可以使用注释
单行注释使用
#
,eg:# 这是单行注释
多行注释使用
''''''
或""""""
(3对单引号或者3对双引号)''' 这是 多行 注释 '''
高级变量类型(数据结构)
- 列表(list)
empty_list = [] # 创建空列表` fruit = ['apple', 'banana', 'pear'] # 创建一个包含3个字符串的列表 empty_list.append(1) # 向列表中添加元素
函数
定义函数时需要使用 def
关键字
def function_name(arg1, arg2, ...):return 'Something'
类
定义类时需要使用 class
关键字
类 和 对象 的区别:
类 是某个东西的一个大的分类,而 对象 则是该分类下的一个子集
如:猫科动物是一个 类,而老虎和猫则是该类中的两个 子集,当然,老虎和猫下面还会有其它的更小的子集,如:东北虎、波斯猫等
class Person:age = 15name = '李华'gender = 1 # 0表示女,1表示男'''以上3个就是类的属性,可以通过 '.' 来访问类中的属性'''def __init__(self, age, name, gender):"""类的构造函数,可以自行通过类来构造一个对象"""self.age = ageself.name = nameself.gender = genderlihua = Person() # 不传入任何值时使用类的默认的3个属性
xiaohong = Person(13, '小红', 0) # 传入新的参数来创造一个新的对象(不使用默认的属性)# 除了以上两种方法,也可以先使用默认的属性创建对象,然后修改对象的属性
xiaoli = Persion()
xiaoli.age = 14
xiaoli.name = '小李'
xiaoli.gender = 1 # 与默认属性相同
调用库函数
当我们能够定义函数和类后,为了写代码时的简便性,我们可以使用很多别人已经定义好的函数方法来实现我们想要实现的功能,而不需要我们再重新定义函数
def abs(var):"""绝对值函数"""if var < 0:return -varreturn var
上面是我们自己定义的一个绝对值函数,如果我们每次在编写新的代码程序时都需要把这段代码重新拷贝一遍就太麻烦了,这个时候我们就可以使用已经定义好的函数
import math # 导入math库函数
math.abs() # 这个函数实现了我们上面相同的功能from math import abs # 也可以使用下面这种库函数调用的方式
abs()
课后作业
-
打印输出:
编写一个程序,打印出自己的名字和一句问候语(eg: 你好xxx)。 -
变量和运算符:
编写一个程序,输入两个数字,然后执行加法、减法、乘法和除法(除数不能为0)运算,最后输出结果。 -
条件语句:
编写一个程序,输入一个数字,然后判断这个数字是奇数还是偶数,并输出相应的结果。 -
循环:
编写一个程序,计算1到100的所有整数的和,然后输出结果。 -
列表:
创建一个列表,包含几种水果的名称,然后编写一个程序,遍历列表并输出每种水果的名字。 -
函数:
编写一个函数,接受两个参数(数字),然后返回它们的和。 -
简单的游戏:
设计一个简单的文本游戏,例如猜数字游戏或石头剪刀布游戏。 -
综合项目:
使用类来设计一个能够进行四则运算的计算器程序。提示:
class Calculator:def add(a, b):...def sub(...):......my_calculator = Calculator() # 初始化一个名叫`my_calculator`的对象 print(my_calculator.add(1, 3)) # 计算 1 + 3
Day2
网络编程
HTML
超文本标记语言(英语:HyperText Markup Language,简称:HTML)
<!--示例-->
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><h1>我的第一个标题</h1><p>我的第一个段落。</p></body>
</html>
-
标签
使用尖括号
<>
括起来的就叫标签,标签分为一般标签和自闭和标签-
一般标签
<html><head></head><body></body> </html>
以上也是html的基本框架
-
自闭和标签
<br> <!--换行符--> <hr> <!--水平分割线-->
-
-
注释:
<!--中间写注释--> <!--注释 也可以 写多行-->
表单(发送网络请求)
<form method="" action=""></form>
客户端通过浏览器发送网络请求 --> 服务器端接受网络请求并做出相应
-
使用浏览器发送网络请求
举例:
https://www.baidu.com/s?wd=xxx
-
使用Python编写程序发送网络请求
Day3
VPN软件下载
-
下载软件Clash for Windows
软件链接:https://github.com/Fndroid/clash_for_windows_pkg/releases
-
订阅地址:https://subscribe.kuaimao.cloud/api/v1/client/subscribe?token=251f81bba2522dfc1ed63328ebab662b
项目使用方法
Day4
QtDesigner
准备工作
-
安装
PyQt5-tools
软件包:pip install PyQt5-tools
-
位置:
QtDesigner :
your_python_path/Lib/site-packages/qt5_applications/Qt/bin/designer.exe
PyUIC :
your_python_path/Scripts/pyuic5.exe
-
将
xxx.ui
转换为xxx.py
程序:pyuic5 xxx.ui -o xxx.py
-
配置PyCharm
Setting——Tools——External Tools
新建:
-
QtDesigner :
-
PyUIC :
-
-
创建一个
run_xxx.py
程序:import sys from PyQt5.QtWidgets import QApplication, QMainWindow from gui import Ui_MainWindowif __name__ == "__main__":app = QApplication(sys.argv)mainWindow = QMainWindow()ui = Ui_MainWindow()ui.setupUi(mainWindow)mainWindow.show()sys.exit(app.exec_())
连接信号和槽
# 使用connect函数连接信号和槽
self.pushButton.clicked.connect(self.click_button)
读取文本输入框及修改文本标签显示
self.lineEdit.text() # 读取文本输入框中的内容
self.lineEdit.setText() # 设置文本输入框中的内容
self.label.text() # 读取标签的内容
self.label.setText() # 设置标签的内容
组件分布(Layout)
课后作业
- 使用PyQt5完成上次作业8(能够进行四则运算的计算器)
- 自行使用PyQt5设计一个小程序(可以很简单,也可以很炫酷)
Day5
revChatGPT库函数讲解
-
安装jupyter notebook
pip install jupyter
jupyter notebook
-
revChatGPT核心函数讲解
from revChatGPT.V3 import Chatbot
api_key =
# 创建一个chatbot聊天机器人(需要api_key)
chatbot = Chatbot(api_key=api_key, proxy=proxy, timeout=3)# 发送问题请求,并获取回复
for data in chatbot.ask_stream("hello"):print(data, end="", flush=True)
详解项目
使用方法
- 设置api_key、proxy代理
- 保存、读取配置文件
- 使用VPN,输入内容并发送
Qt Widget(组件)
-
QMenu(菜单栏)
-
QAction(子功能)
self.action_save_config.triggered.connect()
区别于按钮的点击事件的绑定
-
QMessageBox(对话框)
QMessageBox.information(<parent_widget>, title, message) # <parent_widget>即父组件
使用代码编写GUI
-
QWidget(基本组件)
center_widget = QWidget(<parent_widget>)
QLabel、QLineEdit、QPushButton、QComboBox
-
QVBoxLayout、QHBoxLayout(分布组件)
layout = QVBoxLayout(widget) layout.addWidget(widget1) # 在布局组件中添加一般组件 layout.addWidget(widget2) ... widget.addLayout(layout) # 在一般组件中添加布局组件 widget.setLayout(layout) # 将布局组件设置为一般组件中的布局状态
-
QListWidget(组件列表)(可省略)
- QListWidgetItem(列表子项)
比赛模拟
-
给我讲一下你们的项目?
做了什么?有什么功能?用什么做的?怎样做的?遇到了哪些问题?怎样解决的?
-
为什么要做这个项目?
灵感来源(生活中遇到了什么问题?)、项目解决了哪些问题?
-
你们项目有哪些优势?
与同类型产品相比
-
项目现在有什么缺陷?(不一定会问,可能是评委提出来的)
有哪些问题?以后怎样改善?
计算器的实现
中缀表达式-->后缀表达式
1 + (2 + 3) * 4
--> 1 2 3 + 4 * +
栈
后进先出