软件工程师课程辅导

news/2024/12/22 0:39:39/文章来源:https://www.cnblogs.com/scy157609962/p/18448393

Day1

环境搭建

  1. 下载vscode

    下载链接:https://pan.baidu.com/s/1Oo1TIrAKmlEuEfdn9EXgLQ?pwd=nkt9

  2. 配置vscode的python开发环境

    教程:https://www.runoob.com/python3/python-vscode-setup.html

  3. 安装Pycharm

    下载教程:https://blog.csdn.net/qq_44809707/article/details/122501118

  4. Anaconda下载安装 教程

    Anaconda下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda-1.5.0-Windows-x86_64.exe

  5. 安装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安装的路径

  6. 在Pycharm中配置Python环境

    img

    img

    img

  7. 下载项目

    项目地址:https://gitee.com/scy157609962/chatgpt-gui

  8. 配置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
    
  9. 下载所需的依赖

    进入命令行终端:按 win + R,输入 cmd

    img

    pip install --upgrade revChatGPT

    pip install PyQt5

  10. 创建新的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')
(*注:字符串需要用引号括起来,单引号'和双引号"效果相同)

注释

当代码中需要添加文字描述时,可以使用注释

  1. 单行注释使用 #,eg: # 这是单行注释

  2. 多行注释使用 ''''''"""""" (3对单引号或者3对双引号)

'''
这是
多行
注释
'''

高级变量类型(数据结构)

  1. 列表(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()

课后作业

  1. 打印输出
    编写一个程序,打印出自己的名字和一句问候语(eg: 你好xxx)。

  2. 变量和运算符
    编写一个程序,输入两个数字,然后执行加法、减法、乘法和除法(除数不能为0)运算,最后输出结果。

  3. 条件语句
    编写一个程序,输入一个数字,然后判断这个数字是奇数还是偶数,并输出相应的结果。

  4. 循环
    编写一个程序,计算1到100的所有整数的和,然后输出结果。

  5. 列表
    创建一个列表,包含几种水果的名称,然后编写一个程序,遍历列表并输出每种水果的名字。

  6. 函数
    编写一个函数,接受两个参数(数字),然后返回它们的和。

  7. 简单的游戏
    设计一个简单的文本游戏,例如猜数字游戏或石头剪刀布游戏。

  8. 综合项目
    使用类来设计一个能够进行四则运算的计算器程序。

    提示:

    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>
  1. 标签

    使用尖括号<>括起来的就叫标签,标签分为一般标签和自闭和标签

    1. 一般标签

      <html><head></head><body></body>
      </html>
      

      以上也是html的基本框架

    2. 自闭和标签

      <br>  <!--换行符-->
      <hr>  <!--水平分割线-->
      
  2. 注释:

    <!--中间写注释-->
    <!--注释
    也可以
    写多行-->
    

表单(发送网络请求)

<form method="" action=""></form>

客户端通过浏览器发送网络请求 --> 服务器端接受网络请求并做出相应

  • 使用浏览器发送网络请求

    举例:https://www.baidu.com/s?wd=xxx

  • 使用Python编写程序发送网络请求

Day3

VPN软件下载

  1. 下载软件Clash for Windows

    软件链接:https://github.com/Fndroid/clash_for_windows_pkg/releases

  2. 订阅地址:https://subscribe.kuaimao.cloud/api/v1/client/subscribe?token=251f81bba2522dfc1ed63328ebab662b

    img

项目使用方法

Day4

QtDesigner

准备工作

  1. 安装PyQt5-tools软件包:pip install PyQt5-tools

  2. 位置:

    QtDesigner : your_python_path/Lib/site-packages/qt5_applications/Qt/bin/designer.exe

    PyUIC : your_python_path/Scripts/pyuic5.exe

  3. xxx.ui转换为xxx.py程序:pyuic5 xxx.ui -o xxx.py

  4. 配置PyCharm

    Setting——Tools——External Tools

    新建:

    1. QtDesigner :

      img

    2. PyUIC :

      img

  5. 创建一个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)

课后作业

  1. 使用PyQt5完成上次作业8(能够进行四则运算的计算器)
  2. 自行使用PyQt5设计一个小程序(可以很简单,也可以很炫酷)

Day5

revChatGPT库函数讲解

  1. 安装jupyter notebook

    pip install jupyter

    jupyter notebook

  2. 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)

详解项目

使用方法

  1. 设置api_key、proxy代理
  2. 保存、读取配置文件
  3. 使用VPN,输入内容并发送

Qt Widget(组件)

  1. QMenu(菜单栏)

  2. QAction(子功能)

    self.action_save_config.triggered.connect()

    区别于按钮的点击事件的绑定

  3. QMessageBox(对话框)

    QMessageBox.information(<parent_widget>, title, message)
    # <parent_widget>即父组件
    

使用代码编写GUI

  1. QWidget(基本组件)

    center_widget = QWidget(<parent_widget>)

    QLabel、QLineEdit、QPushButton、QComboBox

  2. QVBoxLayout、QHBoxLayout(分布组件)

    layout = QVBoxLayout(widget)
    layout.addWidget(widget1)  # 在布局组件中添加一般组件
    layout.addWidget(widget2)
    ...
    widget.addLayout(layout)  # 在一般组件中添加布局组件
    widget.setLayout(layout)  # 将布局组件设置为一般组件中的布局状态
    
  3. QListWidget(组件列表)(可省略)

    • QListWidgetItem(列表子项)

