用“平面两点距离”求三角形面积,再用“三角形面积”多边形面积

news2024/12/26 21:47:20

不小于 3 边的多边形,都可以任一顶点发出的边切分为 n - 2 个三角形。


【学习的细节是欢悦的历程】

  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室
等风来,不如追风去……


用“三角形面积”求任意大于 3+2 边的多边形
用“两点距离”求三角形面积
(都可以任一顶点发出的边切分为 n-2 个三角形)


本文质量分:

91
本文地址: https://blog.csdn.net/m0_57158496/article/details/130694467

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆  用“平面两点距离”求多边形面积
    • 0、题目描述
    • 1、求平面两点距离
      • 1.1 两点距离公式
      • 1.2 Python 代码
    • 2、用“平面两点距离”求三角形面积
      • 2.1 三角形面积公式——海伦公式
      • 2.2 Python 代码
    • 3、用“三角形面积”求五边形面积
      • 3.0 解题思路
      • 3.1 Python 代码
      • 3.2 代码运行效果截屏图片
    • 3、用“三角形面积”求多边形面积
      • 4.0 解题思路
      • 4.1 Python 代码
      • 4.2 代码运行效果截屏图片
      • 4.3 我的代码优化与缺陷
    • 5、完整源码


◆  用“平面两点距离”求多边形面积


0、题目描述


  建立一个自定义模块 myFuncs.py 在里面编写一个求两点距离的函数 distance ,然后再在这个文件中利用这个 distance 函数编写一个求三角形面积的函数 TriangleArea 。
  在 exec.py 中导入 myFuncs 模块,输入或赋值五边形的五点坐标,利用 TriangleArea 函数求出并打印五边形面积。

三角形面积可以使用海伦公式——
  假设在平面内,有一个三角形,边长分别为a、b、c,三角形的面积 S 可由以下公式求得:

S = sqrt(p(p-a)(p-b)(p-c))

而公式里的 p 为半周长:p = (a+b+c)/2



回页目录

1、求平面两点距离

1.1 两点距离公式


在这里插入图片描述

1.2 Python 代码


def distance(p1, p2):
    ''' 据点坐标求平面两点距离 '''
    return sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)

  函数只有一条语句,也可以写成单行匿名函数 lambda ——


distance = lambda p1, p2: sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)

  • 代码运行效果截屏图片在这里插入图片描述
    在这里插入图片描述


回页目录

2、用“平面两点距离”求三角形面积

2.1 三角形面积公式——海伦公式

  三角形面积公式,“海伦公式”题目描述中已经给出。

S = sqrt(p(p-a)(p-b)(p-c))

而公式里的 p 为半周长:p = (a+b+c)/2

2.2 Python 代码


def trianglearea(*p: tuple) -> float:
    ''' 据点坐标求三角形面积 '''

    if len(p) != 3:
        input(f"\n{'坐标参数错误!':^43}\n{'':~^50}\n{'任意键继续……':^45}")
        return

    p1, p2, p3 = p
    a, b, c = distance(p1, p2), distance(p1, p3), distance(p3, p2) # 调用两点距离函数求三角形三边。
    print('\n三角形边长:', a, b, c)
    p = sum([a, b, c])/2
    
    return sqrt(p * (p-a) * (p-b) * (p-c))

  • 代码运行效果截屏图片
    在这里插入图片描述
    在这里插入图片描述


回页目录

3、用“三角形面积”求五边形面积

3.0 解题思路

在这里插入图片描述
  如上图,五边形可以由一个顶点引出到另外顶点的线段切分成三个三角形,三个三角形面积总和即是五边形的面积。

3.1 Python 代码

exec.py 文件内容——
在这里插入图片描述

#!/sur/bin/nve python
# coding: utf-8
import myFuncs as myfun # 载入自定义模块 myFuncs.py 。

p1 = (-2, 7)
p2 = (4.9, 6.8)
p3 = (7, 2.5)
p4 = (2, -3)
p5 = (-3, 0)

p = '\n'.join(map(str, [p1, p2, p3, p4, p5])) # 格式化输出五边形顶点座标。
s = sum([myfun.trianglearea(p1, p2, p3), myfun.trianglearea(p1, p3, p4), myfun.trianglearea(p1, p4, p5)]) # 计算五边形切分的三个三角形面积总和。

