当前位置: 首页 > news >正文

Python For循环

Python 的 for 循环是自动化重复任务的强大工具,可以使代码更高效、更易于管理。本教程将解释 for 循环的工作原理,探讨不同的应用场景,并提供大量实用示例。无论你是初学者还是希望提升技能的开发者,这些示例都将帮助你更好地在 Python 项目中应用 for 循环。

Python 的 for 循环详解

Python 的 for 循环用于遍历序列(如列表、元组、字符串或范围)并多次执行代码块。它们对于高效地执行重复任务非常有用,可以处理数值和非数值数据。Python 的 for 循环简单且灵活,是编程中的基础工具。

语法
for item in sequence:# 要执行的代码块
  • item:一个变量,用于存储序列中的每个元素。
  • sequence:一个可迭代对象,如列表、元组、字符串或范围。
  • # 要执行的代码块:在每次迭代中执行的代码。
示例
示例 1:遍历列表
numbers = [1, 2, 3, 4, 5]
for number in numbers:print(number)

输出

1
2
3
4
5

在这个示例中,循环遍历 numbers 列表中的每个元素,并将其打印到控制台。

如何使用 Python 的 for 循环遍历字符串?

在 Python 中,可以将字符串视为字符序列,使用 for 循环逐个处理字符串中的每个字符。每次迭代会处理字符串中的一个字符。以下是一个示例来说明这一点:

text = "Hello, World!"
for char in text:print(char)
输出

在这个示例中,循环会遍历字符串 text 中的每个字符并打印它。输出:

H
e
l
l
o
,W
o
r
l
d
!

Python for 循环中的 break 语句

在 Python 的 for 循环中,break 语句用于在满足特定条件时提前终止循环。一旦执行 break 语句,循环将停止迭代,程序控制会转移到循环后的下一条语句。

示例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:if number == 5:breakprint(number)
print("Loop terminated when number reached:", number)
解释
  1. 初始化:列表 numbers 被初始化为从 1 到 10 的值。
  2. 迭代for 循环遍历列表 numbers 中的每个数字。
  3. 条件:在每次迭代中,循环检查当前数字是否等于 5。
  4. 中断:当遇到数字 5 时,break 语句被执行,终止循环。
  5. 输出:循环停止,程序打印从 1 到 4 的数字,然后打印一条消息,指示循环在数字达到 5 时终止。
输出
1
2
3
4
Loop terminated when number reached: 5

Python for 循环中的 continue 语句

在 Python 的 for 循环中,continue 语句用于跳过当前迭代并移动到下一个迭代。当 continue 语句被执行时,循环不会终止,而是跳过当前迭代中剩余的代码,直接进入下一次迭代。

示例
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:if number % 2 == 0:continueprint(number)
print("Loop skipped even numbers")
解释
  1. 初始化:列表 numbers 被初始化为从 1 到 10 的值。
  2. 迭代for 循环遍历列表 numbers 中的每个数字。
  3. 条件:在每次迭代中,循环检查当前数字是否为偶数(即 number % 2 == 0)。
  4. 跳过:如果当前数字是偶数,continue 语句被执行,导致循环跳过当前迭代并移动到下一个数字。
  5. 处理:如果当前数字是奇数,则将其打印到控制台。
输出
1
3
5
7
9
Loop skipped even numbers

Python for 循环中的 range() 函数

range() 函数在 Python 的 for 循环中用于生成一系列数字。它常用于在 for 循环中迭代特定的一组值。range() 函数可以接受一到三个参数:start(起始值)、stop(结束值)和 step(步长)。

基本语法
range(start, stop, step)
  • start:可选参数,默认为 0。指定生成序列的起始值。
  • stop:必填参数。指定生成序列的结束值(不包括此值)。
  • step:可选参数,默认为 1。指定生成序列的步长。
示例
for i in range(1, 10, 2):print(i)
解释
  1. 初始化range() 函数被调用,参数为 start=1stop=10step=2
  2. 迭代for 循环遍历由 range(1, 10, 2) 生成的序列。
  3. 处理:在每次迭代中,当前值 i 被打印出来。
