Python函数的基本使用(一)

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 10r4 = 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 + n2print("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 = 66print("end:", "1" * 10, num1)return num1r1 = 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 = 66print("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:returnprint("end~~~~~")  # 有执行的可能性,取决于if判断结果fun3_2(7)
5.3.3.2 return xxx
  • return作用:1、表示结束函数,2、同时将xxx数据返回到调用函数处
def fun3_3(a, b):total = a + breturn total# print("over~~~~~")  # 警告,该行代码永远不会执行r33 = fun3_3(34, 10)
print(r33)
  • 同一个函数中,根据条件的区分,可以设置多个 return xxx
def compare(num1, num2):if num1 > num2:return 1elif num1 < num2:return -1else:return 0print(compare(29, 18))
print(compare(66, 88))
print(compare(18, 18))
  • 上述函数代码可以优化,else可以省略
def compare1(num1, num2):if num1 > num2:return 1elif num1 < num2:return -1return 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 Truereturn Falser1 = 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 Truereturn Falsey1 = 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.hqwc.cn/news/245277.html

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

相关文章

【网络安全】虚假IP地址攻击如何防范?

在当今的网络时代&#xff0c;虚假IP地址攻击已成为一种新型的网络攻击方式&#xff0c;给网络安全带来了极大的威胁。那么&#xff0c;什么是虚假IP地址攻击&#xff1f;又如何进行溯源和防范呢&#xff1f;本文将为您揭开这一神秘面纱。 一、虚假IP地址攻击概述 虚假IP地址攻…

访问nginx报错404 Not Found nginx/1.24.0

问题引入 在Linux安装nginx&#xff0c;将其端口修改为非80端口后&#xff0c;在浏览器访问nginx报错404 Not Found nginx/1.24.0 解决方案 在/etc/nginx/nginx.conf配置文件中加入如下代码 location / {root /usr/share/nginx/html; # 静态文件的根目录index index.html …

无人机管控平台:打破通信限制 助力灾害救援

中国地域广阔&#xff0c;自然灾害频发&#xff0c;时常对通信基础设施造成破坏&#xff0c;传统无人机在紧急救援中受限。为有效解决这一问题&#xff0c;新一代无人机技术与应急通信系统融合形成无人机管控平台&#xff0c;不仅提供了高效的空中监测技术&#xff0c;还配备先…

了解大模型 RAG (Retrieval-Augmented Generation):大模型外挂知识库 (检索增强技术)

本心、输入输出、结果 文章目录 了解大模型 RAG &#xff08;Retrieval-Augmented Generation&#xff09;&#xff1a;大模型外挂知识库 &#xff08;检索增强技术&#xff09;前言什么是检索增强技术 RAG &#xff08;Retrieval-Augmented Generation&#xff09;检索增强技术…

Python基础学习

基础语法 字面量 什么是字面量&#xff1a; 在代码中&#xff0c;被写下来的固定的值&#xff0c;称为字面量 | 类型 | 描述 | 说明 | | — | — | — | | 数组&#xff08;Number&#xff09; | 整数 int | 整数 | | | 浮点型 float | 浮点数 | | | 复数 complex | 复数 如 …

力扣543. 二叉树的直径(java DFS解法)

Problem: 543. 二叉树的直径 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们…

JAVA全栈开发 day16_MySql01

一、数据库 1.数据储存在哪里&#xff1f; 硬盘、网盘、U盘、光盘、内存&#xff08;临时存储&#xff09; 数据持久化 使用文件来进行存储&#xff0c;数据库也是一种文件&#xff0c;像excel &#xff0c;xml 这些都可以进行数据的存储&#xff0c;但大量数据操作&#x…

【OpenCV】计算机视觉图像处理基础知识

目录 前言 推荐 1、OpenCV礼帽操作和黑帽操作 2、Sobel算子理论基础及实际操作 3、Scharr算子简介及相关操作 4、Sobel算子和Scharr算子的比较 5、laplacian算子简介及相关操作 6、Canny边缘检测的原理 6.1 去噪 6.2 梯度运算 6.3 非极大值抑制 6.4 滞后阈值 7、Ca…

在Word中移动页面主要靠导航窗格,有了它,移动页面就事半功倍

本文包括有关在Microsoft Word 2019、2016和Office 365中使用导航窗格移动页面以及复制和粘贴页面的说明。 如何设置导航窗格以重新排列页面 Microsoft Word并不将文档视为单独页面的集合,而是将其视为一个长页面。正因为如此,重新排列Word文档可能会很复杂。在Word中移动页…

【零基础入门Python】Python If Else流程控制

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Pythonhttps://blog.csdn.net/arthas777/category_12455877.html Python if语句 Python if语句的流程图 Python if语句示例 Python If-Else Statement Python if else语句的流程图 使用Python if-else语句 …

Cysteine Protease inhibitor半胱氨酸蛋白酶抑制剂

Cysteine Protease inhibitor 半胱氨酸蛋白酶抑制剂 921625-62-9 英文名称&#xff1a;Cysteine Protease inhibitor 中文名称&#xff1a;半胱氨酸蛋白酶抑制剂 化学名称&#xff1a;5-氨基-3-苯基-1,2,4-噻二唑 CAS&#xff1a;921625-62-9 外观&#xff1a;固体粉末 分子…

Net8 EFCore Mysql 连接

一、安装插件 Pomelo.EntityFrameworkCore.MySq (这里要选8.0.0以上版本低版本不支持.net8) 二、配置数据库连接串 appsettings.json 中配置数据库连接串 "ConnectionStrings": {"Connection": "server172.18.2.183;port3306;databasestudents;uid…