python实验(超详细)

news2024/12/23 6:09:05

目录

      • 实验一 python编程基础
      • 实验二 python序列、字符串处理
      • 实验三 函数及python类的定义与使用
      • 实验四 python综合应用

实验一 python编程基础

  1. 在交互式环境中打印“Hello world”字符串。记录操作过程。

  1. 创建脚本helloworld.py,在命令符提示环境中执行程序,打印“Hello world”字符串。记录操作过程。

  1. 使用pip命令查看当前已安装的所有模块
pip list
  1. 编写一个猜年龄的小游戏,如果输入的年龄正确输出“Yes,it is right!”否则输出“No, you are wrong!”
year = 19
guess_age = int(input("请输入你猜的年龄:"))
if year == guess_age:
    print("Yes,it is right!")
else:
    print("No,you are wrong!")
  1. 编写程序,输入<人名 1>和<人名 2>,在屏幕上显示如下的新年贺卡:

【源程序】
###################################
<人名 1> 新年贺卡 <人名 2>
python0101.py
2015
###################################

name1 = input("Please enter a value for name1:")
name2 = input("Please enter a value for name2:")
print(f'''
###################################
# {name1} 新年贺卡 {name2}
# python0101.py
# 2015
###################################
''')
  1. 编写程序,输入球的半径,计算球的表面积和体积,半径为实数,用π,结果输出为浮点数,共10位其中2位有效数字。
import math
 
r = float(input("Please enter a valur for radius:"))
surface = '%.10f' % round(4 * math.pi * r * r, 2)
volume = '%.10f' % round(4 / 3 * math.pi * (r ** 3), 2)
print(f"The surface area of sphere is {surface}")
print(f'The volume of sphere if {volume}')
  1. 用id()函数输出变量地址的示例程序
str1 = "这是一个变量"
print("变量str1的值是:" + str1)
print("变量str1的地址是:%d" % (id(str1)))
str2 = str1
print("变量str2的值是:" + str2)
print("变量str2的地址是:%d" % (id(str2)))
str1 = "这是另一个变量"
print("变量str1的值是:" + str1)
print("变量str1的地址是:%d" % (id(str1)))
print("变量str2的值是:" + str2)
print("变量str2的地址是:%d" % (id(str2)))
  1. 参照下面的步骤练习使用运算符
x = 3
x += 3
print(x)
x -= 3
print(x)
x *= 3
print(x)
x /= 3
print(x)

实验二 python序列、字符串处理

  1. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
list = [1, 2, 3, 4]
 
count = 0
 
for i in list:
    for j in list:
        for k in list:
            if (i != j) and (i != k) and (j != k):
                count += 1
                print(f"{i}{j}{k}", end=" ")
 
print("")
print(f"The count is {count}")
  1. 输入某年某月某日,判断这一天是这一年的第几天?
year = int(input('year: '))
mouth = int(input('month:'))
day = int(input('day:'))
mouths = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
 
if year % 400 == 0 or year % 4 == 0:
    mouths[3] += 1
 
if 0 < mouth <= 12:
    days = 0
 
    for item in range(mouth):
        sum = mouths[item]
        days += sum
 
    result = days + day
    print(f'今天是今年的第{result}天')
else:
    print('输入日期超出范围')
  1. 输入三个整数x,y,z,请把这三个数由小到大输出。
list = [int(input("Please input a value for x:")), int(input("Please input a value for y:")),
         int(input("Please input a value for z:"))]
 
print(sorted(list))
  1. 输出9*9乘法口诀表
print('\n'.join([' '.join([f"{j}x{i}={i * j}" for j in range(1, i + 1)]) for i in range(1, 10)]))
  1. 判断101-200之间有多少个素数,并输出所有素数
result = []
 
for i in range(101, 200):
    for j in range(2, i - 1):
        if i % j == 0:
            break
    else:
        result.append(i)
 
print(f"素数一共有{len(result)}个")
print(result)
  1. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
str = input("请输入一行字符:")
 
count_alpha = 0
count_space = 0
count_digit = 0
count_other = 0
 
for i in str:
    if i.isalpha():
        count_alpha += 1
    if i.isspace():
        count_space += 1
    if i.isdigit():
        count_digit += 1
    else:
        count_other += 1
 
