Python编程探索:从基础语法到循环结构实践(下)
文章目录
- 前言
- 🍷四、 字符串拼接:连接多个字符串
- 🍸4.1 使用 `+` 操作符进行字符串拼接
- 🍸4.2 使用 `join()` 方法进行字符串拼接
- 🍸4.3 使用 `format()` 方法进行格式化拼接
- 🍸4.4 使用 f-string(格式化字符串)
- 🍸4.5 使用 `%` 进行格式化拼接(老方法)
- 🍸4.6 拼接文件路径
- 🍸4.7 性能比较
- 总结
- 🍷五、逻辑运算符:处理布尔值
- 🍸5.1 布尔值与逻辑运算
- 5.1.1 真值测试
- 🍸5.2 `and` 运算符:逻辑与
- 🍸5.3 `or` 运算符:逻辑或
- 🍸5.4 `not` 运算符:逻辑非
- 🍸5.5 逻辑运算符的组合使用
- 🍸5.6 使用逻辑运算符处理非布尔值
- 5.6.1 `and` 和 `or` 的短路返回
- 5.6.2 `not` 的应用
- 🍸5.7 常见应用场景
- 5.7.1 检查多个条件
- 5.7.2 默认值的使用
- 🍸5.8 运算符的优先级
- 🍷六、 成员运算符:检查值是否存在于序列中
- 🍷七、 条件语句:根据条件执行不同代码块
- 🍸7.1 基本语法
- 🍸7.2 嵌套的条件语句
- 🍸7.3 简化条件表达式(Ternary Operator)
- 🍸7.4 多条件判断
- 总结
- 🍷八、 `for`循环:遍历序列
- 🍸8.1 基本语法
- 🍸8.2 遍历列表
- 🍸8.3 遍历字符串
- 🍸8.4 遍历字典
- 🍸8.5 使用 `range()` 生成数值序列
- 🍸8.6 使用 `enumerate()` 获取索引和值
- 🍸8.7 使用 `break` 和 `continue`
- 总结
- 🍷九、 `while`循环:基于条件的重复执行
- 🍸9.1 基本语法
- 🍸9.2 简单的 `while` 循环
- 🍸9.3 使用 `break` 和 `continue`
- 🍸9.4 无限循环
- 🍸9.5 使用 `while` 循环处理用户输入
- 🍸9.6`else` 和 `while` 结合
- 总结:
- 结语
前言
接上篇 Python编程探索:从基础语法到循环结构实践(上),本篇文章将继续深入探讨Python的字符串操作、逻辑运算符、成员运算符以及条件语句和循环结构,并通过代码实例化来帮助读者更好地理解这些概念。
🍷四、 字符串拼接:连接多个字符串
在 Python 编程中,字符串拼接是将多个字符串合并为一个整体的操作。无论是在构建动态文本、生成格式化的输出,还是处理从用户或外部输入得到的多个数据段,字符串拼接都是一项必不可少的操作。Python 提供了多种灵活且高效的方法来进行字符串拼接,每种方法都有其独特的应用场景和优劣。
🍸4.1 使用 +
操作符进行字符串拼接
最直接的字符串拼接方式是使用 +
操作符。通过 +
可以将两个或多个字符串合并成一个新的字符串。
示例
# 简单的字符串拼接
s1 = "Hello"
s2 = "World"
result = s1 + " " + s2
print(result) # 输出: Hello World
在这个示例中,我们通过 +
操作符将两个字符串和一个空格连接在一起,形成了完整的句子。
注意事项
- 不可变性:需要注意的是,Python 的字符串是不可变的,这意味着每次使用
+
操作符进行拼接时,都会创建一个新的字符串对象。这在需要拼接大量字符串时可能会影响性能。 - 效率:对于少量字符串的拼接,
+
操作符的效率是可以接受的,但如果需要在循环中拼接大量字符串,使用+
操作符可能会导致性能下降。
🍸4.2 使用 join()
方法进行字符串拼接
如果需要拼接多个字符串,特别是存储在列表或元组中的字符串,推荐使用 Python 的内置 str.join()
方法。join()
方法通过指定的分隔符,将可迭代对象中的所有元素连接成一个字符串。
语法
result = "separator".join(iterable)
separator
:分隔符,指定用来连接每个元素的字符串。iterable
:可迭代对象(如列表、元组),其每个元素都是字符串。
示例
# 使用 join() 拼接列表中的字符串
words = ["Python", "is", "great"]
sentence = " ".join(words)
print(sentence) # 输出: Python is great
在这个例子中,使用 " "
作为分隔符,将列表中的三个单词拼接成一个完整的句子。
注意事项
join()
方法比+
操作符更高效,特别是在拼接大量字符串时。因为join()
会先计算出所有字符串的总长度,然后只分配一次内存,而+
操作符在每次拼接时都会创建一个新的字符串对象。join()
方法要求可迭代对象中的所有元素都是字符串,如果有非字符串元素,需先进行类型转换。
# 将非字符串元素转换为字符串后再拼接
mixed = ["The answer is", 42]
sentence = " ".join(map(str, mixed))
print(sentence) # 输出: The answer is 42
🍸4.3 使用 format()
方法进行格式化拼接
format()
方法提供了一种强大且灵活的方式来格式化和拼接字符串。它允许我们在字符串中定义占位符 {}
,并通过 format()
方法将变量插入到占位符中。
示例
# 使用 format() 进行字符串拼接
name = "Alice"
age = 30
sentence = "My name is {} and I am {} years old.".format(name, age)
print(sentence) # 输出: My name is Alice and I am 30 years old.
通过使用 {}
占位符,我们可以将多个变量插入到字符串中的指定位置,这使得 format()
方法在需要动态生成文本时非常有用。
高级用法
format()
方法还支持使用命名参数、索引等进行更复杂的格式化操作。
# 使用命名参数
sentence = "My name is {name} and I am {age} years old.".format(name="Bob", age=25)
print(sentence) # 输出: My name is Bob and I am 25 years old.# 使用索引
sentence = "{0} is learning {1}".format("Alice", "Python")
print(sentence) # 输出: Alice is learning Python
🍸4.4 使用 f-string(格式化字符串)
Python 3.6 及之后的版本引入了f-string(格式化字符串),这是最简洁且高效的字符串拼接方式之一。f-string 使用 f
前缀,并允许在字符串中直接嵌入变量或表达式,极大提高了代码的可读性和拼接效率。
示例
# 使用 f-string 拼接字符串
name = "Charlie"
age = 22
sentence = f"My name is {name} and I am {age} years old."
print(sentence) # 输出: My name is Charlie and I am 22 years old.
f-string 让代码看起来更加简洁,因为不需要调用 format()
方法或使用 +
进行拼接。它还支持在花括号 {}
中嵌入任意的 Python 表达式。
嵌入表达式
# 在 f-string 中嵌入表达式
a = 5
b = 10
sentence = f"The sum of {a} and {b} is {a + b}."
print(sentence) # 输出: The sum of 5 and 10 is 15.
f-string 是拼接多个字符串的推荐方法,特别是在需要拼接变量时,因为它结合了可读性和性能的优势。
🍸4.5 使用 %
进行格式化拼接(老方法)
在 Python 的早期版本中,使用 %
操作符进行字符串格式化是常见的做法。虽然这种方法逐渐被 format()
和 f-string 取代,但它在某些场景下仍然可以看到。
示例
# 使用 % 进行字符串拼接
name = "Dave"
age = 28
sentence = "My name is %s and I am %d years old." % (name, age)
print(sentence) # 输出: My name is Dave and I am 28 years old.
%s
用于表示字符串占位符。%d
用于表示整数占位符。
注意事项
%
格式化的功能较为有限,代码的可读性也较低,因此在现代 Python 编程中通常不再推荐使用。- 这种方法在拼接大量字符串时效率较低。
🍸4.6 拼接文件路径
在处理文件路径时,手动使用 +
操作符进行拼接并不方便。为了避免处理不同操作系统的路径分隔符差异,Python 提供了 os.path.join()
或 pathlib
模块来进行路径拼接。
示例
import os# 使用 os.path.join 拼接文件路径
folder = "/home/user"
filename = "document.txt"
full_path = os.path.join(folder, filename)
print(full_path) # 输出: /home/user/document.txt
这种方法不仅能够确保路径分隔符的正确性,还能处理不同操作系统的文件路径标准。
🍸4.7 性能比较
当我们需要拼接大量字符串时,选择合适的拼接方式非常重要。以下是不同拼接方式的性能比较:
+
操作符:适合拼接少量字符串。大量字符串拼接时性能较差,因为每次拼接都会创建一个新的字符串对象。join()
方法:在拼接大量字符串时最为高效。它只会分配一次内存,不会反复创建新的字符串对象。format()
和 f-string:适合拼接带变量的字符串,性能接近join()
方法,且代码更具可读性。%
操作符:是一种老式的格式化方法,性能一般,代码的可读性较低。
性能测试
import time# 使用 + 拼接字符串
start = time.time()
result = ""
for i in range(100000):result += str(i)
end = time.time()
print(f"Using +: {end - start} seconds")# 使用 join 拼接字符串
start = time.time()
result = "".join([str(i) for i in range(100000)])
end = time.time()
print(f"Using join: {end - start} seconds")
从性能角度来看,join()
通常是处理大量字符串拼接的最佳选择。
总结
Python 提供了多种方法来进行字符串拼接,每种方法都有其适用的场景。对于简单的拼接操作,+
操作符非常直观;对于处理多个字符串或列表中的元素,join()
是更高效的选择;而在需要格式化字符串的场景下,format()
和 f-string 是非常灵活且简洁的选择。根据具体的
🍷五、逻辑运算符:处理布尔值
在 Python 编程中,逻辑运算符用于处理布尔值(True
和 False
)并执行与、或、非等逻辑操作。它们是控制程序流、条件判断和决策的核心部分。逻辑运算符帮助开发者基于多个条件的组合进行判断,从而控制程序的行为。
Python 提供了三个主要的逻辑运算符:
and
:逻辑与运算or
:逻辑或运算not
:逻辑非运算
这些运算符通常用于布尔表达式之间的组合,以生成复杂的条件判断。
🍸5.1 布尔值与逻辑运算
布尔值是 Python 中表示逻辑真值的基本数据类型,它只有两个取值:True
和 False
。通过布尔运算符,多个布尔值或条件表达式可以组合在一起,返回一个新的布尔结果。
5.1.1 真值测试
在 Python 中,以下类型的值会被解释为 False
:
- 布尔值
False
- 数值
0
(包括0
和0.0
) - 空字符串
""
- 空列表
[]
、空元组()
、空字典{}
、空集合set()
- 特殊值
None
任何其他值都会被解释为 True
。理解这些真值的转换可以帮助我们在逻辑运算中更好地处理各种类型的数据。
🍸5.2 and
运算符:逻辑与
and
运算符用于检查两个条件是否都为 True
。如果两个条件都为真,则返回 True
,否则返回 False
。
语法
condition1 and condition2
只有当 condition1
和 condition2
都为 True
时,整个表达式才为 True
。
示例
# 两个条件都为 True
print(True and True) # 输出: True# 一个条件为 False
print(True and False) # 输出: False# 两个条件都为 False
print(False and False) # 输出: False
结合条件判断
逻辑 and
常用于结合多个条件进行判断,例如检查一个数是否在某个范围内:
# 检查一个数是否在 0 到 100 之间
num = 50
if num > 0 and num < 100:print("The number is between 0 and 100.")
else:print("The number is out of range.")
短路运算
and
运算符具有短路行为,这意味着如果第一个条件为 False
,Python 不会检查第二个条件,因为结果已经确定为 False
。
# 短路行为示例
a = False
b = True
print(a and b) # 输出: False(b 不会被评估,因为 a 为 False)
🍸5.3 or
运算符:逻辑或
or
运算符用于检查至少一个条件为 True
。只要有一个条件为 True
,则整个表达式为 True
。如果所有条件都为 False
,结果才会是 False
。
语法
condition1 or condition2
只要 condition1
或 condition2
其中一个为 True
,整个表达式就是 True
。
示例
# 两个条件都为 True
print(True and True) # 输出: True# 一个条件为 True
print(True or False) # 输出: True# 两个条件都为 False
print(False or False) # 输出: False
结合条件判断
or
常用于检查多个可能的情况,例如判断一个数是否在两个区间之外:
# 检查一个数是否小于 0 或大于 100
num = -5
if num < 0 or num > 100:print("The number is out of range.")
else:print("The number is between 0 and 100.")
短路运算
or
运算符同样具有短路行为。如果第一个条件为 True
,Python 不会检查第二个条件,因为结果已经确定为 True
。
# 短路行为示例
a = True
b = False
print(a or b) # 输出: True(b 不会被评估,因为 a 为 True)
🍸5.4 not
运算符:逻辑非
not
运算符是用于取反的逻辑运算符。它将布尔值 True
转换为 False
,将 False
转换为 True
。
语法
not condition
not
会将 condition
的布尔值取反。如果 condition
为 True
,则结果为 False
;如果 condition
为 False
,则结果为 True
。
示例
print(not True) # 输出: False
print(not False) # 输出: True
结合条件判断
not
运算符常用于逻辑条件的反转,例如检查某个条件是否不成立:
# 检查用户是否不是管理员
is_admin = False
if not is_admin:print("Access denied.")
else:print("Welcome, admin!")
🍸5.5 逻辑运算符的组合使用
可以将 and
、or
和 not
组合使用来处理更复杂的条件逻辑。例如,检查多个条件并根据不同的组合进行操作。
示例
age = 25
has_permission = True# 组合逻辑:检查用户是否有权限,并且年龄大于 18
if has_permission and age > 18:print("Access granted.")
else:print("Access denied.")
🍸5.6 使用逻辑运算符处理非布尔值
在 Python 中,逻辑运算符不仅可以用于布尔值,还可以用于非布尔值。Python 评估非布尔值时,会根据真值测试规则,将其转换为 True
或 False
。
5.6.1 and
和 or
的短路返回
and
返回第一个False
的值或最后一个True
的值。or
返回第一个True
的值或最后一个False
的值。
# 非布尔值与 and 运算符
print(0 and 5) # 输出: 0(第一个 False)
print(4 and 5) # 输出: 5(两个都为 True)# 非布尔值与 or 运算符
print(0 or 5) # 输出: 5(第一个 True)
print(4 or 5) # 输出: 4(第一个 True)
在这个例子中,Python 根据短路行为直接返回第一个能确定结果的值,而不是返回布尔值。这种特性可以用于简化代码,避免显式的 if
语句。
5.6.2 not
的应用
not
运算符可以将非布尔值的真值转换为布尔值,然后取反:
print(not 0) # 输出: True(0 被视为 False)
print(not 5) # 输出: False(5 被视为 True)
🍸5.7 常见应用场景
5.7.1 检查多个条件
逻辑运算符广泛用于 if
语句中检查多个条件:
username = "admin"
password = "secret"# 组合多个条件进行检查
if username == "admin" and password == "secret":print("Login successful.")
else:print("Login failed.")
5.7.2 默认值的使用
逻辑运算符常用于处理默认值或为空值的情况。例如,使用 or
运算符为变量设置默认值:
python复制代码name = input("Enter your name: ") or "Guest"
print(f"Hello, {name}!")
如果用户没有输入任何内容,name
会被赋值为 "Guest"
,因为空字符串会被评估为 False
,而 or
会返回第二个值。
🍸5.8 运算符的优先级
在组合使用逻辑运算符时,运算符的优先级非常重要。not
的优先级最高,其次是 and
,最后是 or
。这意味着在没有使用括号时,Python 会按照这个优先级顺序计算表达式。
示例
# 默认优先级下的运算
result = True or False and not False
print(result) # 输出: True# 添加括号改变优先级
result = (True or False) and not False
print(result) # 输出: True
🍷六、 成员运算符:检查值是否存在于序列中
在Python中,成员运算符用于检查一个值是否存在于一个序列(如列表、元组、字符串或字典)中。主要有两个成员运算符:
in
运算符:检查值是否存在于序列中。not in
运算符:检查值是否不存在于序列中。
示例
# 检查值是否在列表中
my_list = [1, 2, 3, 4, 5]# 使用 in 运算符
if 3 in my_list:print("3 存在于列表中")# 使用 not in 运算符
if 6 not in my_list:print("6 不存在于列表中")# 检查值是否在字符串中
my_string = "Hello, World!"
if "Hello" in my_string:print('"Hello" 存在于字符串中')# 检查值是否在字典的键中
my_dict = {"name": "Alice", "age": 25}
if "name" in my_dict:print('"name" 是字典中的一个键')# 检查值是否在元组中
my_tuple = (10, 20, 30)
if 20 in my_tuple:print("20 存在于元组中")
说明
in
运算符可以用于任何可迭代对象,如列表、元组、字符串和字典(在字典中,它检查键)。not in
是in
的否定形式,表示如果值不在序列中则返回True
。
🍷七、 条件语句:根据条件执行不同代码块
在Python中,条件语句用于根据不同的条件执行不同的代码块。最常见的条件语句是 if
、elif
和 else
。
🍸7.1 基本语法
if 条件:# 当条件为 True 时执行的代码块
elif 其他条件:# 当上一个条件为 False,且该条件为 True 时执行的代码块
else:# 当所有条件都为 False 时执行的代码块
示例
x = 10# 使用 if 条件语句
if x > 10:print("x 大于 10")
elif x == 10:print("x 等于 10")
else:print("x 小于 10")
🍸7.2 嵌套的条件语句
可以在 if
语句内部嵌套另一个 if
语句,形成条件的组合逻辑。
x = 15
y = 20if x > 10:if y > 15:print("x 大于 10 且 y 大于 15")else:print("x 大于 10 但 y 小于等于 15")
else:print("x 小于等于 10")
🍸7.3 简化条件表达式(Ternary Operator)
Python 也支持在一行中编写条件语句,称为三元表达式。
x = 5
result = "x 大于 0" if x > 0 else "x 小于等于 0"
print(result)
🍸7.4 多条件判断
可以使用逻辑运算符 and
、or
和 not
来进行多个条件的组合判断。
x = 8
y = 12if x > 5 and y < 15:print("x 大于 5 且 y 小于 15")
总结
if
后面是条件表达式,条件为True
执行对应代码块,否则跳过。- 可以使用
elif
和else
扩展if
语句,以处理更多情况。 - 使用
and
、or
、not
组合多个条件。 - 三元表达式适合在简单情况下进行条件判断。
🍷八、 for
循环:遍历序列
在Python中,for
循环用于遍历序列,如列表、元组、字典、字符串等。通过 for
循环,可以逐个访问序列中的每个元素。
🍸8.1 基本语法
for 变量 in 序列:# 执行的代码块
🍸8.2 遍历列表
my_list = [1, 2, 3, 4, 5]for item in my_list:print(item)
🍸8.3 遍历字符串
my_string = "Hello"for char in my_string:print(char)
🍸8.4 遍历字典
my_dict = {"name": "Alice", "age": 25}# 遍历字典的键
for key in my_dict:print(key)# 遍历字典的键和值
for key, value in my_dict.items():print(f"{key}: {value}")
🍸8.5 使用 range()
生成数值序列
range()
函数用于生成一个数值序列,常用于 for
循环中。
# 打印 0 到 4
for i in range(5):print(i)
你还可以指定起始值和步长:
# 打印 2, 4, 6, 8
for i in range(2, 10, 2):print(i)
🍸8.6 使用 enumerate()
获取索引和值
enumerate()
函数用于在遍历序列时同时获取索引和值。
my_list = ["apple", "banana", "cherry"]for index, value in enumerate(my_list):print(f"索引 {index} 的值是 {value}")
🍸8.7 使用 break
和 continue
break
:用于提前终止循环。continue
:跳过本次循环,继续下一次迭代。
# 终止循环
for i in range(5):if i == 3:breakprint(i)# 跳过某次循环
for i in range(5):if i == 3:continueprint(i)
总结
for
循环适用于遍历任何可迭代对象。- 使用
range()
生成数值序列,控制循环的次数和步长。 - 使用
enumerate()
获取序列中的索引和值。 break
和continue
控制循环的执行流程。
🍷九、 while
循环:基于条件的重复执行
在Python中,while
循环用于基于条件的重复执行。当条件为 True
时,while
循环中的代码块将会被执行,直到条件变为 False
。
🍸9.1 基本语法
while 条件:# 执行的代码块
🍸9.2 简单的 while
循环
count = 0while count < 5:print(f"当前计数是 {count}")count += 1
🍸9.3 使用 break
和 continue
break
:提前终止循环。continue
:跳过本次循环,继续下一次循环。
count = 0while count < 5:if count == 3:break # 当 count 等于 3 时终止循环print(f"当前计数是 {count}")count += 1# 使用 continue 跳过特定的迭代
count = 0while count < 5:count += 1if count == 3:continue # 当 count 等于 3 时跳过本次循环print(f"当前计数是 {count}")
🍸9.4 无限循环
while
循环在条件始终为 True
时会变成无限循环。通常通过 break
来终止循环,避免程序陷入无限循环。
count = 0while True:print(f"当前计数是 {count}")count += 1if count >= 5:break # 使用 break 终止无限循环
🍸9.5 使用 while
循环处理用户输入
user_input = ""while user_input != "exit":user_input = input("请输入内容 (输入 'exit' 退出): ")print(f"你输入了: {user_input}")
🍸9.6else
和 while
结合
和 for
循环一样,while
循环也可以有一个 else
语句块,在循环条件变为 False
时执行(除非被 break
终止)。
count = 0while count < 5:print(f"当前计数是 {count}")count += 1
else:print("循环结束")
总结:
while
循环根据条件重复执行代码块,直到条件变为False
。- 使用
break
提前终止循环,continue
跳过当前迭代。 - 小心编写条件,避免产生无限循环,除非是特意设计的。
结语
今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,17的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是17前进的动力!
相关文章:

