从零开始学习Python基础语法:打开编程大门的钥匙

在这里插入图片描述

文章目录

    • 一、引言
      • 1.1 Python作为一种流行的编程语言的介绍
      • 1.2 Python的应用领域和适用性
    • 二、为什么选择Python
      • 2.1 Python的简洁性和易读性
      • 2.2 Python的跨平台特性
    • 三、Python在数据科学和人工智能领域的应用
      • 3.1 第一个Python程序
        • 3.1.1 Hello, World!:编写并运行你的第一个Python程序
        • 3.1.2 注释:如何添加注释以提高代码可读性
      • 3.2 变量和数据类型
        • 3.2.1 变量的定义和赋值
        • 3.2.2 常见的数据类型:整数、浮点数、字符串、布尔值
        • 3.2.3 类型转换:如何在不同数据类型之间进行转换
      • 3.3 条件语句和循环
        • 3.3.1 if语句:根据条件执行不同的代码块
        • 3.3.2 for循环:遍历列表、元组等可迭代对象
        • 3.3.3 while循环:根据条件重复执行一段代码
      • 3.4 函数
        • 3.4.1 为什么使用函数:代码的组织和重用
        • 3.4.2 定义函数:如何定义和调用函数
        • 3.4.3 参数传递和返回值:函数的输入和输出
    • 四、 实践项目 : 创建一个简单的待办事项管理器
    • 五、总结

重温Python,适合新手搭建知识体系,也适合大佬的温故知新~

一、引言

1.1 Python作为一种流行的编程语言的介绍

Python是一种流行的高级编程语言,以其简洁、易读和强大的特性而备受开发者欢迎。它由Guido van Rossum1991年创建,并且在过去几十年中得到了广泛的发展和应用。

Python作为一种流行的编程语言的一些特点和优势

  1. 简洁易读:Python使用简洁的语法和清晰的代码结构,使得代码易于阅读和理解。这使得初学者可以很快上手,并且减少了开发过程中的错误。
  2. 多用途性:Python适用于各种不同领域的应用开发,包括Web开发、数据科学、人工智能、机器学习、网络编程等。它具有丰富的库和框架,提供了许多工具和功能,方便开发者快速构建各种应用。
  3. 跨平台性:Python可以在多个操作系统上运行,包括Windows、Linux和MacOS。这意味着你可以使用Python开发一次,然后在不同的平台上部署和运行。
  4. 强大的生态系统:Python拥有庞大而活跃的社区,提供了大量的第三方库和工具,可以帮助开发者解决各种问题。例如,NumPy、Pandas和Matplotlib等库可以帮助进行数据分析和可视化,Django和Flask等框架可以简化Web开发过程。
  5. 可扩展性:Python支持模块化和面向对象的编程,使得代码可以轻松地被重用和扩展。开发者可以通过编写自己的模块或使用其他人编写的模块来实现特定的功能。
  6. 学习资源丰富:由于Python的流行程度,有很多优质的教程、书籍和在线资源可供学习。这使得初学者可以很容易地找到学习材料,并且可以通过实践来提升自己的编程能力。

无论是初学者还是有经验的开发者,Python都是一个值得学习和掌握的编程语言。

1.2 Python的应用领域和适用性

主要的应用领域和适用性

  1. Web开发:Python在Web开发中有广泛的应用,特别是通过Django和Flask等框架。这些框架提供了快速、高效的开发方式,使开发者能够构建强大的Web应用程序。
  2. 数据科学和机器学习:Python在数据科学和机器学习领域非常流行。它提供了众多的库和工具,如NumPy、Pandas、Matplotlib和Scikit-learn等,可以进行数据处理、分析、可视化和机器学习建模。
  3. 科学计算和数值计算:Python被广泛用于科学计算和数值计算任务。NumPy和SciPy等库提供了大量的数学函数和算法,使得科学家和工程师能够进行复杂的数值计算和科学研究。
  4. 自动化和脚本编写:Python是一种强大的脚本语言,可以用于自动化各种任务和编写脚本。它可以简化重复性的工作,并提高工作效率。
  5. 游戏开发:Python可以用于游戏开发,尤其是通过Pygame库可以创建2D游戏。虽然不如其他专门的游戏引擎那样强大,但对于简单的游戏和原型开发来说是一个很好的选择。
  6. 网络编程:Python提供了强大的网络编程能力,可以用于构建服务器端应用、网络爬虫和网络安全工具等。
  7. 自然语言处理:Python在自然语言处理领域也很受欢迎。通过NLTK(Natural Language Toolkit)等库,可以进行文本处理、情感分析、机器翻译等任务。
  8. 图像处理和计算机视觉:Python的OpenCV库提供了丰富的图像处理和计算机视觉功能,使得开发者可以进行图像处理、模式识别和目标检测等任务。