print(f"{str}中的英文字母个数为:{count_alpha}")
print(f"{str}中的空格个数为:{count_space}")
print(f"{str}中的数字个数为:{count_digit}")
print(f"{str}中的其他字符个数为:{count_other}")
  1. 求1!+2!+3!+…+20!的和
result = []
 
for i in range(1, 21):
    num = 1
    for j in range(1, i + 1):
        num *= j
    result.append(num)
 
print(sum(result))
  1. 设计一个字典,并编写程序,用户输入内容作为键,然后输出字典中对应的值,如果用户输入的键不存在,则输出“您输入的键不存在!”
d = {'wzr': '1', 'Lebron': 2, 'is': 3, 'GOAT': 4}
n = input("请输入键:")
print(d.get(n, "您输入的键不存在!"))
  1. 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。
from random import choices
 
data = choices(range(100), k=20)
print(data)

data[:10] = sorted(data[:10])
data[10:] = sorted(data[10:], reverse=True)
print(data)
  1. 字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”

a.请将 a 字符串的数字取出,并输出成一个新的字符串。
b.请统计 a 字符串出现的每个字母的出现次数(忽略大小写,a 与 A 是同一个字母),并输出成一个字典。 例 {‘a’:3,‘b’:1}
c.请去除 a 字符串多次出现的字母,仅留最先出现的一个,大小写不敏感。例
‘aAsmr3idd4bgs7Dlsf9eAF’,经过去除后,输出 ‘asmr3id4bg7lf9e’
d.按 a 字符串中字符出现频率从高到低输出到列表,如果次数相同则按字母顺序排列。

a = "aAsmr3idd4bgs7Dlsf9eAF"
 
str_digit = ''
 
for i in a:
    if i.isdigit():
        str_digit += i
 
print(str_digit)
 
lower_a = a.lower()
c = {key: lower_a.count(key) for key in lower_a if key.isalpha()}
print(c)
 
result = []
for i in a:
    if i not in result:
        if ('A' <= i <= 'Z') and (i.lower() not in result):
            result.append(i)
        elif ('a' <= i <= 'z') and (i.upper() not in result):
            result.append(i)
        elif not i.isalpha():
            result.append(i)
print("".join(result))
  1. 回文是一种“从前向后读”和“从后向前读”都相同的字符串。如“rotor”是一个回文字符串。定义一个函数,判断一个字符串是否为回文字符串,并测试函数的正确性。
def isPalindrome(str):
    rever_str = str[::-1]
    if rever_str == str:
        print(f"{str}是回文字符串!")
    else:
        print(f"{str}不是回文字符串!")
 
str = input(" ")
isPalindrome(str)

实验三 函数及python类的定义与使用

定义一个函数,实验给定任意字符串,查找其中每个字符的最后一次出现,并按每个字符最后一次出现的先后顺序依次存入列表。例如对于字符串’abcda’的处理结果为[‘b’, ‘c’, ‘d’, ‘a’],而字符串’abcbda’的处理结果为[‘c’, ‘b’, ‘d’, ‘a’]。测试函数的正确性。

List = list()
 
str1 = input("Please enter a value for str1:")
 
for i in str1:
    if List.__contains__(i):
        List.remove(i)
        List.append(i)
    else:
        List.append(i)
 
print(List)
  1. 编写函数,使用非递归方法对整数进行因数分解
def factorization(n):
    list = []
    while n > 1:
        for i in range(n-1):
            k = i + 2
            if n % k == 0:
                list.append(k)
                n = n//k
                break
    print(list)
 
factorization(20)
  1. 编写总的“车”类(VehicleClass),其中描述车名、车轮数,以及机动车和非机动车变量, 以及开车方法;编写继承“车”类的公共汽车类(BusClass)和自行车类(BicycleClass)
class VehicleClass:
    def __init__(self, vehicle_name, num_wheels):
        self.vehicle_name = vehicle_name
        self.num_wheels = num_wheels
        
    def drive(self):
        if self.is_movable:
            if self.is_motorized:
                return f"{self.vehicle_name}正在启动引擎并行驶。"
            else:
                return f"{self.vehicle_name}正在踩踏脚踏板。"
        else:
            return f"{self.vehicle_name}无法行驶,可能需要维修。"