print(f"\n\n五边形顶点坐标:\n{p}\nS[p1~p5] = {s:.2f}\n")

3.2 代码运行效果截屏图片

在这里插入图片描述



回页目录

3、用“三角形面积”求多边形面积

4.0 解题思路

  不小于 3 边的 n 边形,都可以任一顶点发出的边切分为 n - 2 个三角形。

4.1 Python 代码


def polygon_area(*p) -> float:
    ''' 据顶点坐标求多边形面积 '''
    n = len(p)

    if len(p) < 3:
        p = ' ' + ', '.join(map(lambda x: str(x), p)) + ' '
        print(f"\n{p:~^50}\n\n{f'您给出 {n} 个点,多边形不能少于三个顶点!':^32}\n\n{'':~^50}\n")
        return

    index_chars = '一二三四五六七八九十ⅪⅫ'
    char = index_chars[n-1] if n < 13 else n # 多边形边数小于13,替换成中文字符打印。
    print(f"\n{f' {char}边形可以分割成 {n-2} 个三角形 ':~^38}")
    s = 0 # 多边形面积初值。
    
    for i in range(3, n+1):
        stri = trianglearea(p[0], p[i-2], p[i-1])
        print(f"{'面积:':>9}{stri}")
        s += stri

    p = '\n'.join(map(lambda x: f"{str(x):>22}", p)) # 格式化输出五边形顶点座标。
    print(f"\n{char}边形顶点坐标:\n{p}\n")

    return s

4.2 代码运行效果截屏图片

  • 用“求 n 边形面积”函数求三角形面积
    在这里插入图片描述

  • 求四边形面积
    在这里插入图片描述

  • 求五边形面积
    在这里插入图片描述

  • 求六边形面积
    在这里插入图片描述

  • 求七边形面积
    在这里插入图片描述

  • 求八边形面积
    在这里插入图片描述

  • 也可以设定小数位数的在这里插入图片描述

4.3 我的代码优化与缺陷

  • 优化

  多边形有好多顶点,就有好多条边。从 n 个顶点的一个顶点连到下一个顶点,最后回到起点围成的多边形就是 n 边形。我用了一个“中文字典”,更替了“ N 边形面积”中的 N ,让显示更好看。 Python 代码——


    index_chars = '一二三四五六七八九十ⅪⅫ'
    char = index_chars[n-1] if n < 13 else n # 多边形边数小于13,替换成中文字符打印。
    print(f"\n{f' {char}边形可以分割成 {n-2} 个三角形 ':~^38}")


  • 缺陷

  我的代码,设置了“检查参数顶点个数不符”的语句,让代码更“暖心”。 Python 代码——

a. 三角形面积函数


    if n != 3:
        p = ' ' + ', '.join(map(lambda x: str(x), p)) + ' '
        print(f"\n{p:~^50}\n\n{f'您给出 {n} 个点,三角形有且只有三个顶点!':^32}\n\n{'':~^50}\n")
        return

在这里插入图片描述
在这里插入图片描述

b. 多边形面积函数


    if len(p) < 3:
        p = ' ' + ', '.join(map(lambda x: str(x), p)) + ' '
        print(f"\n{p:~^50}\n\n{f'您给出 {n} 个点,多边形不能少于三个顶点!':^32}\n\n{'':~^50}\n")
        return

在这里插入图片描述

  我的代码,只可以检查参数顶点坐标的个数不符,但不会检查参数顶点坐标的“有效”性。所以,当且仅当参数顶点坐标有效,才可以输出正确的多边形面积。



回页目录

5、完整源码

(源码较长,点此跳过源码)

  • myFuncs.py 文件内容——
#!/sur/bin/nve python
# coding: utf-8
from math import sqrt # 载入开平方方法 math.sqrt()


'''

filename = 'myFuncs.py'

'''

def distance(p1, p2):
    ''' 据点坐标求平面两点距离 '''
    return sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)


distance = lambda p1, p2: sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)