Python在各种应用领域都有广泛的适用性,它的简洁性、易学性和丰富的库和工具使得开发者能够快速构建各种应用。无论是Web开发、数据科学、机器学习还是自动化脚本,Python都是一个强大而灵活的选择。

二、为什么选择Python

2.1 Python的简洁性和易读性

语法非常简单,代码结构清晰

  • Python使用缩进而不是大括号来表示代码块,这使得代码更加易于阅读和理解。
  • Python还有许多内置函数和数据类型,这些功能包可以快速完成复杂的任务。

命名规范也有助于提高代码的可读性

  • 变量名和函数名应该使用下划线分隔单词。
  • 类名应该使用驼峰式命名法。

Python还提供了大量的注释功能,这有助于开发人员在代码中添加注释来提供更多的上下文信息和解释,以帮助其他人更好地理解代码。

2.2 Python的跨平台特性

Python拥有强大的跨平台特性,无论是在Windows、Mac还是Linux等操作系统上,Python都可以轻松地运行。这意味着您可以在不同的平台上开发和运行相同的Python代码,而无需进行任何修改。

Python的跨平台特性得益于它的解释性语言特点。Python代码在运行之前会被解释器实时翻译成机器码,而不需要提前编译。这使得Python代码可以在不同的操作系统上执行,只要相应的Python解释器可用即可。(与Java类似)

三、Python在数据科学和人工智能领域的应用

3.1 第一个Python程序

3.1.1 Hello, World!:编写并运行你的第一个Python程序

在文本编辑器的基本流程

  1. 打开文本编辑器(如 Visual Studio Code 、Notepad、Sublime Text或PyCharm等)。
  2. 在编辑器中输入以下代码:
print("Hello, World!")
  1. 将文件保存为“hello.py”,确保文件类型是Python脚本文件。
  2. 在命令提示符或终端窗口中,导航到您保存的文件所在的目录。
  3. 运行以下命令来执行Python程序:
python hello.py
  1. 如环境配置没问题的话,将在命令提示符或终端窗口中看到Hello, World!的输出。
3.1.2 注释:如何添加注释以提高代码可读性

在Python中,用井号 # 来添加单行注释。

添加注释是一种良好的编程习惯,可以提高代码的可读性和可维护性,同时也能帮助其他人(包括您自己)更好地理解代码。

单行注释

# 这是一个简单的Python程序,用于计算并输出两个数字之和# 定义两个数字
a = 10
b = 20# 计算它们的和
sum = a + b# 输出结果
print("The sum of", a, "and", b, "is", sum)

多行注释

"""
这是一个多行注释
它可以包含多个行。
"""

注释用于解释代码的作用和意图,并提供有用的上下文信息,以帮助读者更好地理解代码。

3.2 变量和数据类型

3.2.1 变量的定义和赋值

使用变量来存储数据,并且不需要事先声明变量的类型,变量的定义和赋值可以在同一行或分开进行。

展示了变量的定义和赋值

# 定义变量并赋值(变量命名规则:不能以数字开头,不能包含空格或特殊字符)
# 对于整数和浮点数类型的变量,Python会自动根据赋值的值确定其类型
name = "Alice"
age = 25
height = 1.65# 输出变量的值
print("姓名:", name)
print("年龄:", age)
print("身高:", height)# 变量的类型是动态的,意味着可以在程序的执行过程中改变变量的值和类型
x = 5
print(x)  # 输出:5x = "Hello"
print(x)  # 输出:"Hello"
3.2.2 常见的数据类型:整数、浮点数、字符串、布尔值