class BusClass(VehicleClass):
    def __init__(self, vehicle_name):
        super().__init__(vehicle_name, num_wheels=4)

class BicycleClass(VehicleClass):
    def __init__(self, vehicle_name):
        super().__init__(vehicle_name, num_wheels=2)
  1. 自定义集合。模拟Python内置集合类型,实现元素添加、删除以及并集、交集、对称差集等基本运算
class CustomSet:
    def __init__(self):
        self.elements = []

    def add(self, element):
        if element not in self.elements:
            self.elements.append(element)

    def remove(self, element):
        if element in self.elements:
            self.elements.remove(element)

    def union(self, other_set):
        new_set = CustomSet()
        new_set.elements = self.elements.copy()

        for element in other_set.elements:
            if element not in new_set.elements:
                new_set.elements.append(element)

        return new_set

    def intersection(self, other_set):
        new_set = CustomSet()

        for element in self.elements:
            if element in other_set.elements:
                new_set.add(element)

        return new_set

    def symmetric_difference(self, other_set):
        union_set = self.union(other_set)
        intersection_set = self.intersection(other_set)
        symmetric_diff_set = union_set.difference(intersection_set)

        return symmetric_diff_set

    def difference(self, other_set):
        new_set = CustomSet()

        for element in self.elements:
            if element not in other_set.elements:
                new_set.add(element)

        return new_set

    def display(self):
        print(self.elements)
  1. 自定义栈,实现基本的入栈、出栈操作
class CustomStack:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return len(self.items) == 0

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if not self.is_empty():
            return self.items.pop()
        else:
            return None
  1. 设计点类,并为这个点类设计一个方法计算两点之间的距离。
import math
 
 
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
 
    def getDistance(self, other):
        print(f"两点之间的距离为:{round(math.sqrt((self.x - other.x) ** 2 + (self.y - other.y) ** 2),2)}")
 
 
point1 = Point(5, 1)
point2 = Point(6, 2)
point1.getDistance(point2)
  1. 设计长方形类,并用其成员函数计算两个给定的长方形的周长和面积
class Rectangle:
    def __init__(self, x, y):
        self.x = x
        self.y = y
 
    def getArea(self):
        print(f"长方形的面积为{self.x * self.y}")
 
    def getGirth(self):
        print(f"长方形的周长为{self.x * 2 + self.y * 2}")
 
 
rectangle1 = Rectangle(9, 10)
rectangle1.getArea()
rectangle1.getGirth()
 
rectangle2 = Rectangle(5, 5)
rectangle2.getArea()
rectangle2.getGirth()
  1. 试编码实现简单的银行业务:处理简单帐户存取款、查询。编写银行帐户类BankAccount,包含数据成员:余额(balance)、利率(interest);操作方法:查询余额、存款、取款、查询利率、设置利率。创建BankAccount类的对象,并完成相应操作。
class BankAccount:
    def __init__(self, initial_balance=0.0, interest_rate=0.01):
        self.balance = initial_balance
        self.interest_rate = interest_rate

    def get_balance(self):
        return self.balance

    def deposit(self, amount):
        if amount > 0:
            self.balance += amount
            return f"存款成功。当前余额:{self.balance}"
        else:
            return "存款金额必须大于0。"

    def withdraw(self, amount):
        if amount > 0 and self.balance >= amount:
            self.balance -= amount
            return f"取款成功。当前余额:{self.balance}"
        elif amount <= 0:
            return "取款金额必须大于0。"
        else:
            return "余额不足,无法取款。"

    def get_interest_rate(self):
        return self.interest_rate

    def set_interest_rate(self, new_rate):
        if new_rate >= 0:
            self.interest_rate = new_rate
            return f"利率已更新为 {self.interest_rate * 100}%。"
        else:
            return "利率不能为负数。"


# 创建银行帐户对象
account = BankAccount(initial_balance=1000.0, interest_rate=0.02)

# 查询余额
print("当前余额:", account.get_balance())  

# 存款
print(account.deposit(500))  

# 取款
print(account.withdraw(200))  
print(account.withdraw(1500)) 

