第三篇: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 == 0def square_of_evens(numbers):total = 0for num in numbers:if is_even(num):total += num ** 2return 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 requestsapi_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成为你表达创意和解决问题的语言。

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

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

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

相关文章

环境配置——Windows平台配置VScode运行环境为远程服务器或虚拟机

1. 远程机需要先安装SSH服务&#xff0c;命令如下 sudo apt install openssh-server 2. 安装好后需要开启SSH服务&#xff1a; sudo service sshd start 3. 查看SSH服务是否有被开启&#xff1a; sudo systemctl status sshd.service 4. 本地Windows需要生成密钥将公钥放…

CTFshow-PWN-栈溢出(pwn36)

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

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件

前言 在上一篇文章中&#xff0c;我们实现了通过etcd来同时指定多个不同的有关分区与日志文件的路径&#xff0c;但是锁着一次读取配置的增多&#xff0c;不可避免的出现了一个问题&#xff1a;我们如何来监控多个日志文件&#xff0c;这样原来的tailFile模块相对于当下场景就…

Golang | Leetcode Golang题解之第46题全排列

题目&#xff1a; 题解&#xff1a; func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

嵌入式系统中的实时操作系统(RTOS)深入应用与优化

引言 实时操作系统&#xff08;RTOS&#xff09;在嵌入式系统中扮演着至关重要的角色&#xff0c;特别是在需要快速响应和高度可靠性的应用中。 我将探讨如何在STM32单片机上实现RTOS&#xff0c;包括任务管理、内存管理以及中断处理&#xff0c;以提高系统的效率和响应速度。…

github+PicGo+obsidian来作为你的免费高效可靠图床吧

前提 一直以来 博客的图床问题都是个大问题 ,如何找到一个 可靠并且 方便的搭建方式 非常重要 今天介绍一种 githubpicGoobsidian的搭建方式 准备github库 生成个人github token 找到个人 设置 生成一个新token 或者已经有的直接用 新生成的token 需要记录下来 这可能是你最后…

vue3.2+vite+unocss原子化配置

1、安装unocss&#xff1a;npm install unocss 2、vite.config.ts中配置&#xff1a; 3、创建unocss自己的ts文件&#xff1a;uno.config.ts 根路径下创建&#xff0c; 4、在创建好的uno.config.ts文件中编写如下代码&#xff1a; // uno.config.ts import {defineConfig,prese…

关于MySQL Command Line Client 运行闪退问题解决,my.ini文件内容

MySQL Command Line Client 运行闪退问题解决&#xff0c;缺少my.ini文件_通过下载msi安装mysql,双击打开mysql 8.2 command line client --CSDN博客 打开mysql Command Line Client 发现直接闪退&#xff0c;一直不明所以&#xff08;这里是没输密码&#xff0c;直接一闪而过…

python学习笔记----python基础语法(二)

一、字面量 在 Python 中&#xff0c;字面量 是一种直接在代码中表示其自身值的数据。字面量用于创建值&#xff0c;并且可以直接被 Python 的解释器识别和处理。不同类型的数据有不同的字面量形式。下面是一些常见的字面量类型&#xff1a; 二、注释 注释&#xff1a;在程序…

【I2C】基于SystemVerilog的16比特I/O拓展芯片TCA6416A读写控制

功能简介 本文基于Xilinx Virtex UltrascaleHBM VCU128 FPGA开发板&#xff0c;通过利用开发板上的TCA6416A芯片&#xff0c;对I2C通信方式进行学习。   根据VCU128用户手册&#xff0c;128中具有两条I2C总线&#xff0c;其中一条连接有4个I2C芯片&#xff0c;能够与系统监视…

Java Web 网页设计(3)

3.servlet JavaWeb——Servlet&#xff08;全网最详细教程包括Servlet源码分析&#xff09;-CSDN博客 servlet java不支持 只有Tomcat支持 使用时添加一下 servlet中最常用的两个&#xff08;固定&#xff09;方法&#xff1a; 下面我们创建一个servlet类 package com.oracle…

汽车组装3D电子说明书更通俗易懂

激光打印机由于造价高、技术更先进&#xff0c;因此在使用和维护上需要更专业的手法&#xff0c;而对于普通客户来说并不具备专业操作激光打印机的技能&#xff0c;为了通俗易懂地让客户理解激光打印机&#xff0c;我们为企业定制了激光打印机3D产品说明书&#xff0c;将为您带…

《QT实用小工具·三十五》基于PathView,Qt/QML做的一个可以无限滚动的日历控件

1、概述 源码放在文章末尾 改项目实现了基于PathView&#xff0c;Qt/QML做的一个可以无限滚动的日历控件&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下所示&#xff1a; import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Bu…

【最优化】牛顿法、高斯-牛顿法

一、牛顿法 1、牛顿法在一维搜索中的应用 在一维搜索中我们所要解决的问题是如何找函数f(x)的最小值。 牛顿法的核心思想是用二次函数拟合函数f(x)的某一邻域区间&#xff0c;用二次函数的极小值点作为下一次的迭代点。通过多次迭代使得二次函数的极小值逼近函数f(x)的极小值 …

Trivy离线扫描:容器安全实践指南

一、Trivy简介 1.1 Trivy 概述 Trivy 是一款全面多功能的安全扫描器。Trivy具有寻找安全问题和目标的扫描器。现已经被 Github Action、Harbor 等主流工具集成&#xff0c;Trivy支持大多数流行的编程语言、操作系统和平台的扫描&#xff0c;应该是该领域目前目前采用最广的开…

【React】CSS 局部样式

书写 CSS 的时候&#xff0c;如果 CSS 文件名包含 module&#xff0c;那么说明该 CSS 是一个局部 CSS 样式文件&#xff0c;类似于 vue 中的 scoped。 .avatarContainer {width: 40px;height: 40px;border-radius: 50%;background: rgb(213, 226, 226); }import styles from ..…

android脱壳:一种使用native进行抽取壳脱壳的方法,native版本的frida-fart

前言 写rxposed的时候&#xff0c;搞了很多模块&#xff0c;其中有一个远程调用脱壳的&#xff0c;但是当时使用的是rmi远程调用&#xff0c;因为一些问题无法使用&#xff0c;可能是对抗问题&#xff0c;也有可能是技术问题&#xff0c;所以我又换了一种远程调用方式。 概述…

局部多项式近似与 AMPM 算法

kappa3; %已在您的代码中定义% 定义窗口大小 windowSize (2*kappa1);% 初始化梯度估计值 [rows, cols] size(wrappedPhase); phi_y zeros(rows, cols); phi_x zeros(rows, cols);% 遍历每个窗口 for m 1kappa:rows-kappafor n 1kappa:cols-kappa% 提取局部窗口Z_mn wrap…

逆数对(树状数组的方法)

本题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 题目&#xff1a; 样例&#xff1a; 输入 5 4 5 1 3 2 输出 7 思路&#xff1a; 根据题意&#xff0c;求逆序对总数。 逆序对含义&#xff1a;如果数组中的两个不同位置&#xff0c;前面的数字比后面的数字严格大&…

新建云仓库

1.GitHub新建云仓库&#xff1a; LICENSE:开源许可证&#xff1b;README.md:仓库说明文件&#xff1b;开源项目&#xff1b;cocoaPodsName.podspec: CocoaPods项目的属性描述文件。 2.Coding新建云仓库&#xff1a; 备注&#xff1a; Coding新建项目&#xff1a;