Python编程探索:从基础语法到循环结构实践(下)
文章目录 前言🍷四、 字符串拼接:连接多个字符串🍸4.1 使用 操作符进行字符串拼接🍸4.2 使用 join() 方法进行字符串拼接🍸4.3 使用 format() 方法进行格式化拼接🍸4.4 使用 f-string(格式化字…...

简介openwrt系统下/etc/config/network文件生成过程
openwrt的network文件,或者说在/etc/config下的文件,都是动态生成的。 脚本的函数定义在package/base-files/files/lib/functions中,有以下几个文件: libraSVN:~/Wang_SP4/openwrt-d03dc49/package/base-files/files/lib/functi…...

javaWeb项目-Springboot+vue-XX图书馆管理系统功能介绍
本项目源码(点击下方链接下载):java-springbootvue阿博图书馆管理系统源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端&…...

华为ENSP用户权限深度解析:构建安全高效的网络管理
在华为ENSP(Enterprise Network Simulation Platform)用户界面中,用户权限级别是一个重要的概念,它用于限制不同用户访问设备的权限,从而增加设备管理的安全性。以下是对华为ENSP用户界面用户权限级别的详细解释&#…...

NFC之NDEF
NDEF的通用格式 MB标志是一个1位字段,当其被设置时,表示NDEF消息的开始。 ME标志是一个1位字段,当其被设置时,表示NDEF消息的结束。 CF标志是一个1位字段,指示这是分块有效载荷的第一个记录块或中间记录块。 SR标志是…...

学习第三十六行
QValidator::State里面state为0,完全不匹配,1,部分匹配,2,完全匹配,对于label或者textedit里面的字符均为QString类型,特别是遇到数字,需要QString::number转化,对于正则表达式&…...

停车场问题
实验内容 1.问题描述: 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序,依次由北向南排列(大门在最南端,最先达到的第一辆车停放在车场的最北端),若车场…...

海康相 机
海康机器人-机器视觉-下载中心 海康威视MVS客户端及虚拟相机c开发案例-CSDN博客 相机驱动下载: 下载中心 VisionMaster 视频教程_哔哩哔哩_bilibili 【VisionMaster】试用版安装说明_visionmaster试用版-CSDN博客 海康视觉算法平台VisionMaster 4.3.0 C# 二次…...

用map实现el-table全选
<el-button size"small" type"primary" click"searchProxy">查询</el-button><el-checkbox v-model"selectAll" change"changeSelectAll" >全选</el-checkbox><el-table:data"taskList&…...

【开源免费】基于SpringBoot+Vue.JS社区团购系统(JAVA毕业设计)
本文项目编号 T 024 ,文末自助获取源码 \color{red}{T024,文末自助获取源码} T024,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…...

Java进阶之路:构造方法
🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥇博主昵称:小菜元 🍟博客主页…...

2025秋招八股文--网络原理篇
前言 1.本系列面试八股文的题目及答案均来自于网络平台的内容整理,对其进行了归类整理,在格式和内容上或许会存在一定错误,大家自行理解。内容涵盖部分若有侵权部分,请后台联系,及时删除。 2.本系列发布内容分为12篇…...

C#基础-面向对象的七大设计原则
目录 1.开放封闭原则(OCP) 2.单一职责原则(SRP) 3.依赖倒置原则(DIP) 4.里氏替换原则(LSP) 5.接口隔离原则(ISP) 6.合成复用原则(CRP&#…...

CSS 容器查询一探究竟
引言 在 《请列举四种「等比例自适应矩形」实现方案?》 一文中我曾使用到容器查询单位 cqw, 当时在使用 cqw 过程中只是简单过了一下容器查询相关的内容!! 所以这次专门出一篇文章, 对容器查询做一个梳理… 一、是什么 在实际开发中您是否遇到过需要根据父容器的…...

AI论文写作:如何轻松实现高原创度大揭秘
随着人工智能技术的迅猛进步,AI论文写作工具在学术界开始崭露头角,作为一种辅助手段。这些工具不仅能高效地生成论文的初步版本或部分章节,而且其产出的内容往往展现出高度的创新性。本文将探讨AI论文写作工具为何能产出如此高原创度的内容&a…...

AtCoder Beginner Contest 375 A-E 题解
我的老师让我先做最后再交,看正确率(即以OI赛制打abc) 所以我用的小号(… …) C 卡了老半天才出来,我把题读错了 难度: A. Seats 题意 给你一个字符串 S S S,仅包含 . 和 #&…...

其他-自己手动更换汽车电磁进排气阀0.9.2
其他-自己手动更换汽车电磁进排气阀0.9.0 背景本次工具流程注意参考 2024年10月18日08:57:00—0.9.2 背景 昨天手动更换了电磁阀,记录下过程和注意事项,简单总结了一下 本次工具 10号套筒和工具老虎钳锤子一字改刀新的进排气电磁阀 流程 打开引擎盖…...

生成模型初认识
生成模型初认识 参考学习资料:李宏毅-机器学习 以下为课程过程中的简易笔记 生成模型 为什么要用生成模型?——创造力:同一个输入,产生不同的输出(distribution),有一定概率发生某种随机事件…...

Java中的一些名词概念
**函数式接口:** 概念:一个接口中的抽象方法只有一个,那么这个接口就是一个函数式接口。形参: 形参变量是**功能函数里的变量**,只有<u>在被调用的时候才分配内存单元</u>,<u>调用结束后立即释放</u>。…...

沈阳乐晟睿浩科技有限公司:引领抖音小店迈向新纪元
在当今数字化浪潮汹涌的时代,电子商务以其独特的魅力和无限潜力,正深刻改变着人们的消费习惯与商业模式。在这场变革中,沈阳乐晟睿浩科技有限公司凭借其敏锐的市场洞察力和卓越的技术实力,成为了抖音小店领域的佼佼者,…...

[图形学]蒙特卡洛积分方法介绍及其方差计算
一、简介 本文介绍了蒙特卡洛积分算法的基本原理和其误差计算。 二、蒙特卡洛积分介绍 1. 介绍 蒙特卡洛积分算法是一种数值积分算法,用于对复杂函数进行积分。 例如,对于目标积分函数: ∫ a b f ( x ) d x (1) \int_{a}^{b}f(x)\rm{d}x…...

智慧社区Web解决方案:Spring Boot框架探索
1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理基于web的智慧社区设计与实现的相关信息成…...

基于预测算法的航班离港延误系统
毕业设计不知道做什么?想找一个结合算法与应用的项目?那你绝对不能错过这个"基于预测算法的航班离港延误系统"!✈️📊 项目简介: 这个系统专注于航班离港的延误预测,通过强大的神经网络技术对大…...

【汇编语言】寄存器(内存访问)(七)—— CPU提供的栈机制
文章目录 前言1. CPU提供的栈机制2. push指令3. 问题4. 问题的分析与解答5. pop指令结语 前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深…...

webAPI中的节点操作、高级事件
一、节点操作 1.删除节点 node.removeChild(); 方法从node节点中删除一个子节点,返回删除的节点 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widt…...

C++内存对齐机制简介
C内存对齐机制是指数据在内存中按照特定规则进行排列,这个机制可以提高访问效率并且满足硬件访问特性。 C内存对齐机制的一些关键规则如下: 不同类型的数据在内存中的起始地址应该是其大小的倍数。比如,4字节的整型应该存放在地址是4的倍数…...

java集合进阶篇-《List集合》
个人主页→VON 收录专栏→java从入门到起飞 目录 编辑 一、前言 二、List集合简要概述 三、List集合主要函数的应用 四、List集合的遍历 五、思考 一、前言 List集合与Collection集合的相同之处还是挺多的,不过有些小细节又不太一样,其中有一个…...

FPGA图像处理之均值滤波
文章目录 一、什么是图像滤波?1.1 噪声类型1.2 滤波类型 二、均值滤波原理2.1 3*3窗口滑动过程2.2 图像扩展 三、Matlab实现均值滤波四、FPGA实现均值滤波4.1 生成 3*3 矩阵4.2 仿真3*3矩阵4.3 计算均值4.4 仿真均值滤波 一、什么是图像滤波? 图像滤波是…...

高等数学 6.2 定积分在几何学上的应用
文章目录 一、平面图形的面积1.直角坐标情形2.极坐标情形 二、体积1.旋转体体积2.平行截面面积为已知的立体的体积 三、平面曲线的弧长 一、平面图形的面积 1.直角坐标情形 我们已经知道,由曲线 y f ( x ) ( f ( x ) ⩾ 0 ) y f(x) (f(x) \geqslant 0) yf(x)(f…...

缓存常见问题:缓存穿透、雪崩、击穿及解决方案分析
1. 什么是缓存穿透,怎么解决? 缓存穿透是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求该数据都要去数据库中查询一遍。如果有恶意攻击者不断请求系统中不存在的数据,会导致短时…...