数据类型的使用

# 整数
num1 = 10
num2 = -5# 浮点数
pi = 3.14159
temperature = 98.6# 字符串
name = "Alice"
message = 'Hello, world!'# 布尔值
is_true = True
is_false = False# 输出变量的值及其类型
# type()函数:查看变量的类型
print("整数:", num1, type(num1))
print("浮点数:", pi, type(pi))
print("字符串:", name, type(name))
print("布尔值:", is_true, type(is_true))# 输出的结果
整数: 10 <class 'int'>
浮点数: 3.14159 <class 'float'>
字符串: Alice <class 'str'>
布尔值: True <class 'bool'>
3.2.3 类型转换:如何在不同数据类型之间进行转换

类型转换函数

  • int():将一个值转换为整数类型。
  • float():将一个值转换为浮点数类型。
  • str():将一个值转换为字符串类型。
  • bool():将一个值转换为布尔值类型。

类型转换

# 整数转换(将字符串转换为整数,并将其与另一个整数相加)
num1 = 10
num2 = int("5")
sum = num1 + num2
print("整数转换:", sum)# 浮点数转换(将输入的字符串转换为浮点数,并计算圆的面积)
pi = 3.14159
radius = float(input("请输入圆的半径:"))
area = pi * radius**2
print("浮点数转换:", area)# 字符串转换(将输入的年龄转换为整数,并增加了5)
age = input("请输入年龄:")
age = int(age)
print("字符串转换:", age + 5)# 布尔值转换(将一个整数转换为布尔值,并判断其是否为偶数)
num = 10
is_even = bool(num % 2 == 0)
print("布尔值转换:", is_even)# 输出结果
整数转换: 15
请输入圆的半径:5.5
浮点数转换: 95.033185
请输入年龄:25
字符串转换: 30
布尔值转换: True

3.3 条件语句和循环

3.3.1 if语句:根据条件执行不同的代码块

if语句的基本语法

# condition是一个布尔表达式,用于判断条件是否为真
# 如果条件为真,则执行if代码块;否则,执行else代码块(可选)
if condition:# 如果条件为真,则执行这里的代码块
else:# 如果条件为假,则执行这里的代码块

if语句的使用:

# 判断奇偶数
num = int(input("请输入一个整数:"))
if num % 2 == 0:print(num, "是偶数")
else:print(num, "是奇数")# 判断成绩等级
score = int(input("请输入考试成绩:"))
if score >= 90:grade = "A"
elif score >= 80:grade = "B"
elif score >= 70:grade = "C"
elif score >= 60:grade = "D"
else:grade = "F"
print("成绩等级:", grade)# 输出结果
请输入一个整数:7
7 是奇数
请输入考试成绩:85
成绩等级: B
3.3.2 for循环:遍历列表、元组等可迭代对象

for循环的语法:

# variable是一个变量,用于存储可迭代对象中的每个元素
# iterable是一个可迭代对象,如列表、元组等
for variable in iterable:# 在这里执行循环体的代码块

for循环的使用:

# 遍历列表
fruits = ["apple", "banana", "orange"]
for fruit in fruits:print(fruit)# 遍历元组
numbers = (1, 2, 3)
for number in numbers:print(number)# 遍历字符串
name = "Tom"
for character in name:print(character)# 输出结果
apple
banana
orange
1
2
3
T
o
m
3.3.3 while循环:根据条件重复执行一段代码

while循环的语法

# condition是一个布尔表达式,用于判断是否继续执行循环
# 在每次循环开始时,会先判断`condition`的值
# 如果为真,则执行循环体的代码块
# 否则,跳出循环
while condition:# 在这里执行循环体的代码块

while循环的使用:

# 计数器循环
count = 0
while count < 3:print("Count:", count)count += 1# 用户输入循环
password = ""
while password != "secret":password = input("请输入密码:")
print("密码正确!")# 无限循环
while True:print("无限循环")# 输出结果
Count: 0
Count: 1
Count: 2
请输入密码:1234
请输入密码:secret
密码正确!
无限循环
无限循环
...

3.4 函数

