Python函数的基本使用(一)

news2025/1/10 11:15:41

Python函数的基本使用(一)

    • 一、函数概述
    • 二、函数的定义
      • 2.1 函数的语法
      • 2.2 语法说明
      • 2.3 函数定义的方式
      • 2.4 总结
    • 三、函数的调用
      • 3.1 函数调用语法
      • 3.2 语法说明
      • 3.3 函数调用
    • 四、函数的参数
      • 4.1 参数的分类
      • 4.2 必需参数
      • 4.3 默认值参数
      • 4.4 关键字参数
      • 4.5 不定长参数(可变参数)
    • 五、函数的返回值
      • 5.1 语法
      • 5.2 说明
      • 5.3 代码演示
        • 5.3.1 返回值的意义
        • 5.3.2 未设置返回值
        • 5.3.3 设置返回值
          • 5.3.3.1 return 单独使用时
          • 5.3.3.2 return xxx
        • 5.3.4 break和return 的区别
    • 六、函数的封装
      • 6.1 注意事项
      • 6.2 例题演示
        • 6.2.1 打印九九乘法表
        • 6.2.2 打印指定行数的九九乘法表
        • 6.2.3 判断一个数是否是偶数
        • 6.2.4 验证一个年是否是闰年
  • 欢迎使用Markdown编辑器
    • 新的改变
    • 功能快捷键
    • 合理的创建标题,有助于目录的生成
    • 如何改变文本的样式
    • 插入链接与图片
    • 如何插入一段漂亮的代码片
    • 生成一个适合你的列表
    • 创建一个表格
      • 设定内容居中、居左、居右
      • SmartyPants
    • 创建一个自定义列表
    • 如何创建一个注脚
    • 注释也是必不可少的
    • KaTeX数学公式
    • 新的甘特图功能,丰富你的文章
    • UML 图表
    • FLowchart流程图
    • 导出与导入
      • 导出
      • 导入

一、函数概述

​ 在一个完整的项目中,某些功能可能会被反复使用,如果将反复出现的代码封装成函数,以后如果要继续使用该功能则直接使用函数即可,另外,如果要修改需求,只需要修改函数即可

本质:对某些特殊功能的封装

函数的优点:

  • 简化代码结构,提高应用的模块性
  • 提高了代码的复用性
  • 提高了代码维护性

二、函数的定义

2.1 函数的语法

def  函数名(变量1,变量2....):
        函数体
        return   返回值

2.2 语法说明

  • def是一个关键字,是definition的缩写,专门定义函数
  • 函数名:遵循合法标识符的规则和规范即可,尽量做到见名知意,注意:和变量的定义类似,全部小写
  • (变量1,变量2…):被称为形式参数,是一个参数列表,都只是没有赋值的变量
  • 函数体:封装某些特殊的功能
  • return是一个关键字,表示返回,注意:只能用在函数中,表示结束函数,可以单独使用,也可以携带数据,当携带数据,则表示该函数的返回
  • 返回值:常量,变量,表达式
  • 函数的定义分为两部分:函数的声明函数的实现
  • 变量1,变量2… 和 return 返回值 可以根据具体的需求选择性的省略

2.3 函数定义的方式

  • 无参无返回值
def fun1():
    print("hello world 11111111")
  • 有参无返回值
def fun2(a, b):
    print("hello world 22222222")
  • 无参有返回值
def fun3():
    print("hello world 33333333")
    return "abc"
  • 有参有返回值
def fun4(x, y, z):
    print("hello world 44444444")
    return 10

2.4 总结

  • 函数名和变量名的本质是一样的,都是标识符
  • 定义函数之后,只是将函数加载到计算机内存中,此时函数体不会执行
  • 一个函数定义完毕之后,只有当函数被调用【使用函数】的时候,函数体才会被执行

三、函数的调用

3.1 函数调用语法

# 函数的定义
def  函数名(形参):
	pass

# 函数的调用
函数名(实参)

3.2 语法说明

  • 函数调用的本质:就是使用函数的过程,当然,同时需要注意传参的问题
  • 传参:在调用函数的过程中,实参给形参赋值的过程
  • 形参:形式参数,出现在函数的声明部分,实际上是一个变量,等待实参赋值【注意:形参本身可以赋值】
  • 实参:实际参数,出现在函数的调用部分,实际上是一个数据【常量,变量,表达式】,目的是为了给形参赋值

3.3 函数调用

  • 无参无返回值
def fun1():
    print("hello world 11111111")
   
# 函数的调用
fun1()
  • 有参无返回值

形参个数要和实参个数相等