输出
1
3
5
7
9

Python for 循环中的 enumerate 函数

在 Python 中,enumerate 函数与 for 循环结合使用,可以遍历列表(或其他可迭代对象)并在每次迭代中访问索引和对应的项。这在处理列表时非常有用,特别是当你需要知道列表中每个项目的索引位置时。

基本语法
for index, item in enumerate(iterable):# 代码块
  • index:当前项的索引。
  • item:当前项的值。
  • iterable:可迭代对象,如列表、元组、字符串等。
示例
# 样例列表
fruits = ["apple", "banana", "cherry", "date"]# 使用 enumerate 在 for 循环中
for index, fruit in enumerate(fruits):print(f"Index {index}: {fruit}")
解释
  1. 初始化列表

    fruits = ["apple", "banana", "cherry", "date"]
    

    这里,fruits 列表被初始化为包含四个水果名称。

  2. 使用 enumerate 函数

    for index, fruit in enumerate(fruits):
    

    enumerate(fruits) 返回一个枚举对象,其中包含列表中每个项目的索引和值。for 循环遍历这些枚举对象,将索引和值分别解包到 indexfruit 变量中。

  3. 处理和打印

    print(f"Index {index}: {fruit}")
    

    在每次迭代中,打印当前项的索引和对应的水果名称。

输出
Index 0: apple
Index 1: banana
Index 2: cherry
Index 3: date

Python for 循环中的 else 子句

在 Python 中,for 循环可以有一个 else 子句。这个 else 子句在循环正常完成所有迭代时执行,而不是在循环被 break 语句提前终止时执行。这在区分循环是否完成了所有迭代或提前退出时非常有用。

示例
# 样例列表
numbers = [1, 2, 3, 4, 5]# 使用 else 在 for 循环中
for number in numbers:if number % 7 == 0:print(f"Found a multiple of 7: {number}")break
else:print("No multiples of 7 found in the list")
解释
  1. 初始化列表

    numbers = [1, 2, 3, 4, 5]
    

    这里,numbers 列表被初始化为包含从 1 到 5 的整数。

  2. 使用 for 循环

    for number in numbers:
    

    for 循环遍历 numbers 列表中的每个数字。

  3. 条件检查

    if number % 7 == 0:print(f"Found a multiple of 7: {number}")break
    

    在每次迭代中,检查当前数字是否是 7 的倍数。如果是,则打印消息并使用 break 语句终止循环。

  4. else 子句

    else:print("No multiples of 7 found in the list")
    

    如果循环正常完成所有迭代(即没有执行 break 语句),则执行 else 子句中的代码。

输出

由于 numbers 列表中没有 7 的倍数,输出将是:

No multiples of 7 found in the list

Python 中的嵌套 for 循环

嵌套循环是指在一个循环内部再嵌套另一个循环。在 Python 中,你可以将任何类型的循环嵌套在另一个循环内。嵌套循环常用于处理多维数据结构,如二维数组或生成复杂的输出格式。

示例
# 外层循环用于行
for i in range(1, 6):# 内层循环用于列for j in range(1, 6):print(f"{i * j:2}", end=" ")print()  # 每行结束后换行
解释
  1. 外层循环

    for i in range(1, 6):
    

    外层循环遍历从 1 到 5 的范围,代表乘法表的行。

  2. 内层循环

    for j in range(1, 6):
    

    内层循环也遍历从 1 到 5 的范围,代表乘法表的列。

  3. 打印乘积

    print(f"{i * j:2}", end=" ")
    

    计算当前行和列的乘积 i * j,并使用 f-string 格式化输出,确保每个数字占两个字符宽度,并用空格分隔。

  4. 换行

    print()
    

    内层循环完成后,打印一个新行,以便开始下一行的输出。

输出
 1  2  3  4  5 2  4  6  8 10 3  6  9 12 15 4  8 12 16 20 5 10 15 20 25 

