第三篇:Python编程基础:掌握核心语法与开发技巧

Python编程基础:掌握核心语法与开发技巧

在这里插入图片描述

1 引言

在这个信息化迅速蔓延的世界中,Python语言如同钥匙一般开启了通往各种可能性的大门。无论你是数据科学家、网络工程师、机器学习专家,还是仅仅对自动化办公感兴趣的办公室人员,Python因其易于学习且功能强大的特性,成为了跨领域的首选编程语言。深入理解Python的基础语法对于任何希望通过编程解决问题的人来说都是至关重要的。本篇文章旨在通过精心编排的内容和实例,使读者能够系统地掌握Python编程的基础要领。

1.1 为什么学习Python基础语法是重要的

编程本质上是一种将逻辑思维转换为机器能够理解和执行的过程。在这个过程中,语法扮演着至关重要的角色。就像学习任何一种语言一样,掌握基本的语法规则是表达清晰思想的前提。在Python中,基础语法的学习不仅能让你快速编写出高效、可读性强的代码,更是深入学习高级编程技巧的基石。

Python的语法简洁直观,但这并不意味着它缺乏深度。实际上,Python的简洁性掩盖了其背后的复杂性和强大功能。例如,Python通过简单的赋值语句就能完成变量的声明和初始化,但实际上这背后涉及到内存管理、对象引用等多个层面的复杂机制。考虑以下Python代码示例:

x = 5

这条语句的背后,Python实际上执行了如下步骤:

  1. 为整数5分配内存空间。
  2. 创建变量x。
  3. 将变量x引用到内存中存储的整数5。

这个过程涉及到Python内存管理的核心概念,即引用计数(Reference Counting)和垃圾回收(Garbage Collection)。引用计数是Python用于管理内存的主要技术之一,它保持跟踪每个对象有多少引用指向自己。当一个对象的引用计数降到0时,意味着没有任何引用指向该对象,它占用的内存就会被垃圾回收器回收。这个概念可以通过下面的数学公式表示:

引用计数 ( o b j ) = ∑ 所有引用 1 引用指向obj \text{引用计数}(obj) = \sum_{\text{所有引用}} \mathbb{1}_{\text{引用指向obj}} 引用计数(obj)=所有引用1引用指向obj

其中, 1 引用指向obj \mathbb{1}_{\text{引用指向obj}} 1引用指向obj是一个指示函数,当引用指向对象obj时取值为1,否则为0。

1.2 阐述本篇文章的目标和期望给读者带来的收获

本篇文章的目标是使读者能够:

  1. 理解并应用Python的基础语法。
  2. 掌握Python的变量和数据类型及其转换。
  3. 使用控制流语句编写结构化的代码。
  4. 定义和调用函数,理解参数和返回值。
  5. 应用所学知识解决实际问题。

通过本篇文章的学习,你不仅将获得编写Python程序的能力,还将深入理解其背后的运作原理。我们期望通过具体的代码示例、可视化图表和深入的概念解释,让你在理论和实践之间架起一座桥梁。无论你的目标是开发复杂的软件系统、进行科学研究,还是简单地自动化日常任务,掌握Python的基础语法都将是你迈向成功的关键一步。

在这里插入图片描述

2 变量和数据类型

在Python这门富有表现力的编程语言中,了解变量和数据类型是构建任何程序的基础。变量可以被视作数据的容器,而数据类型则定义了这些数据的特征和我们可以对它们执行的操作类型。本节将深入探讨变量的本质、Python中的各种基本数据类型及其应用。

2.1 变量的概念及应用

变量是编程中一个基本概念,它用于存储信息,这些信息可以在程序运行时被创建、更新和检索。在Python中,变量无需声明即可创建,并且其类型是动态确定的。这意味着Python解释器会在运行时根据赋给变量的值自动推断出变量的类型。

实例:

# 变量赋值
count = 10  # count现在是一个整数型变量
pi = 3.14159  # pi是一个浮点数变量
name = "Alice"  # name是一个字符串变量
is_valid = True  # is_valid是一个布尔型变量