def fun2(a, b):
    print("hello world 22222222")
    
# fun2()  # TypeError: fun2() missing 2 required positional arguments: 'a' and 'b'
fun2(1, 2)
  • 无参有返回值

有返回值,需要用一个变量来接受,此时该变量中存储的是函数的返回值

def fun3():
    print("hello world 33333333")
    return "abc"

r3 = fun3()  # 变量 = 函数() ,此时该变量中存储的是函数的返回值
print(r3)
  • 有参有返回值
def fun4(x, y, z):
    print("hello world 44444444")
    return 10

r4 = fun4(45, 3, 6)
print(r4)

四、函数的参数

4.1 参数的分类

  • 必需参数
  • 默认参数
  • 关键字参数
  • 不定长参数【可变参数】

4.2 必需参数

  • 必需参数必需传参,一定要注意实参和形参的数量匹配
  • 如果形参为空,则为空
  • 如果形参不为空,则实参和形参数量相等
  • 代码演示:
# 参数为空
def fun_a1():
    print("aaaaa____1111")

# 形参为空,实参为空
fun_a1()

# 参数不为空
def fun_a2(n1, n2):
    total = n1 + n2
    print("aaaaa____2222")

# 形参和实参数量相等
fun_a2(10, 20)

4.3 默认值参数

  • 默认值参数:给行参一个默认值
  • 默认参数主要体现在形参上
  • 当形参为多个参数时,可以全部设置成默认值参数
  • 当形参中有默认值参数时,默认值参数必需放在后面,否则将出错
  • 默认参数的好处:给参数一个默认值,可以简化函数的调用
  • 代码演示:
# 注意:默认参数主要体现在形参上,表示形参有默认值
# 默认参数的好处:给参数一个默认值,可以简化函数的调用
# 需求:求一个数和10的和
def b1(a, b=10):
    print(f"{a}+{b}的结果为{a + b}")


b1(45)  # 只需要传入a的值
b1(45, 67)


# 当形参为多个参数时,可以全部设置成默认值参数
def b2(a=20, b=10):
    print(f"{a}+{b}的结果为{a + b}")


b2()
b2(45)  # 按顺序传入参数
b2(45, 67)


# 当形参中有默认值参数时,默认值参数必需放在后面,否则将出错
# def b3(b=10, a):  # SyntaxError: non-default argument follows default argument
#     print(f"{a}+{b}的结果为{a + b}")

4.4 关键字参数

  • 关键字参数主要体现在函数的调用上,实参上
  • 使用关键字的好处,可以不按照形参的顺序传参
  • 关键字参数可以和默认值参数混合使用
  • 使用关键字参数,必须放在后面
  • 代码演示:
# 3.关键字参数
# 注意:关键字参数体现在函数的调用上,使用关键字的好处,可以不按照形参的顺序传参
def c1(name, age):
    print(f"姓名:{name},年龄:{age}")


c1("张三", 20)  # 默认顺序传参
c1(age=33, name="赵六")  # 不按照形参的顺序传参


def c2(name, age, addr="北京"):	# 关键字参数可以和默认值参数混合使用
    print(f"姓名:{name},年龄:{age},地址:{addr}")


c2("ana", 5)
c2(age=5, name="ana", addr="上海")

4.5 不定长参数(可变参数)

  • 实参可以传递若干个数据
  • *:被当做元组处理,一般后面的变量命名使用args
  • ** :被当做字典处理,一般后面的变量命名使用kwargs
  • 在同一个函数中,同种符号只能出现一次,但是*和**可以同时出现
  • 代码演示:
# 4. 不定长参数【可变参数】
# 注意:实参可以传递若干个数据
# a.*:被当作元组处理
def d1(*args):
    print(args)  # (45,)
    print(type(args))  # <class 'tuple'>


d1()
d1(45)
d1(34, 56, 78, 8, 990, 0, 0, 35, 45, 7)


# b.**:被当作字典处理
# 注意:调用有**x形式参数的函数时,需要按照key=value形式传参
def d2(**kwargs):
    print(kwargs)
    print(type(kwargs))


d2()
d2(x=4, y=2, z=24)  # {'x': 4, 'y': 2, 'z': 24},类似于字典的创建在


# 注意:在同一个函数中,同种符号只能出现一次,但是*和**可以同时出现
def d3(*args, **kwargs):
    print(args, kwargs)