Python for 循环中的 pass 语句

在 Python 中,pass 语句是一个空操作,执行时什么也不做。它通常用作尚未编写代码的占位符,或者用于创建最小化的函数体,这些函数体目前不需要执行任何操作。

示例
# 示例 1:`pass` 语句在函数中的使用
def placeholder_function():pass# 示例 2:`pass` 语句在循环中的使用
for i in range(5):if i % 2 == 0:pass  # 占位符,用于未来代码else:print(f"Odd number: {i}")
解释
  1. 定义空函数

    def placeholder_function():pass
    

    placeholder_function 被定义,但由于 pass 语句的存在,该函数实际上什么也不做。这在函数尚未实现具体功能时非常有用,可以避免语法错误。

  2. 使用 pass 语句在循环中

    for i in range(5):if i % 2 == 0:pass  # 占位符,用于未来代码else:print(f"Odd number: {i}")
    
    • 外层循环for i in range(5) 遍历从 0 到 4 的范围。
    • 条件检查if i % 2 == 0 检查当前数字是否为偶数。
      • 如果是偶数,pass 语句被执行,表示这里将来可能会添加代码,但目前不做任何操作。
      • 如果是奇数,打印当前数字。
输出
Odd number: 1
Odd number: 3

Python for 循环中的字典

在 Python 中,可以使用 for 循环遍历字典的键和值。字典的 items 方法返回一个视图对象,该对象显示字典中键值对的列表,可以在 for 循环中使用。

示例
# 样例字典
student_grades = {"Alice": 85,"Bob": 90,"Charlie": 78,"Diana": 92
}# 使用 for 循环遍历字典项
for student, grade in student_grades.items():print(f"{student}: {grade}")
解释
  1. 初始化字典

    student_grades = {"Alice": 85,"Bob": 90,"Charlie": 78,"Diana": 92
    }
    

    这里,student_grades 字典被初始化为包含四个学生的名字和他们的成绩。

  2. 使用 items 方法

    for student, grade in student_grades.items():
    

    student_grades.items() 返回一个包含键值对的视图对象。for 循环遍历这些键值对,将键和值分别解包到 studentgrade 变量中。

  3. 打印键和值

    print(f"{student}: {grade}")
    

    在每次迭代中,打印学生的姓名和他们的成绩。

输出
Alice: 85
Bob: 90
Charlie: 78
Diana: 92

Python for 循环中的元组

在 Python 中,可以使用 for 循环遍历包含元组的列表。在每次迭代中,可以将元组解包成单独的变量。

示例
# 元组列表
students = [("Alice", 90),("Bob", 85),("Charlie", 92),("David", 88)
]# 使用 for 循环遍历元组列表
for name, grade in students:print(f"{name} scored {grade}")
解释
  1. 初始化元组列表

    students = [("Alice", 90),("Bob", 85),("Charlie", 92),("David", 88)
    ]
    

    这里,students 列表被初始化为包含四个元组,每个元组包含一个学生的姓名和成绩。

  2. 使用 for 循环遍历元组列表

    for name, grade in students:
    

    for 循环遍历 students 列表中的每个元组,将元组中的第一个元素解包到 name 变量中,第二个元素解包到 grade 变量中。

  3. 打印姓名和成绩

    print(f"{name} scored {grade}")
    

    在每次迭代中,打印学生的姓名和他们的成绩。

输出
Alice scored 90
Bob scored 85
Charlie scored 92
David scored 88

Python for 循环中的 zip 函数

在 Python 中,zip 函数允许你在并行中迭代多个可迭代对象(如列表、元组等),将它们的元素组合成元组。这在同时处理多个序列时非常有用。