3.4.1 为什么使用函数:代码的组织和重用

函数是一段可重用的代码块,用于执行特定的任务或计算,可以接收参数,可以返回值。

函数的优点

  1. 代码的组织性更好:将功能相似的代码块封装成函数,可以使程序的结构更清晰,更易于理解和维护。
  2. 避免重复代码:如果某些代码需要在多个地方使用,可以把它们封装成函数,减少重复的代码量,使程序更加简洁。
  3. 代码的可复用性更高:封装成函数的代码可以在不同的程序中复用,提高代码的可维护性和可重用性。
  4. 易于调试和测试:函数可以独立调试和测试,不会影响其他部分的代码,可以更快速、更有效地定位和修复问题。
  5. 提高代码的可读性:通过给函数取一个有意义的名字,可以让代码更加易懂,更容易理解代码的意图。
3.4.2 定义函数:如何定义和调用函数

使用def关键字来定义函数,函数的定义通常包括函数名、参数列表和函数体。

定义和调用一个简单的函数

# 定义一个函数,用于计算两个数的和
def add(x, y):result = x + yreturn result# 调用函数,并打印出结果
a = 10
b = 20
result = add(a, b)
print("计算结果:", result)# 输出结果
计算结果: 30

除了上面的例子位置参数外,还可以定义默认参数可变参数

  • 默认参数:可以为函数的参数指定默认值,在调用函数时可以省略这些参数。

    def greet(name, message="Hello"):print(message, name)greet("Alice")  # 输出:Hello Alice
    greet("Bob", "Hi")  # 输出:Hi Bob
  • 可变参数:在函数定义时,可以使用*args表示接收任意个数的位置参数,使用**kwargs表示接收任意个数的关键字参数。

    # *args表示接收任意个数的位置参数
    def multiply(*args):result = 1for num in args:result *= numreturn resultprint(multiply(2, 3, 4))  # 输出:24# **kwargs`表示接收任意个数的关键字参数
    def print_info(**kwargs):for key, value in kwargs.items():print(key, ":", value)print_info(name="Alice", age=25)  # 输出:name : Alice   age : 25
3.4.3 参数传递和返回值:函数的输入和输出

参数是函数定义时指定的变量,用于接收外部传入的值;返回值是函数执行完毕后返回给调用者的结果。

单个返回值

# 定义一个函数,计算两个数的乘积
def multiply(x, y):result = x * yreturn result# 调用函数,并打印出结果
a = 5
b = 10
product = multiply(a, b)
print("乘积:", product)# 输出结果
乘积: 50

多个返回值

# 定义一个函数,返回两个数的和与差(使用return语句将两个结果作为元组返回给调用者)
def add_and_subtract(x, y):sum_result = x + ydifference = x - yreturn sum_result, difference# 调用函数,并打印出结果
a = 10
b = 5
sum_result, difference = add_and_subtract(a, b)
print("和:", sum_result)
print("差:", difference)# 输出结果
和: 15
差: 5

四、 实践项目 : 创建一个简单的待办事项管理器

待办事项管理器允许用户添加待办事项、显示待办事项列表和删除某个待办事项。用户可以根据提示进行操作,直到选择退出。

# 创建一个空的待办事项列表
todo_list = []# 添加待办事项
def add_todo():todo = input("请输入待办事项:")todo_list.append(todo)print("待办事项已添加!")# 显示待办事项
def show_todo():if len(todo_list) == 0:print("当前没有待办事项。")else:print("当前的待办事项:")for i, todo in enumerate(todo_list, start=1):print(f"{i}. {todo}")# 删除待办事项
def remove_todo():show_todo()if len(todo_list) == 0:returnindex = int(input("请输入要删除的待办事项编号:")) - 1if index < 0 or index >= len(todo_list):print("无效的待办事项编号。")else:removed_todo = todo_list.pop(index)print(f"已删除待办事项:{removed_todo}")# 待办事项管理器主程序
def todo_manager():while True:print("\n请选择操作:")print("1. 添加待办事项")print("2. 显示待办事项")print("3. 删除待办事项")print("4. 退出")choice = input("请输入选项:")if choice == "1":add_todo()elif choice == "2":show_todo()elif choice == "3":remove_todo()elif choice == "4":print("感谢使用待办事项管理器。")breakelse:print("无效的选项,请重新输入。")# 运行待办事项管理器
todo_manager()