d3(34, 5, 7, 8, 89, 98, 0, 0)
d3(a=10)
d3(34, 5, 7, 8, 89, 98, 0, 0, abc=49

五、函数的返回值

5.1 语法

def xxx(形参):
	函数体【某个特殊的功能】
return 返回值

5.2 说明

返回值:表示函数的运算结果,在哪里调用函数,返回值就返回到哪里

5.3 代码演示

5.3.1 返回值的意义
def func2():
    print("start:", "1" * 10)
    # 在函数内定义一个变量(局部变量)
    num1 = 66
    print("end:", "1" * 10, num1)
    return num1


r1 = func2()  # 调用了fun2函数,将func2函数的返回值赋值给r1
print(f"返回值{r1}")

print(func2() + 10)  # 调用了fun2函数,同时将函数的返回值和10进行运算

func2()  # 不需要在函数外面使用返回值,则只需要调用函数即可

注:在函数内部定义的变量,只能在当前函数的内部被访问,这里涉及到变量的作用域

函数体外使用函数内的变量,将报错: NameError: name ‘num1’ is not defined

# 定义函数
def func1():
    print("start:", "1" * 10)
    # 在函数内定义一个变量(局部变量)
    num1 = 66
    print("end:", "1" * 10, num1)


# 调用函数
func1()
# func1(num1)  # NameError: name 'num1' is not defined
5.3.2 未设置返回值

注:如果一个函数未通过return设置返回值,默认的返回值为None

def func3():
    print("2" * 10)


r2 = func3()
print(r2)  # None:空值

上诉代码等价于

def func4():
    print("2" * 10)
    return None
5.3.3 设置返回值
5.3.3.1 return 单独使用时
  • return只能用在函数中,表示结束函数
def fun3_1():
    print("start~~~~~")
    return
    # print("end~~~~~")  # 警告,该行代码永远不会执行


fun3_1()
  • 在函数中,和return平级(即对齐)的情况下,return后面不书写任何语句,否则永远没有执行的机会。
def fun3_2(n):
    print("start~~~~~")
    if n % 2 == 0:
        return
    print("end~~~~~")  # 有执行的可能性,取决于if判断结果


fun3_2(7)
5.3.3.2 return xxx
  • return作用:1、表示结束函数,2、同时将xxx数据返回到调用函数处
def fun3_3(a, b):
    total = a + b
    return total
    # print("over~~~~~")  # 警告,该行代码永远不会执行


r33 = fun3_3(34, 10)
print(r33)
  • 同一个函数中,根据条件的区分,可以设置多个 return xxx
def compare(num1, num2):
    if num1 > num2:
        return 1
    elif num1 < num2:
        return -1
    else:
        return 0


print(compare(29, 18))
print(compare(66, 88))
print(compare(18, 18))
  • 上述函数代码可以优化,else可以省略
def compare1(num1, num2):
    if num1 > num2:
        return 1
    elif num1 < num2:
        return -1
    return 0

  • return后面还可以接多个数据
def fun3_4():
    return 1, 234, 45.34, "abc"  # 结果为元组,打包


r34 = fun3_4()
print(r34)
5.3.4 break和return 的区别
  • break结束当前循环,break只能使用在循环中,表示结束当前循环
def fun4_1():
    print("start~~~~~")
    for n in range(3):
        for m in range(5):
            print(n, m)
            if m == 1:
                break  # break结束当前循环,break只能使用在循环中,表示结束当前循环
    print("end~~~~~")


fun4_1()
  • return只能使用在函数中,表示结束函数,无论return处于多少层循环中
def fun4_2():
    print("start~~~~~")
    for n in range(3):
        for m in range(5):
            print(n, m)
            if m == 1:
                return  # return只能使用在函数中,表示结束函数,无论return处于多少层循环中
    print("end~~~~~")


fun4_2()

六、函数的封装

6.1 注意事项

  • 观察需求,是否有未知项参与运算,如果有,则将未知项设置为参数
  • 观察需求,函数执行完毕之后,是否有结构,如果有,则将结果设置为返回值

6.2 例题演示

6.2.1 打印九九乘法表

def my_print():
    for i in range(1, 10):
        for j in range(1, i + 1):
            print(f"{j} * {i} = {j * i}", end="\t")
        print()


my_print()
6.2.2 打印指定行数的九九乘法表
def my_print2(n):
    for i in range(1, n + 1):
        for j in range(1, i + 1):
            print(f"{j} * {i} = {j * i}", end="\t")
        print()


my_print2(3)
my_print2(5)
6.2.3 判断一个数是否是偶数
def iseven(num):
    if num % 2 == 0:
        return True
    return False


r1 = iseven(6)
print(r1)
r2 = iseven(7)
print(r2)
6.2.4 验证一个年是否是闰年
def isleapyaer(year):
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        return True
    return False


y1 = isleapyaer(100)
print(y1)

这里写自定义目录标题

    • 一、函数概述
    • 二、函数的定义
      • 2.1 函数的语法
      • 2.2 语法说明
      • 2.3 函数定义的方式
      • 2.4 总结
    • 三、函数的调用
      • 3.1 函数调用语法
      • 3.2 语法说明
      • 3.3 函数调用
    • 四、函数的参数
      • 4.1 参数的分类
      • 4.2 必需参数
      • 4.3 默认值参数
      • 4.4 关键字参数
      • 4.5 不定长参数(可变参数)
    • 五、函数的返回值
      • 5.1 语法
      • 5.2 说明
      • 5.3 代码演示
        • 5.3.1 返回值的意义
        • 5.3.2 未设置返回值
        • 5.3.3 设置返回值
          • 5.3.3.1 return 单独使用时
          • 5.3.3.2 return xxx
        • 5.3.4 break和return 的区别
    • 六、函数的封装
      • 6.1 注意事项
      • 6.2 例题演示
        • 6.2.1 打印九九乘法表
        • 6.2.2 打印指定行数的九九乘法表
        • 6.2.3 判断一个数是否是偶数
        • 6.2.4 验证一个年是否是闰年
  • 欢迎使用Markdown编辑器
    • 新的改变
    • 功能快捷键
    • 合理的创建标题,有助于目录的生成
    • 如何改变文本的样式
    • 插入链接与图片
    • 如何插入一段漂亮的代码片
    • 生成一个适合你的列表
    • 创建一个表格
      • 设定内容居中、居左、居右
      • SmartyPants
    • 创建一个自定义列表
    • 如何创建一个注脚
    • 注释也是必不可少的
    • KaTeX数学公式
    • 新的甘特图功能,丰富你的文章
    • UML 图表
    • FLowchart流程图
    • 导出与导入
      • 导出
      • 导入

欢迎使用Markdown编辑器

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

2014-01-07 2014-01-09 2014-01-11 2014-01-13 2014-01-15 2014-01-17 2014-01-19 2014-01-21 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

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

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

相关文章

【每日OJ —— 101. 对称二叉树】

每日OJ —— 101. 对称二叉树 1.题目&#xff1a;101. 对称二叉树2.解法2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目&#xff1a;101. 对称二叉树 2.解法 2.1.算法讲解 1.该题是判断二叉树是否对称&#xff0c;关键在于&#xff0c;左子树等于右子树&#xff0c;而所给的…

【Linux | 编程实践】防火墙 (网络无法访问)解决方案 Vim常用快捷键命令

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

前端项目中获取浏览器版本的方法

在我们的前端项目中&#xff0c;navigator.userAgent属性含有当前浏览器相关信息&#xff08;比如版本号&#xff09;。 所以当我们想要获取用户当前访问的浏览器的版本时直接去解析navigator.userAgent字段就中。 废话不多说&#xff0c;下面看封装的获取浏览器版本的函数&am…

git的安装及ssh配置(Linux)

环境 CentOS Linux release 7.9.2009 (Core) Xftp7 安装 方法一&#xff1a;yum安装 yum是一个客户端软件&#xff0c;就好比手机上的应用商店&#xff0c;帮助我们对软件的下载、安装和卸载 1、首先查看自己是否安装过git [rootxiaoxi ~]# git -bash: git: command not fo…

【ArcGIS Pro微课1000例】0046:深度学习--汽车检测

本实验讲述ArcGIS Pro中人工智能深度学习应用之–汽车检测。 文章目录 一、学习效果二、工具介绍三、案例实现四、注意事项一、学习效果 采用深度学习工具,可以很快速精准的识别汽车。 案例一: 案例二: 下面讲解GIS软件实现流程。 二、工具介绍 该案例演示的是ArcGIS Pro中…

基于java技术的电子商务支撑平台

摘 要 随着网络技术的发展&#xff0c;Internet变成了一种处理日常事务的交互式的环境。互联网上开展各种服务已经成为许多企业和部门的急切需求。Web的普遍使用从根本上改变了人们的生活方式、工作方式&#xff0c;也改变了企业的经营方式和服务方式。人们可以足不出户办理各…

网络层之SDN基本概念、路由算法和路由协议

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

免费百度SEO优化工具,百度SEO优化排名工具

百度SEO关键词工具 让我们聚焦在百度SEO关键词工具上。对于任何想要在百度搜索引擎中脱颖而出的网站管理员而言&#xff0c;深入了解用户搜索习惯和关键词的选择是至关重要的。 百度SEO关键词工具不仅提供了免费的服务&#xff0c;而且功能强大。通过输入相关领域的关键词&…

前缀和列题AcWing795

import java.io.*;//前缀和:改题目要求 求一串整数数列中l~r中的数的和 //可以提前算好前n项的和s[n],然后用s[n] - s[n - 1]public class Main {static int n,m,l,r;static int N 100010;static BufferedReader in new BufferedReader(new InputStreamReader(System.in));st…

基于springboot 图书馆管理系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

Rust UI开发(五):iced中如何进行页面布局(pick_list的使用)?(串口调试助手)

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 这是一个系列博文&#xff0c;本文是第五篇&#xff0c;前四篇链接&#xff1a; 1、Rust UI开发&#xff08;一&#xff09;&#xff1a;使用iced构建UI时…

GEE:使用Roberts算子卷积核进行图像卷积操作

作者:CSDN @ _养乐多_ 本文将深入探讨边缘检测中的一个经典算法,即Roberts算子卷积。我们将介绍该算法的基本原理,并演示如何在Google Earth Engine中应用Roberts算子进行图像卷积操作。并以试验区NDVI为例子,研究区真彩色影像、NDVI图像以及卷积结果如下所示, 文章目录 …

debian系统突然启动不成功或进不去图形界面,内存饱满

debian系统突然启动不成功或进不去图形界面,内存饱满 如果登陆不进去&#xff0c;输入密码后一直提示 Xsession :warning:unable to write to /tmp; X session may exit with an error。 可能是硬盘满了。 还有一种可能&#xff0c;连登陆的图形界面都没进去&#xff0c;开机后…

凌恩生物福利第二弹:转发送书!全方位多组学研究解决方案!

研究微生物的组学有很多种&#xff0c;都能在研究中提供研究所需的信息&#xff0c;然而随着科学研究的发展过程&#xff0c;单一的微生物组学研究已很难系统地阐释其生物过程的发生机制与发展变化&#xff0c;微生物与宿主&#xff0c;环境之间的整体性和复杂性&#xff0c;需…

数据库之 redis

前言&#xff1a; 就学习爬虫而言&#xff0c;对于三种常见的数据库做个基本了解足以&#xff0c;所以笔记都是浅尝辄止&#xff0c;不会涉及太深入的东西。 redis简介 Redis&#xff08;Remote Dictionary Server &#xff0c;远程字典服务&#xff09; 是一个使用ANSI C编写…

SpringBoot框架结合Redis实现分布式锁

一、SpringBoot结合 Redis实现分布式锁 1.1、什么是分布式锁 分布式锁&#xff0c;是在分布式的环境下&#xff0c;才会使用到的一种同步访问机制&#xff0c;在传统的单体环境里面&#xff0c;不存在分布式锁的概念&#xff0c;只有在分布式环境里面&#xff0c;才有分布式锁…

机器人制作开源方案 | 校园餐具回收分类机器人

作者&#xff1a;梁桥、吴振宇、凌福海、李清轩、姜晓敏 单位&#xff1a;华北科技学院 指导老师&#xff1a;韩红利、张伟杰 1. 场景调研 1.1 项目实施目的 受新冠病毒引起的影响&#xff0c;人们生产生活发生了巨大的改变。现处于疫情防控常态化阶段&#xff0c;为应对点状…

基于Python实现的滑动验证码自动识别工具源码

滑动验证码识别 今天的目标地址是字节的巨量纵横&#xff0c;目前东家是一家广告营销型的公司&#xff0c;专注于在各大平台投放信息流广告。巨量纵横为字节跳动的广告平台&#xff0c;用于管理推广账户。今天破解一下这个平台的登陆入口&#xff0c;为今后的数据爬取开个头。…

IEEE 机器人最优控制开源库 Model-based Optimization for Robotics

系列文章目录 文章目录 系列文章目录前言一、开源的库和工具箱1.1 ACADO1.2 CasADi1.3 Control Toolbox1.4 Crocoddyl1.5 Ipopt1.6 Manopt1.7 LexLS1.8 NLOpt1.9 qpOASES1.10 qpSWIFT1.11 Roboptim 二、其他库和工具箱2.1 MUSCOD2.2 OCPID-DAE12.3 SNOPT 前言 机器人&#xff…

网工学习9-STP配置(二)

如图 1 所示&#xff0c;当前网络中存在环路&#xff0c; SwitchA 、SwitchB 、SwitchC 和 SwitchD 都运行 STP&#xff0c;通过 彼此交互信息发现网络中的环路&#xff0c;并有选择的对某个端口进行阻塞&#xff0c;最终将环形网络结构修剪成无 环路的树形网络结构&#xff…