示例
# 样例列表
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]# 使用 zip 在 for 循环中
for name, age in zip(names, ages):print(f"{name} is {age} years old.")
解释
  1. 初始化列表

    names = ["Alice", "Bob", "Charlie"]
    ages = [25, 30, 35]
    

    这里,names 列表包含三个名字,ages 列表包含三个年龄。

  2. 使用 zip 函数

    for name, age in zip(names, ages):
    

    zip(names, ages)namesages 列表中的元素配对,生成一个包含元组的迭代器。例如,zip(names, ages) 生成的迭代器包含 (("Alice", 25), ("Bob", 30), ("Charlie", 35))for 循环遍历这些元组,将每个元组中的第一个元素解包到 name 变量中,第二个元素解包到 age 变量中。

  3. 打印姓名和年龄

    print(f"{name} is {age} years old.")
    

    在每次迭代中,打印学生的姓名和他们的年龄。

输出
Alice is 25 years old.
Bob is 30 years old.
Charlie is 35 years old.

常见问题解答(FAQs)

  1. 如何从 1 开始 for 循环?
    在 Python 中,要从 1 开始 for 循环,可以使用 range() 函数如下所示:

    for i in range(1, n):# 代码块
    

    这里,n 是终点,循环将从 1 开始,直到 n-1 结束。

  2. range 函数在 Python for 循环中的作用是什么?
    range() 函数生成一个数字序列,可以在 for 循环中用来迭代。它最多接受三个参数:start(起始值)、stop(结束值)和 step(步长),并返回一个从 start(包含)到 stop(不包含)的不可变数字序列。

    • start:可选参数,默认为 0。
    • stop:必填参数,表示生成序列的结束值(不包含)。
    • step:可选参数,默认为 1。

    示例:

    for i in range(1, 10, 2):print(i)
    

    输出:

    1
    3
    5
    7
    9
    
  3. for 循环中的 i 是什么?
    for 循环中的 i 是一个循环变量,在每次迭代中取序列或可迭代对象中的一个值。它通常用作计数器或引用序列中的元素。

    示例:

    for i in range(5):print(i)
    

    输出:

    0
    1
    2
    3
    4
    
  4. 循环的公式是什么?
    虽然没有固定的“公式”来描述循环,但循环通常遵循以下结构:

    for variable in iterable:# 代码块
    

    循环会为可迭代对象(如列表、范围等)中的每个项目执行代码块。

    示例:

    my_list = [1, 2, 3, 4, 5]
    for item in my_list:print(item)
    

    输出:

    1
    2
    3
    4
    5
    
  5. 如何在 Python 中创建列表?
    在 Python 中,可以通过在方括号中放置逗号分隔的值来创建列表。例如:

    my_list = [1, 2, 3, 4, 5]
    

    列表可以包含不同类型的数据元素,包括数字、字符串和其他列表。

    示例:

    mixed_list = [1, "apple", [2, 3], True]
    print(mixed_list)
    

    输出:

    [1, 'apple', [2, 3], True]
    

总结

在这篇教程中,我们深入探讨了 Python 强大且灵活的 for 循环,并学习了如何有效地使用 enumeratezip 等函数来遍历列表和其他可迭代对象。通过掌握这些技术,你可以编写更高效、更易读的代码,从而提升你的编程技能。

主要内容回顾
  1. 从 1 开始的 for 循环

    • 使用 range(1, n) 可以从 1 开始迭代到 n-1
    • 示例:
      for i in range(1, 6):print(i)
      
  2. range 函数

    • range(start, stop, step) 生成一个从 startstop-1 的数字序列,步长为 step
    • 示例:
      for i in range(0, 10, 2):print(i)
      
  3. enumerate 函数

    • enumerate(iterable) 返回一个包含索引和值的枚举对象,方便在循环中同时获取索引和值。
    • 示例:
      fruits = ["apple", "banana", "cherry"]
      for index, fruit in enumerate(fruits):print(f"Index {index}: {fruit}")
      
  4. zip 函数

    • zip(*iterables) 将多个可迭代对象的元素配对,生成一个包含元组的迭代器。
    • 示例:
      names = ["Alice", "Bob", "Charlie"]
      ages = [25, 30, 35]
      for name, age in zip(names, ages):print(f"{name} is {age} years old.")
      
  5. 嵌套循环

    • 嵌套循环是在一个循环内部再嵌套另一个循环,常用于处理多维数据结构。
    • 示例:
      for i in range(1, 6):for j in range(1, 6):print(f"{i * j:2}", end=" ")print()
      
  6. pass 语句

    • pass 是一个空操作,用于占位,表示这里将来可能会添加代码,但目前不需要执行任何操作。
    • 示例:
      for i in range(5):if i % 2 == 0:pass  # 占位符,用于未来代码else:print(f"Odd number: {i}")
      