# 查询利率
print("当前利率:", account.get_interest_rate())  
# 设置利率
print(account.set_interest_rate(0.03))  
print("当前利率:", account.get_interest_rate())  

实验四 python综合应用

  1. 假设有一个英文文本文件,编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。
with open("demo.txt", "r") as f:
    data = f.read().swapcase()
    print(data)
  1. 读取文本文件data.txt中所有整数,将其按升序排序后再写入文本文件。
with open('data.txt', 'r') as fp:
    data = fp.readlines()
data = [int(line.strip()) for line in data]
data.sort()
data = [str(i) + '\n' for i in data]
with open('data.txt', 'w') as fp:
    fp.writelines(data)
  1. 编写程序,将包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。
import pickle
 
stu_dict = {"数据结构": 99,
            "计算机网络": 90,
            "计算机组成原理": 80,
            "操作系统": 98}
 
s = pickle.dumps(stu_dict)
 
with open("./dict.txt", "wb") as f:
    f.write(s)
    f.close()
 
with open("./dict.txt", "rb") as f:
    a_dict = f.read()
    f.close()
a_dict = pickle.loads(a_dict)
 
print(a_dict)
  1. 编写程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该文件
import os
 
catalogue = input("请输入目录:")
filename = input("请输入文件名:")
flag = True
 
tuple_dirs = os.walk(catalogue)
 
for root, dirs, files in tuple_dirs:    
    if filename in files:
        print(f"{catalogue} 目录下有文件 {filename}")
        flag = False
        break
if flag:
    print(f"{catalogue} 目录下没有文件 {filename}")
  1. 不使用拷贝的方式计算((A+B)*(-A/2))
# 定义变量 A 和 B
A = 5
B = 10

# 计算表达式 ((A + B) * (-A / 2)) 并将结果存储在变量 result 中
result = ((A + B) * (-A / 2))

# 打印结果
print(result)

  1. 生成一个5*5的矩阵,其中每一行的值为0到4
import numpy as np
 
matrix = np.mod(np.arange(25), 5).reshape(5, 5)
print(matrix)
  1. 生成一个包含10个元素的向量,其其取值范围为[0,1]
import numpy as np
 
print(np.random.random(10))
  1. 给定一个4维向量,求倒数第一维、倒数第二维的和
# 假设给定的4维向量是一个列表
vector = [1, 2, 3, 4]

# 求倒数第一维和倒数第二维的和
last_dim_1 = vector[-1]
last_dim_2 = vector[-2]
sum_last_dims = last_dim_1 + last_dim_2

# 打印结果
print("倒数第一维和倒数第二维的和:", sum_last_dims)

  1. 画出以下函数,其取值范围为[0,20].需要增加坐标标签,图片标题等

在这里插入图片描述

from matplotlib import pyplot as plt
import numpy as np
import math
 
x = list(np.arange(0, 20, 0.1))
y = []
for i in range(len(x)):
    y.append(math.sin(x[i] - 2) ** 2 * math.e ** (0 - x[i] ** 2))
plt.plot(x, y)
plt.xlabel('x-axis', fontsize=14)
plt.ylabel('y-axis', fontsize=14)
plt.title('f(x) = sin²(x-2)e^(-x²)')
plt.show()
  1. 画出正弦曲线, 需要增加坐标标签,图片标题等

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
 