def trianglearea(*p: tuple) -> float:
    ''' 据点坐标求三角形面积 '''
    n = len(p)

    if n != 3:
        p = ' ' + ', '.join(map(lambda x: str(x), p)) + ' '
        print(f"\n{p:~^50}\n\n{f'您给出 {n} 个点,三角形有且只有三个顶点!':^32}\n\n{'':~^50}\n")
        return

    p1, p2, p3 = p
    a, b, c = distance(p1, p2), distance(p1, p3), distance(p3, p2) # 调用两点距离函数求三角形三边。
    print(f"\n三角形边长:{a:.2f}, {b:.2f}, {c:.2f}")
    p = sum([a, b, c])/2
    
    return sqrt(p * (p-a) * (p-b) * (p-c))


def polygon_area(*p) -> float:
    ''' 据顶点坐标求多边形面积 '''
    n = len(p)

    if len(p) < 3:
        p = ' ' + ', '.join(map(lambda x: str(x), p)) + ' '
        print(f"\n{p:~^50}\n\n{f'您给出 {n} 个点,多边形不能少于三个顶点!':^32}\n\n{'':~^50}\n")
        return

    index_chars = '一二三四五六七八九十ⅪⅫ'
    char = index_chars[n-1] if n < 13 else n # 多边形边数小于13,替换成中文字符打印。
    print(f"\n{f' {char}边形可以分割成 {n-2} 个三角形 ':~^38}")
    s = 0 # 多边形面积初值。
    
    for i in range(3, n+1):
        stri = trianglearea(p[0], p[i-2], p[i-1])
        print(f"{'面积:':>9}{stri:.2f}")
        s += stri

    p = '\n'.join(map(lambda x: f"{str(x):>22}", p)) # 格式化输出五边形顶点座标。
    print(f"\n{char}边形顶点坐标:\n{p}\n")

    return s


if __name__ == '__main__':
    '''p1, p2 = (0, 0), (5, 0)
    p1, p2 = (3, 0), (0, 4)
    print(f"\n两点距离:({p1}, {p2}] = {distance(p1, p2):.2f}")
    p = (0, 0), (0, 3), (4, 0)
    p = (2, 5), (-3, 3), (4, 8)
    print(f"\nS△[{p}] = {trianglearea(*p):.2f}\n")'''
    p = (0, 0), (0, 3)
    '''p = (0, 0), (0, 3), (4, 0)
    p = (-5, -2), (-5, 2), (8, -2), (8, 2)
    p = (0, -6), (-4, 2), (0, 3), (3, 3), (4, 0)
    p = (-3, 7), (-6, -9), (0, -6), (-6, 10), (8, 8), (18, 4)
    p = (-3, 7), (-2, 13), (-6, -9), (0, -6), (-6, 10), (8, 8), (18, 4)
    p = (0, -6), (-6, -6), (-6, 0), (-6, 6),  (6, 0), (6, 6), (6, 0), (6, -6)'''
    s = polygon_area(*p)
    s = f' 面积:{s:.2f}' if s else f' 面积:{s} '
    print(f"{s:~^47}\n")
    s = trianglearea(*p)
    s = f"{s:.2f}" if s else s
    print(f"{'面积:':>9}{s}\n")

  • exec.py 文件内容——
#!/sur/bin/nve python
# coding: utf-8
import myFuncs as myfun # 载入自定义模块 myFuncs.py 。

p1 = (-2, 7)
p2 = (4.9, 6.8)
p3 = (7, 2.5)
p4 = (2, -3)
p5 = (-3, 0)

p = '\n'.join(map(str, [p1, p2, p3, p4, p5])) # 格式化输出五边形顶点座标。
s = sum([myfun.trianglearea(p1, p2, p3), myfun.trianglearea(p1, p3, p4), myfun.trianglearea(p1, p4, p5)]) # 计算五边形切分的三个三角形面积总和。

print(f"\n\n五边形顶点坐标:\n{p}\nS[p1~p5] = {s:.2f}\n")


回页首

上一篇:  用 Python 写抽奖程序(一共 10 人参与抽奖,四人中奖,其中一人固定不变)
下一篇: 