相关文章:

Python For循环

Python 的 for 循环是自动化重复任务的强大工具,可以使代码更高效、更易于管理。本教程将解释 for 循环的工作原理,探讨不同的应用场景,并提供大量实用示例。无论你是初学者还是希望提升技能的开发者,这些示例都将帮助你更好地在 …...

C++入门——“C++11-右值引用和移动语义”

C11相比于C98增加以许多新特性,让C语言更加灵活好用,但是貌似也增加了许多学习的难度,现在先看第一部分。 一、右值引用和移动语义 1.右值引用和左值引用 在C中,值可以大致分为右值和左值,左值大概是哪些已经被定义的变…...

timm使用笔记

timm(Timm is a model repository for PyTorch)是一个 PyTorch 原生实现的计算机视觉模型库。它提供了预训练模型和各种网络组件,可以用于各种计算机视觉任务,例如图像分类、物体检测、语义分割等等。timm(库提供了预训…...

android浏览器源码 可输入地址或关键词搜索 android studio 2024 可开发可改地址

Android 浏览器是一种运行在Android操作系统上的应用程序,主要用于访问和查看互联网内容。以下是关于Android浏览器的详细介绍: 1. 基本功能 Android浏览器提供了用户浏览网页的基本功能,如: 网页加载:支持加载静态…...

贪心算法入门(一)

1.什么是贪心算法? 贪心算法是一种解决问题的策略,它将复杂的问题分解为若干个步骤,并在每一步都选择当前最优的解决方案,最终希望能得到全局最优解。这种策略的核心在于“最优”二字,意味着我们追求的是以最少的时间和…...

C# ref和out 有什么区别,分别用在那种场景

在C#中,ref和out都是用于按引用传递参数的关键字,但它们有一些细微的差别和使用场景。 ref 关键字 ref 关键字用于按引用传递参数。这意味着当你将一个变量作为参数传递给一个方法时,你不是传递变量的值,而是传递变量的引用。因…...

TikTok直播专线:提升直播效果和体验

作为当今全球最受欢迎的社交媒体平台之一,TikTok为商家提供了无限的商机和市场。然而,商家在使用TikTok时也面临着许多挑战,如网络延迟、直播中断以及账号被封等问题。TikTok直播专线旨在为商家提供高速稳定的网络连接,助力他们在…...

由浅入深逐步理解spring boot中如何实现websocket

实现websocket的方式 1.springboot中有两种方式实现websocket&#xff0c;一种是基于原生的基于注解的websocket&#xff0c;另一种是基于spring封装后的WebSocketHandler 基于原生注解实现websocket 1&#xff09;先引入websocket的starter坐标 <dependency><grou…...

1-petalinux 问题记录-根文件系统分区问题

在MPSOC上使用SD第二分区配置根文件系统的时候&#xff0c;需要选择对应的bootargs&#xff0c;但是板子上有emmc和sd两个区域&#xff0c;至于配置哪一种mmcblk0就出现了问题&#xff0c;从vivado中的BlockDesign和MLK XCZU2CG原理图来看的话&#xff0c;我使用的SD卡应该属于…...

微信小程序的上拉刷新与下拉刷新

效果图如下&#xff1a; 上拉刷新 与 下拉刷新 代码如下&#xff1a; joked.wxml <scroll-view class"scroll" scroll-y refresher-enabled refresher-default-style"white" bindrefresherrefresh"onRefresh" refresher-triggered&qu…...

【大语言模型】ACL2024论文-05 GenTranslate: 大型语言模型是生成性多语种语音和机器翻译器

【大语言模型】ACL2024论文-05 GenTranslate: 大型语言模型是生成性多语种语音和机器翻译器 GenTranslate: 大型语言模型是生成性多语种语音和机器翻译器 目录 文章目录 【大语言模型】ACL2024论文-05 GenTranslate: 大型语言模型是生成性多语种语音和机器翻译器目录摘要研究背…...

KPRCB结构之ReadySummary和DispatcherReadyListHead

ReadySummary: Uint4B DispatcherReadyListHead : [32] _LIST_ENTRY 请参考 _KTHREAD *__fastcall KiSelectReadyThread(ULONG LowPriority, _KPRCB *Prcb)...

批处理之for语句从入门到精通--呕血整理

文章目录 一、前言二、for语句的基本用法三、文本解析显神威&#xff1a;for /f 用法详解四、翻箱倒柜遍历文件夹&#xff1a;for /r五、仅仅为了匹配第一层目录而存在&#xff1a;for /d六、计数循环&#xff1a;for /l后记 for语句从入门到精通 一、前言 在批处理中&#…...

pycharm小游戏贪吃蛇及pygame模块学习()

由于代码量大&#xff0c;会逐渐发布 一.pycharm学习 在PyCharm中使用Pygame插入音乐和图片时&#xff0c;有以下这些注意事项&#xff1a; 插入音乐&#xff1a; - 文件格式支持&#xff1a;Pygame常用的音乐格式如MP3、OGG等&#xff0c;但MP3可能需额外安装库&#xf…...

redis实战--黑马商城 记录

一、视频地址 黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 二、笔记地址 Redis基础篇Redis实战篇...

机器人技术革新:人工智能的强力驱动

内容概要 在当今世界&#xff0c;机器人技术与人工智能的结合正如星星与大海&#xff0c;彼此辉映。随着科技的不断进步&#xff0c;人工智能不仅仅是为机器人赋予了“聪明的大脑”&#xff0c;更是推动了整个行业的快速发展。回顾机器人技术的发展历程&#xff0c;我们会发现…...

漫途焊机安全生产监管方案,提升安全生产管理水平!

随着智能制造时代的到来&#xff0c;企业安全生产管理的重要性日益凸显。特别是在现代工厂中&#xff0c;焊机的安全生产监管成为了一个不容忽视的重要环节。传统的焊机安全生产监管方式存在诸多不足&#xff0c;如人工巡检频率低、数据延迟、安全隐患发现不及时等问题。因此&a…...

动态规划之两个数组的 dp(上)

文章目录 最长公共子序列不相交的线不同的子序列通配符匹配 最长公共子序列 题目&#xff1a;最长公共子序列 思路 选取s1的[0, i]区间以及s2的[0&#xff0c; j]区间作为研究对象 状态表示&#xff1a;dp[i][j]表示&#xff0c;s1的[0, i]区间以及s2的[0&#xff0c; j]区间内…...

DC-9靶机通关

这是这个系列的最后一个靶机了&#xff01;&#xff01;&#xff01;经过前面的锻炼和学习&#xff0c;这次我的目标是尽量不借助任何教程或者提示来拿下这个靶机&#xff01;&#xff01;&#xff01;下面我们看能不能成功&#xff01;&#xff01;&#xff01; 1.实验环境 攻…...

前端注释都应该怎么写?

以下是一些前端注释的例子&#xff0c;展示了如何应用前面提到的建议&#xff1a; 1. 使用清晰、简洁的语言 // 计算两个数的平均值 function calculateAverage(a, b) {return (a b) / 2; }2. 描述代码的目的和功能 // 将日期格式化为 "YYYY-MM-DD" 的字符串 fun…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

基于Java+VUE+MariaDB实现(Web)仿小米商城

仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意&#xff1a;运行前…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...