x = np.linspace(-20, 20, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('x-axis', fontsize=14)
plt.ylabel('y-axis', fontsize=14)
plt.title('f(x) = sinx')
plt.show()
  1. 根据企业成本及利润多年的变化情况,分析下一年的企业利润会是多少。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 假设有多年的成本和利润数据,用列表表示
years = [1, 2, 3, 4, 5]  # 年份
costs = [1000, 1200, 1500, 1700, 2000]  # 成本数据(假设单位是万元)
profits = [2000, 2200, 2300, 2500, 2800]  # 利润数据(假设单位是万元)

# 创建一个线性回归模型
model = LinearRegression()

# 将年份作为输入特征,利润作为目标变量进行拟合
years = np.array(years).reshape(-1, 1)  # 将年份转换为二维数组
model.fit(years, profits)

# 使用模型预测下一年的利润
next_year = 6  # 假设下一年的年份是6
next_year_profit = model.predict([[next_year]])[0]

print(f"预测下一年的利润为:{next_year_profit:.2f}万元")

# 绘制利润的折线图
years_for_plot = years.flatten()
profits_for_plot = profits

plt.figure(figsize=(8, 6))
plt.plot(years_for_plot, profits_for_plot, marker='o', linestyle='-', color='b')
plt.xlabel('年份')
plt.ylabel('利润(万元)')
plt.title('利润变化趋势')
plt.grid(True)

# 在图上标记预测值
plt.annotate(f'预测值:{next_year_profit:.2f}万元', xy=(next_year, next_year_profit), xytext=(next_year - 1, next_year_profit + 100),
             arrowprops=dict(facecolor='red', arrowstyle='->'))

plt.show()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Oracle】Oracle系列十八--Oracle RAC

文章目录 往期回顾前言1. Oracle RAC介绍1.1 基本概念1.2 Oracle RAC应用场景1.3 Oracle RAC的优缺点 2. Oracle RAC架构3. Oracle RAC 的安装 往期回顾 【Oracle】Oracle系列之一–Oracle数据类型 【Oracle】Oracle系列之二–Oracle数据字典 【Oracle】Oracle系列之三–Orac…

CDN网络基础入门:CDN原理及架构

背景 互联网业务的繁荣让各类门户网站、短视频、剧集观看、在线教育等内容生态快速发展&#xff0c;互联网流量呈现爆发式增长&#xff0c;自然也面临着海量内容分发效率上的挑战&#xff0c;那么作为终端用户&#xff0c;我们获取资源的体验是否有提升呢&#xff1f; 答案是…

网络层·IP协议

承接前文TCP协议-CSDN博客 简介 协议头格式 网段划分(重要) 划分方法 IP地址的数量限制(背景介绍) 私有IP地址和公网IP地址(提出解决思路) NAT技术(解决方法) 路由 网络层 在复杂的网络环境中确定一个合适的路径 IP协议 主机: 配有IP地址, 可以认为就是你的电脑; 路由器:…

2.SpringBoot项目搭建

SpringBoot项目搭建 JavaEE对新手非常友好的 搭建框架。 集成了JavaEE开发中大部分的功能。 1.进行创建 2.进行配置 点击创建&#xff0c;springboot项目创建完成&#xff0c;下篇是安装lombok & maven镜像设置 设置完成后之后便可以启动项目了。 3.各个部分说明

【最新】如何在CSDN个人主页左侧栏添加二维码?侧边推广怎么弄?

目录 引言 效果展示 步骤讲解 引言 当你决定在CSDN上展示自己的技术才能和项目时&#xff0c;&#x1f4a1; 将你的个人主页变得更炫酷和引人注目是必不可少的&#xff01;在这篇博客中&#xff0c;我们将向你揭开神秘的面纱&#xff0c;教你如何在CSDN个人主页的左侧栏上添…

分享一款yyds!电子期刊制作网站

大家好&#xff0c;今天要跟大家分享一个超级赞的资源&#xff01;有没有曾经你苦苦寻找的那一款适合自己的电子期刊制作网站呢&#xff1f;下面就让我来给大家详细介绍一个非常棒的网站&#xff0c;有了它&#xff0c;你可以轻松制作出专业、精美的电子期刊&#xff01; 1.打开…

突破封锁|华为芯片10年进化史:从K3V1到麒麟9000S

华为海思麒麟芯片过去10年研发历程回顾如下&#xff1a; 2009年&#xff1a;华为推出第一款手机芯片K3V1&#xff0c;采用65nm工艺制程&#xff0c;基于ARM11架构&#xff0c;主频600MHz&#xff0c;支持WCDMA/GSM双模网络。这款芯片搭载在华为U8800手机上&#xff0c;标志着华…

基于时空注意力融合网络的城市轨道交通假期短时客流预测

导读 本论文于2023年发表于交通领域知名期刊《IEEE Intellgent Transportations Systems Magazine》上。该论文旨在研究节假日期间城市轨道交通进站流预测问题&#xff0c;通过搭建时空注意力融合网络&#xff0c;有效融合客流数据和节假日相关社交媒体数据&#xff0c;充分捕捉…

golang gin——文件上传(单文件,多文件)

文件上传 单文件上传 从form-data获取文件 package uploadimport ("github.com/gin-gonic/gin""net/http" ) // 单文件上传&#xff0c;多文件上传 func Upload(c *gin.Context) {file, _ : c.FormFile("file") // file为字段名dst : "…

Java课设 保存计算过程的计算器(附完整源码)

目录 前言calculator.javaMyForm.javamain.java 前言 这是一个保存计算过程的计算器&#xff0c;calculator.java中实现计算原理&#xff0c;MyForm.java中实现面板。效果如图&#xff1a; calculator.java import java.util.Stack;public class Calculator {public String c…

python 打包可执行文件-pyinstaller详解

python 打包可执行文件-pyinstaller详解 引言一、参数详解二、优化代码三、体积压缩 引言 pyinstaller是一个将python程序打包成独立可执行文件&#xff08;exe&#xff0c;app等&#xff09;的工具&#xff0c;它具有跨平台兼容性&#xff0c;可以在windows&#xff0c;mac和…

苹果系统_安装matplotlib__pygame,以pycharm导入模块

为了更便捷、连贯的进行python编程学习&#xff0c;尽量在开始安装python软件时&#xff0c;将编辑器、模块一并安装好&#xff0c;这样能避免以后版本冲突的问题。小白在开始安装pycharm、pip、matplotlib往往会遇到一些问题&#xff0c;文中列示其中部分bug&#xff0c;供大家…

一文了解硬盘AFR年化故障率评估方式和预测方案

目前常用评价硬盘&#xff08;或者其他硬件产品&#xff09;有一个关键的指标就是年化故障率&#xff08;AFR&#xff09;。年化故障率&#xff08;AFR&#xff09;是一种衡量产品可靠性的指标&#xff0c;表示在一年内产品发生故障的概率。 除了年化故障率&#xff08;AFR&…

一文搞懂Java线程中断协商机制,如何优雅中断一个正在运行的线程?

文章目录 一、中断机制概述1、中断API2、什么是中断机制3、如何理解中断机制4、三大中断方法源码详解&#xff08;1&#xff09;interrupt()&#xff08;2&#xff09;interrupted()&#xff08;3&#xff09;isInterrupted()&#xff08;4&#xff09;注意&#xff01;不同jdk…

Electron笔记

基础环境搭建 官网:https://www.electronjs.org/zh/ 这一套笔记根据这套视频而写的 创建项目 方式一: 官网点击GitHub往下拉找到快速入门就能看到下面这几个命令了 git clone https://github.com/electron/electron-quick-start //克隆项目 cd electron-quick-start //…

阿里云服务器e系列是共享型?什么意思?

阿里云服务器经济型e实例是共享型云服务器&#xff0c;共享型实例采用非绑定CPU调度模式。每个vCPU会被随机分配到任何空闲CPU超线程上&#xff0c;不同实例vCPU会争抢物理CPU资源&#xff0c;并导致高负载时计算性能波动不稳定&#xff0c;有可用性SLA保证&#xff0c;但无性能…

【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)

一&#xff0c;VMware下载地址&#xff1a; 百度网盘链接链接&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https:/…

【开发篇】十六、SpringBoot整合JavaMail实现发邮件

文章目录 0、相关协议1、SpringBoot整合JavaMail2、发送简单邮件3、发送复杂邮件 0、相关协议 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;&#xff1a;简单邮件传输协议&#xff0c;用于发送电子邮件的传输协议POP3&#xff08;Post Office Protocol - Versi…

IPv6协议报文头

IPv6协议概述 IPv6&#xff08;Internet Protocol Version 6&#xff09;是网络层协议的第二代标准协议&#xff0c;也被成为IPng&#xff08;IP Next Generation&#xff09;。它是Internet工程任务组IETF&#xff08;Internet Engineering Task Force&#xff09;设计的一套…

ros2移植Apollo和autoware规控算法可跑工程

工程详细介绍请看&#xff1a; 自动驾驶路径规划控制ros移植Apollo和autoware规控算法可跑工程&#xff08;适合入门学习&#xff0c;科研和实战&#xff09; ros2的工程版本说明 之所以增加ros2版本&#xff0c;是因为想增加代码的工程应用性&#xff0c;其实对于科研来说并…