五、总结

基础语法总结

  1. 简介和使用场景

    Python在各种应用领域都有广泛的适用性,它的简洁性、易学性和丰富的库和工具使得开发者能够快速构建各种应用。无论是Web开发、数据科学、机器学习还是自动化脚本,Python都是一个强大而灵活的选择。

  2. 变量和数据类型

    Python中的变量不需要声明,直接赋值即可。Python支持多种数据类型,包括整数、浮点数、字符串、布尔值等。

  3. 条件语句

    Python中的条件语句使用if、elif和else关键字进行定义。根据条件的成立与否,执行相应的代码块。

  4. 循环语句

    Python中的循环语句包括for和while循环。for循环通常用于遍历序列或迭代器,而while循环则用于在条件成立时重复执行代码块。

  5. 函数

    Python中的函数使用def关键字定义。函数可以接收参数并返回值,也可以没有参数或返回值。

  6. 实践项目

    待办事项管理器允许用户添加待办事项、显示待办事项列表和删除某个待办事项。用户可以根据提示进行操作,直到选择退出。

以上是Python的基础语法总结,当然还有其他更高级的语言特性和库,但这些基础知识是学习Python编程的必备内容。

每一个裂缝都是为透出光而努力

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

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

相关文章

学习python仅此一篇就够了(内置模块)

内置模块 导入模块 import 关键字导入 --------- import math import 模块名称 as alias(别名) import hashlib as h (给hashlib起别名) from 包 import 模块名称 random模块 该模块主要用来产生随机数&#xff08;伪随机数,计算机产生不了真正的随机数&#xff0c;是依…

统信UOS_麒麟KYLINOS上使用Remmina远程Windows并传输文件

原文链接&#xff1a;统信UOS/麒麟KYLINOS上使用Remmina远程Windows并传输文件 hello&#xff0c;大家好啊&#xff01;继之前我们讨论了在统信UOS/麒麟KYLINOS与Windows之间通过Open SSH实现文件传输之后&#xff0c;今天我要给大家带来的是如何使用Remmina软件在统信UOS/麒麟…

第二百六十五回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Flutter中如何使用三方包相关的内容&#xff0c;本章回中将介绍Widget的生命周期.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 本章回中介绍的生命周期是指Widget从创建到结果的整个过程&#xff0c;这…

12.2内核空间基于SPI总线的OLED驱动

在内核空间编写SPI设备驱动的要点 在SPI总线控制器的设备树节点下增加SPI设备的设备树节点&#xff0c;节点中必须包含 reg 属性、 compatible 属性、 spi-max-frequency 属性&#xff0c; reg 属性用于描述片选索引&#xff0c; compatible属性用于设备和驱动的匹配&#xff…

【数据结构】树和二叉树堆(基本概念介绍)

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​ 目录 前言 树的概念 树的常见名词 树与…

linux TIME_WAIT时间变短

在Linux中&#xff0c;TIME_WAIT状态表示TCP连接已经关闭但还未完全清除的过程。默认情况下&#xff0c;TIME_WAIT状态会持续2分钟&#xff08;120秒&#xff09;以确保网络上没有重复的数据包被传输到错误的目标地址。 要将TIME_WAIT时间设置为更短的值&#xff0c;可以通过修…

2024.1.14每日一题

LeetCode 83.删除排序链表中的重复元素 83. 删除排序链表中的重复元素 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输…

手把手教你学会接口自动化系列十-将用例写在json中,持久化管理起来上