我的HOT博:

  本次共计收集 204 篇博文笔记信息,总阅读量 33.27w,平均阅读量 1630。已生成 21 篇阅读量不小于 3000 的博文笔记索引链接。数据采集于 2023-05-14 05:38:11 完成,用时 4 分 7.18 秒。


  1. 让QQ群昵称色变的神奇代码
    ( 54164 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    点赞:24   踩 :0  收藏:79  打赏:0  评论:17
    本篇博文笔记于 2022-01-18 19:15:08 首发,最晚于 2022-01-20 07:56:47 修改。
  2. ChatGPT国内镜像站初体验:聊天、Python代码生成等
    ( 50877 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/129035387
    点赞:123   踩 :0  收藏:788  打赏:0  评论:75
    本篇博文笔记于 2023-02-14 23:46:33 首发,最晚于 2023-03-22 00:03:44 修改。
  3. pandas 数据类型之 DataFrame
    ( 8197 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    点赞:6   踩 :0  收藏:25  打赏:0  评论:0
    本篇博文笔记于 2022-05-01 13:20:17 首发,最晚于 2022-05-08 08:46:13 修改。
  4. 罗马数字转换器|罗马数字生成器
    ( 6422 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2022-01-19 23:26:42 首发,最晚于 2022-01-21 18:37:46 修改。
  5. Python字符串居中显示
    ( 6195 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    点赞:1   踩 :0  收藏:5  打赏:0  评论:1
    本篇博文笔记于 2021-12-26 23:35:29 发布。
  6. 个人信息提取(字符串)
    ( 5649 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    点赞:1   踩 :0  收藏:8  打赏:0  评论:0
    本篇博文笔记于 2022-04-18 11:07:12 首发,最晚于 2022-04-20 13:17:54 修改。
  7. 斐波那契数列的递归实现和for实现
    ( 5303 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122355295
    点赞:4   踩 :0  收藏:2  打赏:0  评论:8
    本篇博文笔记于 2022-01-06 23:27:40 发布。
  8. 练习:字符串统计(坑:f‘string‘报错)
    ( 4885 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121723096
    点赞:0   踩 :0  收藏:1  打赏:0  评论:0
    本篇博文笔记于 2021-12-04 22:54:29 发布。
  9. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
    ( 4612 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121645399
    点赞:14   踩 :0  收藏:42  打赏:0  评论:0
    本篇博文笔记于 2021-11-30 23:43:17 发布。
  10. 回车符、换行符和回车换行符
    ( 4397 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    点赞:0   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记于 2022-02-24 13:10:02 首发,最晚于 2022-02-25 20:07:40 修改。
  11. python清屏
    ( 4351 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    点赞:0   踩 :0  收藏:5  打赏:0  评论:0
    本篇博文笔记于 2021-10-14 13:47:21 发布。
  12. Python列表(list)反序(降序)的7种实现方式
    ( 3987 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    点赞:4   踩 :0  收藏:14  打赏:0  评论:8
    本篇博文笔记于 2022-12-11 23:54:15 首发,最晚于 2023-03-20 18:13:55 修改。
  13. 密码强度检测器
    ( 3903 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121739694
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2021-12-06 09:08:25 首发,最晚于 2022-11-27 09:39:39 修改。
  14. 罗马数字转换器(用罗马数字构造元素的值取模实现)
    ( 3824 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122608526
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2022-01-20 19:38:12 首发,最晚于 2022-01-21 18:32:02 修改。
  15. 练习:生成100个随机正整数
    ( 3668 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/122558220
    点赞:1   踩 :0  收藏:4  打赏:0  评论:0
    本篇博文笔记于 2022-01-18 13:31:36 首发,最晚于 2022-01-20 07:58:12 修改。
  16. 练习:班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)
    ( 3563 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124424935
    点赞:1   踩 :0  收藏:2  打赏:0  评论:0
    本篇博文笔记于 2022-04-26 12:46:25 首发,最晚于 2022-04-27 21:22:07 修改。
  17. 我的 Python.color() (Python 色彩打印控制)
    ( 3427 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    点赞:2   踩 :0  收藏:7  打赏:0  评论:0
    本篇博文笔记于 2022-02-28 22:46:21 首发,最晚于 2022-03-03 10:30:03 修改。
  18. 练习:仿真模拟福彩双色球——中500w巨奖到底有多难?跑跑代码就晓得了。
    ( 3237 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/125415626
    点赞:3   踩 :0  收藏:4  打赏:0  评论:3
    本篇博文笔记于 2022-06-22 19:54:20 首发,最晚于 2022-06-23 22:41:33 修改。
  19. 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
    ( 3097 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/124539589
    点赞:3   踩 :0  收藏:2  打赏:0  评论:3
    本篇博文笔记于 2022-05-02 13:02:39 首发,最晚于 2022-05-21 06:10:42 修改。
  20. Linux 脚本文件第一行的特殊注释符(井号和感叹号组合)的含义
    ( 3072 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/123087606
    点赞:0   踩 :0  收藏:4  打赏:0  评论:3
    本篇博文笔记于 2022-02-23 13:08:07 首发,最晚于 2022-04-04 23:52:38 修改。
  21. 练习:求列表(整数列表)平衡点
    ( 3030 阅读)
    博文地址:https://blog.csdn.net/m0_57158496/article/details/121737612
    点赞:0   踩 :0  收藏:0  打赏:0  评论:0
    本篇博文笔记于 2021-12-05 23:28:10 发布。
推荐条件 阅读量突破三千
(更多热博,请点击蓝色文字跳转翻阅)

回页首


老齐漫画头像

精品文章:

  • 好文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永久分享,点击跳转免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置对象理解python'
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法

来源:老齐教室


回页首

◆ Python 入门指南【Python 3.6.3】


好文力荐:

  • 全栈领域优质创作者——[寒佬](还是国内某高校学生)博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代码编写规范
  • Python的docstring规范(说明文档的规范写法)

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

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

相关文章

跟着我学 AI丨教育 + AI = 一对一教学

随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;它已经开始了改变教育的方式。本文将介绍AI在教育行业中的应用场景&#xff0c;当前从事AI 教育的公司有哪些以及这些公司所提供的教育产品的特点&#xff0c;和未来AI 教育的潜在实现方式。 AI在教育行业的…

【C++初阶】C/C++内存管理

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C初阶 ⭐代码仓库&#xff1a;C初阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…

【数据结构】一篇带你彻底了解栈

文章目录 栈的概念及结构栈接口的实现栈的初始化入栈出栈获取栈顶元素判断栈是否为空获取栈中有效元素个数栈的销毁 总结 栈的概念及结构 栈&#xff1a;一种线性数据结构&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶 (Top&…

Node.js 学习系列(三) —— REPL

Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境&#xff0c;类似 Windows 系统的终端或 Unix/Linux shell&#xff0c;可以在终端中输入命令&#xff0c;并接收系统的响应。 Node 自带了交互式解释器&#xff0c;可以执行以下任务&#xff1a; 读取 —…

Spring 初始导读

1.Spring初始 1. 为什么要学框架 学习框架相当于从"小作坊"到"工厂"的升级 , 小作坊什么都要做 , 工厂是组件式装配 , 特点就是高效. 2.框架的优点展示(SpringBoot Vs Servlet) 使用SpringBoot 项目演示框架相比 Servlet 所具备的以下优点: 无需配置 …

Three.js 实战【1】—— 3D全景视图开发

Three.js 实战【1】—— 3D全景视图开发 摘要 1、3D视图Demo2、准备工作——搭建好一个开发环境3、RGBELoader——高范围动态图像加载器4、HDR——高动态范围图像5、使用HDR实现3D全景视图6、直接通过图片纹理进行实现 摘要 在现代开发过程当中&#xff0c;3D开发是越来越不可…

find,which,whereis,grep,bc,uname,free,nano,history指令的语法,功能与选项等

Tips x86_64 与 x64 都是指 64位x86 指的是 32位 find指令的语法&#xff0c;功能与选项 语法&#xff1a;find 目录 -name 文件名功能&#xff1a;在指定的目录之下进行文件查找&#xff08;递归式查找&#xff09;选项&#xff1a;它的选项也非常多&#xff0c;讲个 -name…

【Java 基础】File IO流

文章目录 1. File1.1 File类概述和构造方法1.2 绝对路径和相对路径1.3 File 类的常用方法1.4 递归删除文件夹及其下面的文件 2. IO2.1 分类2.2 字节输出流2.3 字节输入流2.4 文件的拷贝2.5 文件拷贝效率优化2.6 释放资源2.7 缓冲流2.8 编码表 3. commons-io 工具包3.1 API 1. F…

VSCode中安装GPT插件详细教程+gpt4改进

目录 安装插件 A.安装CodeGPT B.安装chatgpt 1.VSCode安装插件&#xff0c;使用本地下载vsix文件 2.获取 ChatGPT API 密钥 3.配置settings.json gpt4和3.5对比 GPT-4主要有三大改进点 局限性 安装插件 AB功能一样&#xff0c;A安装的人最多&#xff0c;GPT具体功能可…

K8s之标签、Node选择器与亲和性详解

文章目录 一、标签1、标签是什么&#xff1f;2、给Pod打标签3、给Node节点打标签4、查看标签资源 二、Node选择器1、nodeName(指定Pod调度到指定Node节点)2、nodeSelector(指定Pod调度到具有指定标签的Node节点) 三、亲和性1、Node亲和性-nodeAffinity2、Pod亲和性-podAffinity…

软件测试项目实战经验附视频以及源码【医疗项目,社区管理,前后端分离项目,银行项目,金融项目,车载项目】

前言&#xff1a; ​​大家好&#xff0c;我是测试小马。 很多初学的测试小白都在烦恼找不到合适的项目去练习&#xff0c;这也是难倒大部分测试小白的一个很常见的问题&#xff0c;项目经验确实是每一个测试非常宝贵的经验&#xff01;这里小马哥给大家找了一些常用的项目合…

AJ-Captcha验证码使用教程源码解读

1.背景 验证码的主要作用是防止机器人恶意使用我们的程序........ 今天我们结束一款强大的验证码组件:aj-captcha 官方文档:AJ-Captcha在线体验 大家一定要认真阅读官方文档 2.项目启动与快速测试 启动后端: 快速页面测试: 使用浏览器访问这个页面 有修改后端源码的情况…

MySQL触发器Trigger加载以及目前局限

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a; 亮文章来源&#xff1a;GreatSQL社区原创 概念介绍 首先需要知道MySQL中触发器特点&#xff0c;以及表table…

掌握这些技巧,让你的Facebook文案更具说服力!

面对广告瀑布流般的竞争&#xff0c;如何让自己的Facebook广告脱颖而出&#xff0c;吸引到用户的眼球&#xff0c;成为广告运营人员必须思考的问题。在这个过程中&#xff0c;文案的作用是至关重要的。 优秀的文案不仅可以吸引用户点击&#xff0c;还能让用户产生共鸣&#xf…

K8s scheduler 调度:预选和优选策略

1 环境准备 kube-scheduler是k8s的核心组件之一&#xff0c;主要负责Pod的调度。scheduler通过监听kube-apiserver&#xff0c;查询未分配 Node的Pod&#xff0c;根据配置的调度策略&#xff0c;将Pod调度到最优的工作节点上&#xff0c;从而高效、合理地利用k8s集群资源。 在m…

shell之数组

一. 关于数组的命令 1. 定义数组 数组名(value0 value1 value2 …) arr(元素1 元素2 元素3 ...) echo ${arr[]}数组名([0]value [1]value [2]value…" arr ([下标1]值1 [下标2]值2 ....) echo ${array3[]}列表名"value0 value1 value2 list"值1 值2 值3 ..…

一文解读spring中事务管理

目录 声明式事务概念 事务基本概念 ①什么是事务 ②事务的特性 编程式事务 声明式事务 基于注解的声明式事务 准备工作 测试无事务情况 加入事务 Transactional的使用 事务属性&#xff1a;只读 事务属性&#xff1a;超时 事务属性&#xff1a;回滚策略 事务属性…

华为OD机试真题 Java 实现【寻找链表的中间结点】【2023Q1 100分】

一、题目描述 给定一个单链表 L&#xff0c;请编写程序输出 L中间结点保存的数据。如果有两个中间结点&#xff0c;则输出第二个中间结点保存的数据。 例如&#xff1a; 给定 L 为 1 -> 7 -> 5&#xff0c;则输出应该为 7; 给定 L 为 1 -> 2 -> 3 -> 4&#…

微服务简介,SpringCloud Alibaba Nacos的安装部署与使用,Nacos集成springboot实现服务注册

目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下&#xff1a; 1.2.分布式架构 分布式架构的优缺点&#xff1a; 1.3.微服务 微服务的架构特征&#xff1a; 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用安装部署服务注册 &am…

聊一聊适配器模式

接口不能用&#xff1f;行&#xff0c;我帮你适配 一、概述 适配器模式&#xff08;Adapter&#xff09;&#xff0c;是23种设计模式中的结构型模式之一&#xff1b;它就像我们电脑上接口不够时&#xff0c;需要用到的拓展坞&#xff0c;起到转接的作用。它可以将新的功能和原…