【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
文章目录
- 引言
- 一、Python简介
- 1.1 历史背景
- 1.2 设计哲学
- 1.3 语言特性
- 1.4 应用场景
- 1.5 为什么选择Python
- 二、Python语言基础
- 2.1 注释规则
- 2.1.1 单行注释
- 2.1.2 多行注释
- 2.1.3 文件编码声明注释
- 2.2 代码缩进
- 2.3 编码规范
- 2.3.1 命名规范
- 2.3.2 每行字符数
- 2.3.3 空行
- 2.3.4 缩进
- 2.3.5 运算符空格
- 2.3.6 函数参数
- 2.3.7 文档字符串(Docstring)
- 2.3.8 模块导入
- 2.3.9 不要在一行中使用多个语句
- 三、Python中的变量
- 3.1 变量的定义与使用
- 3.2 常见数据类型
- 数值类型
- 序列类型
- 集合类型
- 映射类型
- 3.2.1 整数(int)
- 3.2.2 浮点数(float)
- 3.2.3 复数(complex)
- 3.2.4 字符串(str)
- 3.2.5 列表(list)
- 3.2.6 元组(tuple)
- 3.2.7 字典(dict)
- 3.2.8 集合(set)
- 3.2.9 冻结集合(frozenset)
- 3.3 动态类型与类型转换
- 3.4 变量的作用域
- 3.4.1 局部作用域
- 3.4.2 全局作用域
- 总结
引言
Python是一种广泛应用的高级编程语言,以其简洁易读的语法和强大的功能吸引了众多开发者。从Web开发、数据分析到人工智能,Python在各个领域都有着广泛的应用。本教程将带您从零开始,深入了解Python的基础知识,涵盖Python语言基础、变量和数据类型等内容。无论您是编程新手还是有经验的开发者,希望这篇文章能帮助您更好地掌握Python,为未来的编程之旅奠定坚实的基础。
一、Python简介
Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于20世纪90年代初创立。Python以其简洁易读的语法和强大的功能而闻名,使其成为新手和经验丰富的开发人员的首选语言之一。
1.1 历史背景
Python的设计初衷是为了强调代码的可读性和简洁性。Guido van Rossum在1989年的圣诞节期间开始编写Python,目的是为了创建一种既能处理系统管理任务又能进行大规模应用开发的语言。1991年,Python 0.9.0版本发布,自此Python逐步发展成为一门功能强大且灵活的编程语言。
1.2 设计哲学
Python的设计哲学强调代码的可读性和简洁性,被总结为“Pythonic”风格。其核心思想包括:
- 明确优于晦涩:代码应该是清晰的,容易理解的。
- 简单优于复杂:应当尽量使用简单的解决方案。
- 复杂优于凌乱:如果需要复杂性,应保持有条理。
- 可读性很重要:代码不仅是写给机器执行的,更是写给人看的。
这些原则在Python的Zen of Python中有详细描述,可以通过在Python解释器中输入import this
来查看。
1.3 语言特性
Python具有许多吸引开发者的特性:
- 易读易写:Python的语法设计简洁明了,非常接近人类语言。
- 丰富的标准库:Python拥有一个强大的标准库,涵盖了从网络编程到文本处理的各个方面,使开发者可以快速构建各种应用。
- 跨平台:Python是跨平台的,可以在Windows、macOS和Linux等操作系统上运行。
- 动态类型:Python是动态类型语言,变量在使用时可以随时改变其类型。
- 解释执行:Python代码是逐行解释执行的,不需要编译,因此开发调试周期较短。
- 社区支持:Python拥有一个活跃且庞大的社区,提供了丰富的第三方库和框架,帮助开发者快速解决各种问题。
1.4 应用场景
Python的广泛应用涵盖了多个领域:
- Web开发:如Django、Flask等Web框架帮助快速构建高性能的Web应用。
- 数据科学与机器学习:Pandas、NumPy、Scikit-learn等库使得数据处理与分析变得高效便捷。
- 自动化脚本:Python的简洁语法使其成为编写自动化脚本的理想选择。
- 人工智能与深度学习:TensorFlow、PyTorch等框架在AI与深度学习领域被广泛使用。
- 科学计算:SciPy、Matplotlib等库广泛用于科学研究和数据可视化。
1.5 为什么选择Python
选择Python作为编程语言有许多原因:
- 学习曲线平缓:Python的语法简洁,逻辑清晰,适合初学者学习。
- 生产效率高:Python的高层次数据结构和动态类型结合快速原型开发能力,使得开发效率大大提高。
- 强大的社区和生态系统:丰富的第三方库和活跃的社区支持,使得Python在解决实际问题时得心应手。
- 多领域应用:无论是Web开发、数据分析、AI还是自动化,Python都能提供强有力的支持。
总之,Python因其简洁、高效和强大的功能而成为现代编程世界中不可或缺的一部分。无论你是初学者还是经验丰富的开发者,Python都能帮助你高效地完成各种任务。
二、Python语言基础
在开始编写Python代码之前,了解Python的注释规则、代码缩进和编码规范是非常重要的。这些基础知识不仅有助于编写清晰易懂的代码,还能提高代码的可维护性和团队协作效率。
2.1 注释规则
注释是代码中非执行的一部分,用于解释代码的意图、功能或逻辑。Python支持单行注释和多行注释。
2.1.1 单行注释
单行注释以井号 (#
) 开头,井号后的内容会被解释器忽略。单行注释通常用于解释代码行的作用。
# 这是一个单行注释
print("Hello, World!") # 这是在代码行末的注释
2.1.2 多行注释
Python没有专门的多行注释语法,但可以使用多个单行注释或者三引号字符串 ('''
或 """
) 来实现多行注释。尽管三引号字符串本质上是字符串,但如果它们不赋值给任何变量,则可以作为注释使用。
'''
这是一个多行注释
可以写在多行上
解释代码的详细信息
'''"""
这是另一个多行注释的例子
同样可以写在多行上
"""
2.1.3 文件编码声明注释
在处理包含非ASCII字符的Python文件时,指定文件的编码方式是很重要的。Python源文件默认使用UTF-8编码,但你也可以显式声明文件的编码方式。文件编码声明通常放在文件的开头,通过特殊的注释来实现。
文件编码声明注释的格式如下:
# -*- coding: <encoding-name> -*-
例如,若要声明文件使用UTF-8编码,可以在文件的第一行或第二行添加如下注释:
# -*- coding: utf-8 -*-
或
#!/usr/bin/env python
# -*- coding: utf-8 -*-
第一种声明方法仅指定编码方式,而第二种方法则结合了Unix系统中的“shebang”行(用于指定脚本的解释器),并声明了文件编码。
下面是一个示例,包含中文字符并声明了文件编码:
# -*- coding: utf-8 -*-print("你好,世界!") # 输出包含中文字符的字符串
声明文件编码有助于避免在处理包含非ASCII字符的文件时出现编码错误,确保代码在不同环境中的一致性和可移植性。
综上所述,通过合理使用单行注释、多行注释和文件编码声明注释,可以显著提升代码的可读性、可维护性和兼容性。
2.2 代码缩进
代码缩进是Python语法的核心部分。Python使用缩进来表示代码块,不同于其他语言使用大括号 {}
或关键词(如 begin
和 end
)来界定代码块。正确的缩进不仅让代码更加美观,还能避免语法错误。
- 缩进规范:Python官方建议每一级缩进使用4个空格,而不是使用制表符(Tab)。
- 一致性:确保在整个代码中使用统一的缩进方式,要么全用空格,要么全用Tab,但推荐使用空格。
以下是一个使用缩进的示例:
if True:print("True") # 这行缩进了4个空格
else:print("False") # 这行也缩进了4个空格
2.3 编码规范
为了使Python代码更加规范和可读,Python社区提出了一系列编码规范,其中最著名的是PEP 8。以下是一些关键的编码规范:
2.3.1 命名规范
- 变量名:使用小写字母和下划线(snake_case),如
my_variable
。 - 函数名:同样使用小写字母和下划线(snake_case),如
my_function
。 - 类名:使用大写字母开头的单词(PascalCase),如
MyClass
。 - 常量名:使用全大写字母和下划线(UPPER_CASE),如
MY_CONSTANT
。
2.3.2 每行字符数
每行代码的字符数应尽量控制在79个字符以内,文档字符串或注释则限制在72个字符以内。超过这个长度时,应考虑换行。
# 这是一个例子,展示如何在长行代码中使用续行符
long_variable_name = (some_value + another_value - yet_another_value + more_values - last_value)
2.3.3 空行
- 顶级定义(如函数和类)之间使用两个空行。
- 类和函数内的方法之间使用一个空行。
class MyClass:def __init__(self):passdef my_method(self):passdef my_function():pass
2.3.4 缩进
- 使用空格:每级缩进使用4个空格,而不是制表符(Tab)。
- 一致性:确保整个代码中使用统一的缩进方式。
def my_function():if True:print("Hello, World!") # 这行缩进了4个空格
2.3.5 运算符空格
- 运算符两侧加空格:在赋值(
=
)、比较(==
)和算术运算符(+
,-
,*
,/
)的两侧加上空格。
x = 1
y = x + 2
if x == 1:print("x is 1")
2.3.6 函数参数
- 函数参数间不加空格:在函数调用和定义时,参数之间不加空格。
# 函数定义时的参数无空格
def my_function(param1, param2):return param1 + param2# 函数调用时的参数无空格
result = my_function(1, 2)
2.3.7 文档字符串(Docstring)
- 函数和类的文档字符串:函数和类应使用三引号(
'''
或"""
)编写文档字符串,描述其功能、参数和返回值。
def my_function(param1, param2):"""这是一个示例函数。参数:param1: 第一个参数param2: 第二个参数返回:两个参数的和"""return param1 + param2
2.3.8 模块导入
- 导入顺序:首先导入标准库模块,然后导入第三方模块,最后导入本地应用/库的特定模块。每组导入之间使用一个空行分隔。
- 导入具体名称:尽量避免使用
from module import *
这种导入方式。
import os
import sysimport numpy as np
import pandas as pdfrom my_module import my_function
2.3.9 不要在一行中使用多个语句
- 单行单个语句:尽量避免在一行中使用多个语句。
x = 1
y = 2
print(x)
print(y)
通过遵循这些基础语法规则和编码规范,可以提高代码的可读性、可维护性和团队协作效率,为后续的Python编程打下坚实的基础。
三、Python中的变量
变量是编程中的基本概念之一,用于存储和操作数据。在Python中,变量的定义和使用相对简单,但理解变量的类型和作用范围对于编写高效、可靠的代码至关重要。
3.1 变量的定义与使用
在Python中,变量的定义不需要显式声明其类型,只需使用赋值语句即可:
x = 10 # 定义一个整数变量
name = "Alice" # 定义一个字符串变量
pi = 3.14 # 定义一个浮点数变量
is_active = True # 定义一个布尔变量
变量名应该具有描述性,以便代码的可读性和可维护性。变量名必须以字母(a-z,A-Z)或下划线(_)开头,后续字符可以是字母、数字(0-9)或下划线。变量名对大小写敏感。
3.2 常见数据类型
Python提供了多种内置数据类型,主要分为数值类型、序列类型、集合类型和映射类型。理解这些数据类型及其特性,有助于我们高效地进行数据处理和操作。下面将对这些常见数据类型进行详细介绍。
数值类型
- 整数(int):没有小数部分的数字,范围可变。
- 浮点数(float):带有小数部分的数字,通常用于表示需要精确到小数点的数值。
- 复数(complex):包含实部和虚部的数字,格式为
a + bj
。
序列类型
- 字符串(str):由字符组成的不可变序列,用于表示文本。
- 列表(list):有序的可变集合,可以包含任意类型的元素。
- 元组(tuple):有序的不可变集合,一旦定义,元素不能被修改。
集合类型
- 集合(set):无序的不重复元素集合,常用于去重和集合运算。
- 冻结集合(frozenset):不可变的集合。
映射类型
- 字典(dict):无序的键值对集合,每个键必须是唯一的,通常用于存储具有映射关系的数据。
下面是对这些数据类型的详细解释和示例代码。
3.2.1 整数(int)
整数是没有小数部分的数字,Python中的整数可以是任意大小。
a = 5
b = -10
c = 12345678901234567890
3.2.2 浮点数(float)
浮点数是带有小数部分的数字,通常用于表示需要精确到小数点的数值。
pi = 3.14159
gravity = 9.81
3.2.3 复数(complex)
复数包含实部和虚部,格式为 a + bj
。
z = 1 + 2j
print(z.real) # 输出:1.0
print(z.imag) # 输出:2.0
3.2.4 字符串(str)
字符串是由一系列字符组成的文本数据,可以使用单引号或双引号表示。
greeting = "Hello, World!"
name = 'Alice'
字符串是不可变的,这意味着字符串中的字符不能被修改。
3.2.5 列表(list)
列表是一个有序的可变集合,可以包含任意类型的元素。
numbers = [1, 2, 3, 4, 5]
names = ["Alice", "Bob", "Charlie"]
mixed = [1, "Alice", 3.14, True]
列表可以进行切片操作、添加、删除和修改元素。
3.2.6 元组(tuple)
元组是一个有序的不可变集合,一旦定义,元素不能被修改。
point = (1, 2)
rgb = (255, 0, 0)
元组通常用于表示一组相关的值。
3.2.7 字典(dict)
字典是一个无序的键值对集合,每个键必须是唯一的,通常用于存储具有映射关系的数据。
person = {"name": "Alice", "age": 25, "city": "New York"}
scores = {"math": 90, "english": 85}
可以通过键来访问、添加和修改字典中的值。
3.2.8 集合(set)
集合是一个无序的不重复元素集合,常用于去重和集合运算。
unique_numbers = {1, 2, 3, 4, 5}
names_set = {"Alice", "Bob", "Charlie"}
3.2.9 冻结集合(frozenset)
冻结集合与集合类似,但不可变。
frozen_set = frozenset([1, 2, 3, 4, 5])
通过了解和掌握这些常见的数据类型及其特性,可以在编写Python代码时更灵活地处理不同类型的数据。
3.3 动态类型与类型转换
Python是动态类型语言,变量的类型是在运行时确定的,并且可以随时更改。
x = 10 # 整数
x = "Hello" # 现在是字符串
可以使用内置函数进行类型转换:
x = 3.14
y = int(x) # 将浮点数转换为整数,结果为3s = "123"
n = int(s) # 将字符串转换为整数,结果为123b = bool(1) # 将整数转换为布尔值,结果为True
3.4 变量的作用域
变量的作用域决定了变量在程序中的可见性和生命周期。Python中的作用域分为局部作用域、全局作用域和内建作用域。
3.4.1 局部作用域
局部变量是在函数内部定义的变量,只在函数内部可见。
def my_function():x = 10 # 局部变量print(x)my_function()
print(x) # 这里会报错,因为x在函数外部不可见
3.4.2 全局作用域
全局变量是在函数外部定义的变量,可以在整个模块中访问。
x = 10 # 全局变量def my_function():print(x) # 可以访问全局变量my_function()
print(x) # 全局变量可以在函数外部访问
使用 global
关键字可以在函数内部修改全局变量。
x = 10def my_function():global xx = 20my_function()
print(x) # 结果为20
通过理解和掌握这些基本概念和操作,你可以有效地在Python中使用变量,为后续的编程打下坚实的基础。
总结
通过本教程,我们系统地介绍了Python的基础知识,包括注释规则、代码缩进和编码规范等Python语言基础,以及Python中的变量和常见数据类型。掌握这些基础知识,您将能够编写出更规范、可读性更高的Python代码。这不仅有助于提高您的编程效率,还能为后续深入学习和应用Python打下坚实的基础。希望您能通过不断实践,进一步巩固所学知识,逐步迈向Python编程的更高水平。
相关文章:
【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
🔥 个人主页:空白诗 文章目录 引言一、Python简介1.1 历史背景1.2 设计哲学1.3 语言特性1.4 应用场景1.5 为什么选择Python 二、Python语言基础2.1 注释规则2.1.1 单行注释2.1.2 多行注释2.1.3 文件编码声明注释 2.2 代码缩进2.3 编码规范2.3.1 命名规范…...
AI学习指南机器学习篇-KNN的优缺点
AI学习指南机器学习篇-KNN的优缺点 在机器学习领域中,K最近邻(K-Nearest Neighbors,KNN)算法是一种十分常见的分类和回归方法之一。它的原理简单易懂,但在实际应用中也存在一些优缺点。本文将重点探讨KNN算法的优缺点…...
全网最全!25届最近5年上海理工大学自动化考研院校分析
上海理工大学 目录 一、学校学院专业简介 二、考试科目指定教材 三、近5年考研分数情况 四、近5年招生录取情况 五、最新一年分数段图表 六、历年真题PDF 七、初试大纲复试大纲 八、学费&奖学金&就业方向 一、学校学院专业简介 二、考试科目指定教材 1、考试…...
LANG、LC_MESSAGES和LC_ALL
在Linux系统中,环境变量LANG、LC_MESSAGES和LC_ALL用于控制系统和应用程序的语言和区域设置(locale)。它们的具体作用如下: LANG: LANG是最基本的环境变量,用于指定系统的默认语言和区域设置。它是一个全局…...
生成式AI和LLM的一些基本概念和名词解释
1. Machine Learning 机器学习是人工智能(AI)的一个分支,旨在通过算法和统计模型,使计算机系统能够从数据中学习并自动改进。机器学习算法使用数据来构建模型,该模型可用于预测或决策。机器学习应用于各种领域&#x…...
python项目(课设)——飞机大战小游戏项目源码(pygame)
主程序 import pygame from plane_sprites import * class PlaneGame: """ 游戏类 """ def __init__(self): print("游戏初始化") # 初始化字体模块 pygame.font.init() # 创建游戏…...
Chatgpt教我打游戏攻略
宝可梦朱 我在玩宝可梦朱的时候,我的同行队伍里有黏美儿,等级为65,遇到了下雨天但是没有进化,为什么呢? 黏美儿(Goomy)要进化为黏美龙(Goodra),需要满足以下…...
最全信息收集工具集
吉祥学安全知识星球🔗除了包含技术干货:Java代码审计、web安全、应急响应等,还包含了安全中常见的售前护网案例、售前方案、ppt等,同时也有面向学生的网络安全面试、护网面试等。 所有的攻防、渗透第一步肯定是信息收集了…...
redis类型解析汇总
redis类型解析汇总 介绍数据类型简介主要数据类型:衍生类型: 字符串(String)底层设计原理图例设计优势字符串使用方法设置字符串值获取字符串值获取和设置部分字符串获取字符串长度追加字符串设置新值并返回旧值递增/递减同时设置…...
Unity3d自定义TCP消息替代UNet实现网络连接
以前使用UNet实现网络连接,Unity2018以后被弃用了。要将以前的老程序升到高版本,最开始打算使用Mirro,结果发现并不好用。那就只能自己写连接了。 1.TCP消息结构 (1). TCP消息是按流传输的,会发生粘包。那么在发射和接收消息时就需要对消息进行打包和解包。如果接收的消息…...
git fetch 和 git pull区别
git branch //查看本地所有分支 git branch -r //查看远程所有分支 git branch -a //查看本地和远程的所有分支 git branch <branchname> //新建分支 git branch -d <branchname> //删除本地分支 git branch -d -r <branchname> //删除远程分支&#x…...
冲击2024年CSDN博客之星TOP1:CSDN文章质量分查询在哪里?
文章目录 一,2023年博客之星规则1,不高的入围门槛2,[CSDN博文质量分测评地址](https://www.csdn.net/qc) 二,高分秘籍1,要有目录2,文章长度要足够,我的经验是汉字加代码至少1000字。3࿰…...
高性能并行计算华为云实验一:MPI矩阵运算
目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建矩阵乘法源码 3.1.1 实验说明 3.1.2 实验步骤 3.2 创建卷积和池化操作源码 3.2.1 实验说明 3.2.2 实验步骤 3.3 创建Makefile文件并完成编译 3.4 建立主机配置文件与运行监测 四、实验结果与分析 4.1 矩阵乘法…...
库卡机器人减速机维修齿轮磨损故障
一、KUKA机器人减速器齿轮磨损故障的原因 1. 润滑不足:润滑油不足或质量不佳可能导致齿轮磨损。 2. 负载过重:超过库卡机械臂减速器额定负载可能导致齿轮磨损。 3. 操作不当:未按照说明书操作可能导致KUKA机器人减速器齿轮磨损。 4. 维护不足…...
【C/C++】我自己提出的数组探针的概念,快来围观吧
数组探针 在许多编程语言中如果涉及到数组那么就可以使用这个东西,便于遍历数组 中文名 数组探针 外文名 arrProbe 适用领域 大数据 所属学科 软件技术、编程 提出者 董翔 目录 1 概述2 工作原理3 应用场景 ▪ 数据处理和分析▪ 图像处理▪ 游戏开发▪…...
ArcGIS图斑分区(组)排序—从上到下从左到右
点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 ArcGIS图斑分区(组)从上到下从左到右排序 是之前的内容的升级 GIS技巧100例——12ArcGIS图斑空间排序 关于今天的内容 我们在19年已经和大家分…...
React useRef 组件内及组件传参使用
保存变量, 改变不引起渲染 import { useRef} from react; const dataRef useRef(null) ... dataRef.current setTimeout(()>console.log(...),1000)绑定dom const inputRef useRef(null) <input ref {inputRef} />绑定dom列表 - ref 回调 const ite…...
Intelij IDEA中Mapper.xml无法构建到资源目录的问题
问题场景: 在尝试把原本在eclipse上的Java Web项目转移至Intelij idea上时,在配置文件均与eclipse一致的情况下出现了如下报错: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.umbrella.crm_core.…...
2024.6.23周报
目录 摘要 ABSTRACT 一、文献阅读 一、题目 二、摘要 三、网络架构 四、创新点 五、文章解读 1、Introduction 2、Method 3、实验 4、结论 二、代码实验 总结 摘要 本周阅读了一篇题目为NAS-PINN: NEURAL ARCHITECTURE SEARCH-GUIDED PHYSICS-INFORMED NEURAL N…...
鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(中)
前言 在鸿蒙开发的广袤天地中,网络层的搭建与封装无疑是构建高效、稳定应用的基石。继上篇的探索之后,本文将继续深入网络层的优化之旅,揭秘如何通过类型转换器、请求查询附加器以及丰富的常量参数,将网络层的构建艺术推向一个新…...
docker in docker 连私有仓库时报错 https
背景 jenkins 是使用 docker 方式部署的, 在 jenkins中又配置了 docker 的命令, 使用的宿主机的 docker 环境, 在jenkins 中执行 docker 相关命令的时候报错 jenkinse0e7b943b6e4:/$ docker login -u admin -p Harbor12345 172.16.100.15:80 WARNING! Using --password via t…...
mac怎么压缩pdf文件,苹果电脑怎么压缩pdf文件大小
在当今数字化时代,PDF文件已成为广泛使用的文档格式之一。然而,PDF 文件可能会因其包含的图像、图形和其他元素而导致文件较大,这可能会影响文件的传输、存储和共享。因此,对 PDF 文件进行压缩以减小其文件大小是很有必要的。今天…...
兴顺物流管理系统的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,驾驶员管理,物流资讯管理,车辆管理,基础数据管理 员工账户功能包括:系统首页,个人中心,物流资讯管理&…...
力扣(2024.06.21)
1. 54——螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照顺时针螺旋顺序 ,返回矩阵中的所有元素。 标签:数组,矩阵,模拟 代码: class Solution:def spiralOrder(self, matrix: List[List[int]]) -&…...
飞机大战java
"飞机大战"是一种经典的射击游戏,通常在各种平台上都有实现,包括Java。如果你想要开发一个Java版本的飞机大战游戏,你可能需要考虑以下几个方面: 游戏设计:确定游戏的基本规则,比如玩家控制的飞机…...
Springboot的自动配置原理
文章目录 Springboot的自动配置原理?1. Spring Boot Starter 依赖2.SpringBootApplication注解3.自动触发配置4.Auto-configuration Classes5.条件注解6. 外部配置文件7. 优先级和排除总结 Springboot的自动配置原理? 1. Spring Boot Starter 依赖 Spring Boot 提供了各种 …...
Interview preparation--elascitSearch深分页问题
深度分页出现原因 当我们需要查询的数据页数特别大的时候,比如from size 大于10000 的时候,可能出现“window is too large” 异常,如下网图: 查询语句如下 { "query": { "bool": { "must": [ {…...
C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出
目录 题目 实例 方法一:直接交换 方法二:间接交换 拓展 题目 编写一个函数,将一个无符号整数的所有位逆序(在32位机器下) 实例 例如有一个无符号整数 unsigned int num 32; unsigned int 在32位系统中占4个字…...
elementplus如何实现dialog遮罩层外的元素可以被操作点击
elementplus如何实现dialog遮罩层外的元素可以被操作点击 element plus 组件库中的 dialog 组件可以说是使用频率最高的组件之一,它的效果是弹出一个对话框,外面默认会有一个蒙层。 现在我碰到的需求是,弹窗要正常显示,但是蒙层下…...
Springboot整合Kafka消息队列服务实例
一、Kafka相关概念 1、关于Kafka的描述 Kafka是由Apache开源,具有分布式、分区的、多副本的、多订阅者,基于Zookeeper协调的分布式处理平台,由Scala和Java语言编写。通常用来搜集用户在应用服务中产生的动作日志数据,并高速的处…...
kotlin——MVVM框架下的大型项目优化
目录 概要 优化思路 一、重构过长的Activity 二、优化臃肿的ViewModel 示例代码: 概要 在大型项目中,随着项目越做越大,activity和viewmodel的代码会越来越多,尽量保持Activity和ViewModel的代码精简和易于维护是非常重要的。个人…...
echarts实现折线图点击添加标记
文章目录 背景一、代码示例 背景 业务场景体现在功能层面主要两点, 折线图表设置点击事件点击事件与图标渲染标记绑定 对于节点没有被添加标记的可以,弹框提示添加标记,并提供标记内容输入框,已经添加过标记的点,点…...
循环赛日程表
描述 n 2 ^ k个选手 每个选手必须与其他n-1个选手各赛一次每个选手一天赛一次比赛打n-1天 思路 k 3时的解 我们先进行假设:每个选手第一天和自己比,然后分解成4个子问题: (1)14号的第14天,对手1~4号; (2)14号的第58天&a…...
计算机网络:运输层 - 概述
计算机网络:运输层 - 概述 运输层的任务端口号复用与分用UDP协议首部格式 TCP协议面向字节流 运输层的任务 物理层、数据链路层以及网络层,他们共同解决了将主机通过网络互联起来所面临的问题,实现了主机到主机的通信。 网络层的作用范围是…...
使用阿里开源的Spring Cloud Alibaba AI开发第一个大模型应用
背景 前段时间看到Spring推出了SpringAI,可以方便快速的接入ChatGPT等国外的大模型,现在阿里巴巴也紧追脚步推出了Spring Cloud Alibaba AI,Spring Cloud Alibaba AI 目前基于 Spring AI 0.8.1 版本 API 完成通义系列大模型的接入。通义接入…...
`THREE.PointsMaterial` 是 Three.js 中用于创建粒子系统材质的类。它允许你设置粒子系统的外观属性,比如颜色、大小和透明度。
demo案例 THREE.PointsMaterial 是 Three.js 中用于创建粒子系统材质的类。它允许你设置粒子系统的外观属性,比如颜色、大小和透明度。下面是对其构造函数的参数、属性和方法的详细讲解。 构造函数 const material new THREE.PointsMaterial(parameters);参数&am…...
Android-Android Studio-FAQ
1 需求 2 接口 3 Android Studio xml布局代码补全功能失效问题 最终解决方案就是尝试修改compileSdk 为不同SDK版本来解决问题,将原本34修改为32测试会发现xml代码补全功能有效了! 参考资料 Android Studio xml布局代码补全功能失效问题_android studi…...
架构师指南:现代 Datalake 参考架构
这篇文章的缩写版本于 2024 年 3 月 26 日出现在 The New Stack 上。 旨在最大化其数据资产的企业正在采用可扩展、灵活和统一的数据存储和分析方法。这一趋势是由企业架构师推动的,他们的任务是制定符合不断变化的业务需求的基础设施。现代数据湖体系结构通过将数…...
通讯协议大全(UART,RS485,SPI,IIC)
参考自: 常见的通讯协议总结(USART、IIC、SPI、485、CAN)-CSDN博客 UART那么好用,为什么单片机还需要I2C和SPI?_哔哩哔哩_bilibili 5分钟看懂!串口RS232 RS485最本质的区别!_哔哩哔哩_bilibili 喜欢几位…...
基于EXCEL数据表格创建省份专题地图
1 数据源 随着西藏于5月1日发布2022年一季度经济运行情况,31省份一季度GDP数据已全部出炉。 总量方面,粤苏鲁稳居前三;增速方面,23省份高于“全国线”,新疆表现最佳,增速达到7.0%。 表格表现数据不够直观…...
基于java+springboot+vue实现的电商应用系统(文末源码+Lw)241
摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本电商应用系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…...
好文!12个策略解决 Kafka 数据丢失问题
哥们儿!有遇到Kafka数据丢失问题的问题吗,你是如何解决的?今天的文章,V哥来详细解释一下,整理了12种解决策略,希望可以帮助你解决项目中的问题:以下是一些常见的解决方案和最佳实践。 生产者确认…...
Android 第三方框架:网络:OkHttp:源码分析:拦截器
文章目录 涉及到的设计模式 责任链模式:ArrayList策略模式:Interceptor和XXXInterceptor源码分析API总结涉及到的设计模式 责任链模式:ArrayList ArrayList 用ArrayList作为保存顺序的数据结构 把系统提供的各种Interceptor和自定义的Interceptor放入ArrayList中 RealI…...
FlowUs AI的使用教程和使用体验
FlowUs AI 使用教程 FlowUs AI特点使其成为提升个人和团队生产力的有力工具,无论是在学术研究、内容创作、技术开发还是日常办公中都能发挥重要作用。现在来看看如何使用FlowUs AI吧! 注册与登录:首先,确保您已经注册并登录FlowU…...
SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘
概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息,滚动视图(ScrollView)无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中,总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不,在本…...
阿贝云免费虚拟主机和免费云服务器评测
阿贝云是一家提供免费虚拟主机和免费云服务器的服务商,为用户提供了一个便捷的搭建网站和应用的平台。他们的服务受到了很多用户的好评。用户可以轻松地在阿贝云上创建自己的网站,并享受免费的虚拟主机和云服务器。通过阿贝云的服务,用户可以…...
不懂就问,开通小程序地理位置接口有那么难吗?
小程序地理位置接口有什么功能? 若提审后被驳回,理由是“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通,建议完成接口开通后或移除接口相关内容后再进行后续版本提审”,那么遇到这种情况&#x…...
Python 全栈系列256 异步任务与队列消息控制(填坑)
说明 每个创新都会伴随着一系列的改变。 在使用celery进行异步任务后,产生的一个问题恰好也是因为异步产生的。 内容 1 问题描述 我有一个队列 stream1, 对应的worker1需要周期性的获取数据,对输入的数据进行模式识别后分流。worker1我设施为10秒运行…...
从零开始的Ollama指南:部署私域大模型
大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…...
C++类和对象总结
目录 总结 一、引言 二、类的定义 三、对象的创建与初始化 四、访问控制 五、封装 六、继承 七、多态 八、其他特性 九、总结 C类的定义 C对象的创建和初始化 C类的访问控制 总结 一、引言 C是一种面向对象的编程语言,其核心概念是类和对象。类是对现…...