我们之前写的把url,登录都封装了,但是用例的数据怎么用其他文件管理起来,和代码分离呢?由次,我就行了json进行用例的管理。 从接口的角度我们分析,我们都知道接口请求有以下几方面: url method headers data 由次我将我的用例管理格式设置成下面的 {"url"…

关闭免费版pycharm社区版双击shift时出现的搜索框

Pycharm 在双击 shift 的时候总是弹出搜索框&#xff0c;但作为中国玩家&#xff0c;经常需要双击 shift 循环切换中英文。这就很困恼。 下面就解决这个问题。单独关闭双击shift的功能。 步骤 1.左上角 File -> Settings 2. 如图&#xff0c;输入‘advan’ 找到高级设置&…

基于AidLux的智慧教育版面分析应用

基于AidLux的智慧教育版面分析应用 1. Aidlux平台介绍 融合架构操作系统AidLux,可以为单一ARM设备同时提供Android和Linux运行环境&#xff0c;双系统既能独立使用又能相互通信。 非虚拟机方式实现双系统融合并行 同时拥有两个系统的完整用户体验无需重启即可在两个系统之间…

RibbonGroup 添加QRadioButton

RibbonGroup添加QRadioButton&#xff1a; QRadioButton * pRadio new QRadioButton(tr("Radio")); pRadio->setToolTip(tr("Radio")); groupClipboard->addWidget(pRadio); connect(pRadio, SIGNAL(clicked(…

扩展卡尔曼滤波(Extended Kalman Filter, EKF):理论和应用

扩展卡尔曼滤波&#xff08;Extended Kalman Filter, EKF&#xff09;&#xff1a;理论、公式和应用 引言 卡尔曼滤波是一种广泛应用于估计动态系统状态的技术&#xff0c;但当系统的动态模型或测量模型是非线性的时候&#xff0c;传统的卡尔曼滤波方法就显得无能为力。扩展卡…

Ubuntu中用useradd创建用户后无法用su切换过去

原因&#xff1a; 没有设置密码&#xff0c;没有指定家目录和shell版本&#xff0c;就不能su切换到新用户 解决方法&#xff1a; su - root //切换到root权限 useradd -m -s /bin/bash node1 //-m自动创建home目录&#xff0c;-s指定shell版本 passwd node1 //设置密码 参考链…

springboot(ssm单位考勤系统 oa办公系统Java系统

springboot(ssm单位考勤系统 oa办公系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数据库工…

【保姆级教程|YOLOv8添加注意力机制】【1】添加SEAttention注意力机制步骤详解、训练及推理使用

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

SpringBoot+thymeleaf实战遇到的问题

目录 一、控制台&#xff1a; 二、数据库查询异常&#xff1a; 三、前后端错误校验 四、在serviceImp中需要添加一个eq条件&#xff0c;表示和数据库中的哪个字段进行比较&#xff0c;否则会查出所有数据&#xff0c;导致500 五、使用流转换数据更简洁 六、重复报错&…

动态规划篇-03:打家劫舍

198、打家劫舍 状态转移方程 base case 边界问题就是&#xff1a;走到最后一间房子门口也没抢&#xff0c;那么最终抢到的金额为0 明确状态 “原问题和子问题中会变化的变量” 抢到的金额数就是状态&#xff0c;因为随着在每一件房子门口做选择&#xff0c;抢到的金额数会随…

大模型训练营Day3 基于 InternLM 和 LangChain 搭建你的知识库 作业

本篇记录大模型训练营第三次的作业&#xff0c;属实是拖延症本症患者。 主要步骤前面的安装各种包和依赖如前面作业一样&#xff0c;按照文档操作即可&#xff1a; 再按照文档进行各种克隆&#xff0c;把知识库复制到本地&#xff1a; 复制粘贴操作文档中的构建向量数据库的文…

七:Day08_任务调度

第一章 定时任务概述 在项目中开发定时任务应该一种比较常见的需求&#xff0c;在 Java 中开发定时任务主要有三种解决方案&#xff1a;一是使用JDK 自带的 Timer&#xff0c;二是使用 Spring Task&#xff0c;三是使用第三方组件 Quartz。 建议&#xff1a; 单体项目架构使用…

基于51单片机的智能热水器设计

需要全部文件请私信关注我&#xff01;&#xff01;&#xff01; 基于51单片机的智能热水器设计 摘要一、绪论1.1 选题背景及意义1.2 完成目标与功能设计 二、硬件系统设计2.1 硬件完成要求2.2 方案选择2.3 电源电路设计2.4 键盘电路2.5 蜂鸣器报警电路2.6 温度检测电路2.7 红…