比赛模拟

  1. 给我讲一下你们的项目?

    做了什么?有什么功能?用什么做的?怎样做的?遇到了哪些问题?怎样解决的?

  2. 为什么要做这个项目?

    灵感来源(生活中遇到了什么问题?)、项目解决了哪些问题?

  3. 你们项目有哪些优势?

    与同类型产品相比

  4. 项目现在有什么缺陷?(不一定会问,可能是评委提出来的)

    有哪些问题?以后怎样改善?

计算器的实现

中缀表达式-->后缀表达式

1 + (2 + 3) * 4 --> 1 2 3 + 4 * +

后进先出

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PAIRDISTILL: 用于密集检索的成对相关性蒸馏方法

在当今海量数据时代,有效的信息检索(IR)技术对于从庞大数据集中提取相关信息至关重要。近年来,密集检索技术展现出了相比传统稀疏检索方法更加显著的效果。 现有的方法主要从点式重排序器中蒸馏知识,这些重排序器为文档分配绝对相关性分数,因此在进行比较时面临不一致性的挑战。…

School New Competition WP

试验一下博客园的基础功能,顺便把学校战队招新赛的Wp传一下, alpaca_search: 直接burp爆破把密码搞出来,在burp多抓几次包会在正确的包里发现一个新的cookie名count,count记录了正确的值 ,然后把它改成999再多发几次包,发到正确的那一个后就拿到了flag RCE_ME!!! 题目直…

pytorch环境安装

pytorch环境安装 1.基础安装 首先安装anaconda打开,进入base,输入命令,这里-n后跟的是环境名字,再往后是python版本,不要太高 conda create -n pytorch python=3.8安装的时候有按y的就按y 创建成功后使用下面命令进入创建的环境 conda activate pytorch2.安装需要的库 pip…

[Trick] 格路记数 - 反射容斥

Perface 模拟赛不会被冲烂了。 Problem I 从 \((0,0)\) 到 \((n,m)\) 方案数。 解法: \(C(n+m,m)\)。 Problem II 从 \((0,0)\) 到 \((n,m)\) 方案,但是不能经过 \(y=x+b\) 的直线。 解法: 考虑映射法。 以一条路径第一次碰到直线的位置为起点,之后所有的路线和 \(y=x+b\) …

Burp功能 细解析

情境 第六周的培训甚是有趣, 更加详细的介绍了Burp工具的功能和使用细节. 虽然很有趣, 但是我学得很慢, 练习达到熟练掌握还需要练习. 以下是第五次培训的练习题 以及我的解答. 最后一题手生, 一开始没做出来.1、安装burp,分别在本机上实现全局代理和局部代理,提供设置过程的…

高级语言程序设计第二次作业(102400106刘鑫语)

这个作业属于课程:https://edu.cnblogs.com/campus/fzu/2024C/ 作业要求:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400106 姓名:刘鑫语 程序清单 最初都很顺利 3.1 3.2 3.3 3.4 3.5 3.6 出现了问题但一直没能解决,回宿舍后试着改成c99 依然报错,…

快乐数学4弧度

4 弧度 我们大多数人都不知道为什么圆要有 360 度。在学习高等数学或物理时,我们会记住一个神奇的数字--“圆的大小”,并将自己设置为一个 “圆的360度”。 专家们说:“弧度让数学变得更简单!”但却没有简单的理由(涉及泰勒级数的讨论并不简单)。今天,我们将揭开弧度的真…

序列化器ser.validated_data、ser.initial_data、ser.data

class LoginPwdSerializer(serializers.Serializer):mobile = serializers.CharField(required=True, validators=[RegexValidator(r"\d{11}", message="格式错误")])password = serializers.CharField(required=True)def validate_mobile(self, value):ex…

12-网络安全审计技术原理与应用

12.1 概述 1)概念 :指对网络信息系统的安全相关活动信息进行获取、记录、存储、分析和利用的工作。 作用:在于建立“事后”安全保障措施,保存网络安全事件及行为信息,为网络安全事件分析提供线索及证据,以便于发现潜在的网络安全威胁行为,开展网络安全风险分析及管理。 …

林史语其十(101-111)【下半更新】

12345鉴于收集素材与发布素材之间有一定延迟,此后林史一章分两次更新 先把存的旧东西发一下 #101故事源于 joke3579 学长博客里一份证明,涉及到求不定积分的 如果你不知道啥是不定积分,你只需要知道它是导数逆运算就行了 学长博客里写的是 :\(A\) 求导后等于 \(B\) HDK:\(…

林史语其十(101-110)【下半更新】

12345鉴于收集素材与发布素材之间有一定延迟,此后林史一章分两次更新 先把存的旧东西发一下 #101故事源于 joke3579 学长博客里一份证明,涉及到求不定积分的 如果你不知道啥是不定积分,你只需要知道它是导数逆运算就行了 学长博客里写的是 :\(A\) 求导后等于 \(B\) HDK:\(…

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径

CF 1805 D. A Wide, Wide Graph (*1800) 思维 + 树的直径 题目链接 题意:思路: 若当前点到最远的点的距离 \(< k\) , 说明 \(x\) 自己成为一个联通块。 并且我们知道距离任意一点最远的点一定是树直径的一个端点。 反之,则与直径端点在同一个联通块。 所以一个点要么独立…