变量命名遵循一定的规则,例如,它们不能以数字开头,不能包含特殊字符,除了下划线(_),并且它们是区分大小写的。

2.2 Python的基本数据类型

Python中的基础数据类型包括整型、浮点型、字符串和布尔型。

整型(Integer)

整型是用于表示没有小数部分的数字。它们可以是正数、负数或零。在Python中,整数的长度不受限制,只受限于机器的内存。

实例:

# 整数
x = 25  # 正整数
y = -76  # 负整数
z = 0  # 零
浮点型(Float)

浮点型表示带有小数部分的数。它们在内部表示为二进制分数和指数。这意味着浮点数在Python中不总是完全精确的,因为它们依赖于IEEE 754标准。

实例:

# 浮点数
a = 4.2
b = -3.14

在数学公式中,浮点数可以用来进行各种操作,例如求圆的面积:
A = π r 2 A = \pi r^2 A=πr2
其中,( A ) 是面积,( \pi ) 是圆周率,( r ) 是圆的半径。

字符串(String)

字符串是由字符组成的序列,用于表示文本信息。它们在Python中用单引号(‘’)、双引号(“”)或三引号(‘’’ ‘’'或"“” “”")表示。

实例:

# 字符串
greeting = "Hello, World!"
multiline_string = """This is a 
multi-line string."""
布尔型(Boolean)

布尔型只有两个值:True和False。它们通常用于条件判断和循环控制。

实例:

# 布尔型
is_active = True
is_closed = False

2.3 实例代码:声明和使用不同数据类型

# 整型
age = 30

# 浮点型
height = 5.9

# 字符串
name = "John Doe"

# 布尔型
has_license = True

# 打印变量类型
print(type(age))  # 输出: <class 'int'>
print(type(height))  # 输出: <class 'float'>
print(type(name))  # 输出: <class 'str'>
print(type(has_license))  # 输出: <class 'bool'>

2.4 可视化图表

Python提供了强大的类型转换功能。我们可以使用内置的函数如int(), float(), str(), 和bool()来在不同的数据类型之间相互转化。

让我们通过一个简单的表格来展示这些类型转换:

FunctionDescriptionExample
int(x)Converts x to an integerint(3.8) -> 3
float(x)Converts x to a floatfloat("2.5") -> 2.5
str(x)Converts x to a stringstr(10) -> "10"
bool(x)Converts x to a booleanbool(0) -> False

在编程时了解和掌握这些数据类型对于编写有效率、可读性强和健壮性高的程序至关重要。我们将在接下来的章节中进一步深入控制流语句,理解它们如何利用这些数据类型来驱动程序逻辑。

在这里插入图片描述

3 控制流语句

在编程中,我们通常需要根据不同的情况来执行不同的代码,这就是控制流语句发挥作用的地方。控制流语句使得我们的程序不再是一条直线从上到下执行,而是根据一定的条件做出决策,或者多次执行某些任务—这是通过条件语句和循环语句来实现的。

3.1 条件语句(if-elif-else)

条件语句用于根据特定条件执行不同的代码块。在Python中,这种语句的基本形式是if-elif-else结构。

详细语法解释
if 条件1:
    # 条件1为真时执行的代码
elif 条件2:
    # 条件1不为真但条件2为真时执行的代码
else:
    # 上述条件都不为真时执行的代码

if后面跟着的条件可以是任何有效的Python表达式。如果该表达式的结果是True,则执行该条件下的代码块。

实例代码:做出简单决策的程序

假设我们需要编写程序来判断一个学生的成绩是否及格。在这里,我们将使用条件语句来实现:

grade = 75
if grade >= 90:
    print("优秀")
elif grade >= 60:
    print("及格")
else:
    print("不及格")

在这个例子中,如果grade变量的值大于等于90,控制台将打印“优秀”。如果grade的值在60到89之间,将打印“及格”。否则,将打印“不及格”。

3.3 循环语句(for循环和while循环)

编写程序时,我们经常需要重复执行一段代码。这就是循环语句的用武之地,它可以帮助我们进行数据处理和自动化任务。

循环的概念及其使用场景

循环语句能够一次又一次地执行相同的代码块,直到满足某个条件。Python中有两种主要的循环语句:for循环和while循环。

for循环通常用于遍历容器类型的数据结构(如列表或元组),或者在一个固定范围内执行代码块。

for 变量 in 序列:
    # 序列中每个元素执行一次代码块

while循环则会一直执行,直到指定的表达式不再为真。

while 条件:
    # 条件为真时重复执行代码块
实例代码:通过循环实现数据处理和自动化任务

假设我们有一个数字列表,我们想计算这些数字的平方和。我们可以使用for循环来实现:

numbers = [1, 2, 3, 4, 5]
sum_of_squares = 0
for number in numbers:
    sum_of_squares += number ** 2
print(sum_of_squares)

在这个例子中,for循环遍历列表numbers中的每个元素,并计算其平方和存储在sum_of_squares变量中。最终,控制台输出这个平方和。

如果我们想重复一个操作直到达到预设的条件,比如找到第一个能被7整除的正整数,我们可以使用while循环:

number = 1
while number % 7 != 0:
    number += 1
print(number)

这个while循环会一直增加number的值,直到它能被7整除。当找到这样的数字时,循环结束,打印结果。

3.3 可视化图表:展示不同控制流语句的执行流程

在理解控制流语句时,可视化的执行流程图是一个很有帮助的工具。它可以帮助我们更直观地理解程序是如何在不同条件下改变执行路径的。

if-elif-else语句为例,我们可以将其执行流程用流程图表示,其中包括决策点(条件判断)和不同的执行分支。

而对于循环语句,我们可以绘制出循环的开始、执行代码块、条件测试及循环结束的流程图,这有助于我们理解循环如何一遍遍地执行相同的代码块,直到达到某个条件。

3.4 进一步阅读:探索更复杂的控制流实现

在Python编程中,控制流语句的概念可以扩展到更加复杂的场景,例如嵌套循环(一个循环内部包含另一个循环)和递归(函数调用自身)。这些概念有助于解决更复杂的编程问题,但也增加了理解和调试的难度。

一旦掌握了基本的控制流语句,就可以尝试阅读更高级的主题,如递归算法的数学基础,或是如何利用迭代器和生成器简化复杂的循环逻辑。

在这里插入图片描述

4 函数定义和调用

在探索Python的世界中,函数扮演着绝不可忽视的角色。它们如同数学中的 f ( x ) f(x) f(x),将输入映射到输出,只不过在Python中,这种映射更为丰富和灵活。本节的焦点将集中在函数的定义和调用,为您的编程之旅增添一把利器。

4.1 什么是函数以及为什么要使用函数

函数,从数学的角度来看,是一种将输入(或称自变量)映射到输出(或称因变量)的关系。在Python中,函数是组织良好的,可重用的,用以实现单一,或相关联功能的代码段。

函数的使用,首先减少了代码重复。想象一下,如果需要在不同的程序中实现同样的功能,没有函数,就需要在每个地方重写代码。这不仅增加了工作量,更增加了维护成本和出错的风险。其次,它提高了程序的可读性。函数可以抽象出操作细节,使得代码更加清晰,更易于理解。最后,函数的使用也方便了协作。不同的人可以负责不同的函数,各自独立编写和测试。

4.2 函数的定义方法以及如何调用函数

在Python中,函数的定义使用def关键字,后面跟着函数名和括号内的参数列表,最后是冒号。函数体随后缩进开始。例如,我们定义一个简单的函数add来完成两数相加的功能:

def add(x, y):
    return x + y

其中,xy是参数,return语句后面的表达式x + y是函数的返回值。

函数定义后,可以通过其名称和一对括号来调用它,括号内填入参数值。如调用add函数:

result = add(2, 3)
print(result)  # 输出 5

4.3 参数和返回值的概念

参数是函数完成其功能所需要的信息,是函数的输入。而返回值则是函数处理后输出的结果。在上面的add函数例子中,参数是xy,返回值是它们的和。

Python中的函数可以没有返回值,也可以有多个返回值。无返回值的函数默认返回None。多个返回值时,实际上是返回了一个元组,这可以用来同时返回多个计算结果。

4.4 作用域理解(局部变量和全局变量的区别)

在Python中,变量的作用域决定了在哪里可以“看到”这个变量。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。例如:

def my_function():
    local_var = 10  # 局部变量
    print(local_var)

global_var = 20  # 全局变量

my_function()  # 输出 10
print(global_var)  # 输出 20
# print(local_var) 会产生错误,因为local_var是局部变量,只能在my_function内部访问。

4.5 实例代码:创建并使用自定义函数解决实际问题

让我们看一个实际的例子:定义一个函数,计算一个列表中所有偶数的平方和。我们首先定义一个辅助函数来判断一个数是否为偶数,然后定义主函数来使用它:

def is_even(num):
    # 如果num模2等于0,说明是偶数
    return num % 2 == 0

def square_of_evens(numbers):
    total = 0
    for num in numbers:
        if is_even(num):
            total += num ** 2
    return total

# 使用我们的函数
numbers = range(1, 11)  # 创建一个1到10的列表
result = square_of_evens(numbers)
print(result)  # 输出偶数的平方和

4.6 进一步阅读材料:深入函数高级特性和装饰器

为了进一步提升你的函数使用技巧,推荐深入学习Python的高级函数特性,如默认参数、关键字参数、可变参数列表。此外,Python的装饰器(Decorator)是一种强大的函数修改工具,它允许你在不修改函数代码的前提下,增加函数的功能。

一个简单的装饰器示例如下:

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()

在这个例子中,my_decorator是一个装饰器,它接受一个函数并返回一个新的函数。say_hellomy_decorator装饰,因此当我们调用say_hello()时,它会首先打印一条消息,然后执行say_hello原本的内容,最后再打印一条消息。

通过本篇文章,你将对Python函数的定义和调用有一个更深入的理解,并能够将这些知识应用到实际问题的解决中。记住,熟能生巧。不断练习是掌握函数这一强大工具的关键。

在这里插入图片描述

5 实战练习

在我们已经掌握了Python编程基础的核心语法与开发技巧之后,是时候将这些理论知识应用到实际项目中了。本节旨在通过一个综合实战练习,将之前学到的知识点串联起来,构建一个简单但完整的应用程序。我们将从需求分析开始,逐步深入到代码实现,并在最后给出几个扩展任务,鼓励大家在此基础上进行改进和创新。

5.1 综合练习:构建一个简单的天气查询应用

在这个练习中,我们将构建一个简单的天气查询应用程序。该程序允许用户输入一个城市名称,然后程序会查询并显示该城市当前的天气情况。为了简化示例,我们将使用一个免费的天气API服务(例如:OpenWeatherMap)来获取天气数据。

需求分析
  1. 用户能够通过命令行输入城市名称。
  2. 程序能够处理用户输入,向天气API发送请求。
  3. 程序能够解析API返回的数据,并以友好的格式展示给用户。

5.2 代码逐步解析

步骤1:获取用户输入

首先,我们需要一个方式来获取用户通过命令行输入的城市名称。在Python中,我们可以使用input()函数来实现这个功能。

city_name = input("请输入您要查询的城市名称:")

步骤2:构建API请求

为了向天气API发送请求,我们需要构建正确的请求URL。这通常需要API的基础URL加上必要的查询参数,比如城市名称和API密钥。

import requests

api_key = "你的API密钥"
base_url = "http://api.openweathermap.org/data/2.5/weather?"
complete_url = f"{base_url}appid={api_key}&q={city_name}"

步骤3:发送请求并获取数据

使用requests库来发送HTTP请求,并获取返回的数据。

response = requests.get(complete_url)
weather_data = response.json()

步骤4:解析并展示数据

解析API返回的JSON数据,并以友好的方式展示给用户。在这个例子中,我们将展示城市天气、最高温度和最低温度。

if weather_data["cod"] == 200:
    weather = weather_data["weather"][0]["description"]
    temp = weather_data["main"]["temp"]
    print(f"{city_name}的当前天气状况为:{weather},温度为:{temp}度。")
else:
    print("未能获取到天气数据,请检查城市名称是否正确。")

5.3 扩展任务

  1. 数据可视化:尝试使用matplotlib库来绘制历史天气数据的温度变化图。
  2. 错误处理:增加异常处理逻辑,例如网络请求失败、API限制达到等情况。
  3. 功能扩展:增加更多功能,例如支持多城市查询、长期天气预报等。

通过这个实战练习,我们不仅复习了之前学到的知识,比如变量、数据类型、控制流语句以及函数的使用,还学习了如何与外部API进行交互和数据处理。希望通过这个例子,你能够对Python编程有更加深入的理解和应用。继续实践,不断探索Python的更多可能性!

在这里插入图片描述

6 总结和未来路径

在我们的编程旅程中,我们已经穿越了Python编程的广阔领域,从变量的基础概念到复杂的控制流语句,再到函数的魔法般的力量。这些都是Python语言核心的组成部分,是每个Python程序员必须掌握的基本工具。在这篇博客的最后部分,我们将总结前面章节的要点,并为你提供一个未来学习的蓝图,让你的Python技能更上一层楼。

核心概念和技能回顾

首先,让我们重温一下变量和数据类型。变量是编程中的一个基本概念,是存储信息的容器。在Python中,变量无需显式声明类型,它们的类型是动态赋予的。例如:

x = 42          # 整型(int)
y = 3.14        # 浮点型(float)
z = "Python"    # 字符串(str)
is_valid = True # 布尔型(bool)

每个类型都有其数学特性,例如整型数据支持标准的算术运算:

x + y = 42 + 3.14 x + y = 42 + 3.14 x+y=42+3.14

浮点数则涉及到更复杂的数学表示,它们在计算机内部是以二进制分数的形式表示的,如下所示:

3.14 ≈ 11.001001000011111101101 1 ( 2 ) 3.14 \approx 11.0010010000111111011011_{(2)} 3.1411.0010010000111111011011(2)

接着,在控制流语句部分,我们理解了程序根据特定条件如何改变其执行路径。条件语句的典型应用是决策制作:

if temperature > 30:
    print("It's a hot day.")
else:
    print("It's not a hot day.")

在这里,if-else 结构决定了根据 temperature 的值执行不同的代码。类似地,循环,如 whilefor 循环,提供了重复执行操作的能力,直到满足某个条件。例如,我们可以计算一个数列的和:

sum = 0
for i in range(1, 11):
    sum += i

这里,我们使用了求和公式的离散等价:

∑ i = 1 n i = n ( n + 1 ) 2 \sum_{i=1}^{n} i = \frac{n(n + 1)}{2} i=1ni=2n(n+1)

对于 n = 10,结果是 55,这与循环计算的结果相匹配。

函数定义和调用部分,我们学习了如何封装代码块以便重用和分发。函数不仅提高代码的可读性,还隔离了作用域,使得变量的管理更加可控。例如:

def greet(name):
    return f"Hello, {name}!"

在这里,greet 函数将一个字符串作为参数,并返回一个问候语。函数的作用域规则确保了 name 变量只在函数内部可见。

推荐后续学习的路径和资源

随着你对Python的掌握变得越来越深入,你将开始接触更高级的概念。例如,你可以学习类和对象,它们是面向对象编程的基础。Python的标准库也为你提供了广泛的模块和功能,如datetime模块处理日期和时间,collections模块提供了额外的数据结构,等等。

除了标准库,Python有一个庞大的第三方库生态系统。例如,NumPyPandas库极大地简化了数据分析和处理,而MatplotlibSeaborn库则用于数据可视化。

如果你对数据科学感兴趣,可能会需要学习统计基础机器学习算法。在这些领域,数学公式和概念扮演关键角色,比如线性回归的成本函数:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2

这里, J ( θ ) J(\theta) J(θ) 衡量预测值 h θ ( x ) h_{\theta}(x) hθ(x) 与实际值 y y y 之间的差异,我们的目标是调整参数 θ \theta θ 来最小化这个成本函数。

鼓励读者持续实践和深入探索Python的更多可能性

最后,我鼓励你继续编写代码,不断实践。不要害怕犯错,因为错误是学习过程中的宝贵资产。参与开源项目,阅读其他人的代码,尝试解决实际问题,这些都是提高编程技能的有效方式。

掌握了Python的基础后,无数的门就为你打开了。无论是开发网络应用程序,自动化日常任务,还是深入数据科学和人工智能的世界,Python都是一个强大的工具。记住,编程不仅是一种技术,它是一种艺术,是实现你想象力的手段。继续学习,继续创造,让Python成为你表达创意和解决问题的语言。

祝你在编程世界里的探险旅途中一帆风顺,不断发现新大陆。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch<二>✈️✈️】基本属性概念与MySQL数据库的不同之处

目录 &#x1f378;前言 &#x1f37b;一、Elasticsearch 基本属性 1.1 ES VS MySQL 1.2 ES 属性概念 1.3 ES 的增删改查 &#x1f37a;二、自动补全场景 2.1 场景举例 2.2 使用数据分词器 2.3 查询的流程 2.4 整个查询流程图 &#x1f379;章末 &#x1f378;前言 上次初步…

Zynq 7000 系列中的Interconnect(互联)简介

PS&#xff08;处理器子系统&#xff09;内部的互联结构包含了多个交换机&#xff0c;用于通过AXI点对点通道连接系统资源。这些通道负责在主机和从机客户端之间进行地址、数据和响应事务通信。该互联结构负责管理多个待处理的事务&#xff0c;并且为Arm CPU设计了低延迟路径&a…

UE4_动画基础_FootIK

角色由于胶囊体的阻挡&#xff0c;双脚与地面平行&#xff0c;不会与斜坡、台阶等贴合&#xff0c;有一条腿会处于悬空状态&#xff0c;通过双骨骼IK节点使一只脚太高&#xff0c;让后胶囊体下降&#xff0c;修正双脚的角度。这就是逆向运动IK的方法。 一、新建第三人称模板游戏…

OpenStack云计算(十四)——综合演练手动部署OpenStack,

本项目的项目实训可以完全参考教材配套讲解的详细步骤实施&#xff0c;总体来说实训工作量较大&#xff0c;可根据需要选做&#xff0c;重点观看配套的微课视频。 项目实训一 【实训题目】 搭建OpenStack云平台基础环境 【实训目的】 掌握OpenStack基础环境的安装和配置方…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数&#xff0c;如何利用&#xff1f; 好好好&#xff0c;终于到了这种有后门函数的了 checksec 检查一下&#xff1a; 32 位程序&#xff0c;RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…

C++系列-命名空间

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 命名空间 在C/C中&#xff0c;变量&#xff0c;函数和后面要学到的类都是大量存在的&#xff0c;这些变量&#xff0c;函数和类的名称都存在于全局作用域中&#xff0c;可能会导…

电机入门1

文章目录 122.12.22.3 33.13.23.33.4 1 2 2.1 电机板 驱动板电机分类 驱动器分类 转速 转向扭矩定时器 ADC 2.2 PID 自动控制 的核心闭环控制算是 PID的应用 2.3 无刷电机用的 可大大提高其控制效率 和控制精度 3 开发板的IO 电流太小了 20~25ma 电机要A 驱动板 信号放大没舵…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

乘数而上,创邻科技入选2024数商典型应用场景“乘数榜”

4月18日&#xff0c;由浙江省科学技术协会指导的2024未来数商大会在杭州成功举办。本次大会以“场景突破 乘数而上”为主题&#xff0c;国际国内数商共聚未来科技城学术交流中心&#xff0c;聚焦数据要素市场的制度创新、数据治理、场景应用与生态构建等话题展开研讨。 大会现…

C++入门基础(一)

目录 C关键字命名空间命名冲突例子域的概念理解命名空间定义例子1例子2例子3例子4例子5例子6例子7 C输出与输入输出输入 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412; 个人主页 &#x1f978;&#x1f978;&#x…

汽车底盘域的学习笔记

前言&#xff1a;底盘域分为传统车型底盘域和新能源车型底盘域&#xff08;新能源系统又可以分为纯电和混动车型&#xff0c;有时间可以再研究一下&#xff09; 1&#xff1a;传统车型底盘域 细分的话可以分为四个子系统 传动系统 行驶系统 转向系统 制动系统 1.1传动系…

计算机体系结构:向量体系结构介绍

向量体系结构介绍 什么是向量&#xff1f; 在计算机体系结构&#xff0c;"向量"&#xff08;vector&#xff09;是指一个由多个相同类型且逻辑上相关的数据元素组成的有序集合。这些元素可以是整数、浮点数、布尔值或其他数据类型&#xff0c;它们在内存中连续存储…

SpringSecurity + Oauth2 + jwt实现单点登录

文章目录 前言一、springsecurity oauth2 redis方式的缺点二、oauth2认证的4种模式的选择三、认证服务器的编写 第一步、创建WebSecurity配置类第二步、创建jwt仓库配置类第三步、创建UserDetailsService类第四步、创建认证服务器配置类 四、测试认证服务器的功能 1.创建Login…

墨水屏技术在工业智能化领域的创新应用

墨水屏技术在工业智能化领域的创新应用 随着科技的快速发展&#xff0c;各种显示技术层出不穷&#xff0c;其中墨水屏作为一种独特的显示技术&#xff0c;逐渐在工业领域展现出其独特的优势和价值。墨水屏以其低功耗、高对比度和阅读舒适度高等特点&#xff0c;正成为工业应用…

uniapp-css多颜色渐变:左右+上下

案例展示 案例代码&#xff1a; 代码灵感&#xff1a;使用伪类进行处理 <view class"headBox"></view>.headBox {height: 200rpx;background: linear-gradient(to right, #D3D5F0, #F0DCF3, #F7F6FB, #DAE8F2, #E1D3EE);position: relative; }.headBox…

【C++】哈希思想

目录 哈希介绍&#xff1a; 一&#xff0c;位图 1-1&#xff0c;位图的认识 1-2&#xff0c;位图的简单实现 1-3&#xff0c;位图的应用 二&#xff0c;布隆过滤器 2-1&#xff0c;布隆过滤器的认识 2-2&#xff0c;布隆过滤器的简单实现 2-3&#xff0c;布隆过滤器的…

3d设计网站有哪些(1)?渲染100邀请码1a12

做3d设计需要各类资源&#xff0c;比如模型、材质、贴图等&#xff0c;如果这些都要自己做会非常麻烦&#xff0c;所幸现在有网站可以下载&#xff0c;有的免费有的收费&#xff0c;这篇文章我就先分享几个给有需要的朋友看看吧。 1、Pikbest Pikbest成立于2018年7月12日&…

万辰集团如何破局“增收不增利”的困境?

在波澜不惊的食用菌加工行业&#xff0c;万辰集团&#xff08;300972.SZ&#xff09;曾是一名平凡的参与者。2021年战略转型的号角吹响&#xff0c;万辰集团挥别了传统业务&#xff0c;转而投身于快速增长的量贩零食市场&#xff0c;并迅速扩张到成为这一领域的重要玩家。万辰的…

TDSQL手动调整备份节点或冷备节点

一、背景描述 近期TDSQL数据库备份不稳定&#xff0c;有些set实例的备份任务未自动发起。经排查分析&#xff0c;存在多个set实例容量已经超过TB级别&#xff0c;且冷备节点都是同一台。因此&#xff0c;需要手动将当前备份节点改到其他备节点&#xff0c;开启增量备份&#x…

C语言笔试题之重排链表

重排链表 实例要求 1、给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → Ln - 1 → Ln2、请将其重新排列后变为&#xff1a; L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …3、不能只是单纯的改变节点内部的值&#xff0c;而是…