Python3数字类型完全指南:从基础到高级应用

news2026/5/18 16:08:14
前言在Python编程语言中数字Number是最基本、最核心的数据类型之一。无论是简单的数值计算还是复杂的数据分析、科学计算数字类型都扮演着不可或缺的角色。Python3以其简洁、强大和灵活的特性在数字处理方面提供了丰富的支持和工具。本文将系统、全面地介绍Python3中的数字类型涵盖整数int、浮点数float、复数complex、布尔值bool等基本类型深入探讨它们的特点、运算、转换方法并结合实际应用场景介绍math、random、decimal、fractions等高级模块的使用。本文力求做到深入浅出、信息量大、结构清晰适合不同层次的Python开发者阅读。第一章 Python数字类型概述Python3支持多种数字类型每种类型都有其独特的用途和特性。理解这些类型是掌握Python数字处理的基础。1.1 数字类型的分类Python3 支持以下几种主要的数字类型整数int表示正整数、负整数和零没有大小限制。浮点数float表示带有小数部分的数值或使用科学计数法表示的数值。复数complex)由实数部分和虚数部分构成形式为a bj。布尔值bool)True和False是整数的子类型。此外Python还通过标准库提供了其他高级数字类型如decimal.Decimal用于高精度十进制运算。fractions.Fraction用于精确的有理数运算。1.2 数字类型的不可变性Python中的数字数据类型是**不可变immutable**的。这意味着一旦一个数字对象被创建它的值就不能被改变。如果对一个变量重新赋值实际上是在创建一个新的数字对象并让变量指向这个新对象而不是修改原有对象的值。a 100 id(a) # 获取a的内存地址 # 输出: 140735123456789 (示例) a 200 id(a) # 地址已改变说明创建了新对象 # 输出: 140735123456890 (示例)第二章 整数int详解整数类型是Python中最常用的数字类型之一。Python3中的整数类型非常强大支持任意大小的整数这是许多其他编程语言所不具备的特性。2.1 整数类型的特点任意精度Python3中的整数没有大小限制可以表示任意大的整数不会发生溢出。这使得Python非常适合处理大数运算例如加密算法、高精度计算等领域。big_num 1234567890123456789012345678901234567890 print(big_num ** 2) # 可以轻松进行超大整数运算多种进制表示整数可以用十进制、二进制、八进制和十六进制表示。十进制默认如100二进制以0b或0B开头如0b1010等于十进制10八进制以0o或0O开头如0o12等于十进制10十六进制以0x或0X开头如0xA等于十进制10布尔值是整数的子类型True等于1False等于0可以参与整数运算。2.2 整数的进制转换Python提供了内置函数用于整数之间的进制转换bin(x)将整数转换为二进制字符串以“0b”为前缀。oct(x)将整数转换为八进制字符串以“0o”为前缀。hex(x)将整数转换为十六进制字符串以“0x”为前缀。hex(123456) # 返回: 0x1e240 oct(0x1e240) # 返回: 0o361100 bin(0O361100) # 返回: 0b111100010010000002.3 整数的附加方法int类型除了基本运算外还提供了一些非常有用的附加方法bit_length()返回以二进制表示一个整数所需要的位数不包括符号位和前面的零。a -13 bin(a) # -0b1101 a.bit_length() # 4to_bytes()和from_bytes()这两个方法用于整数与字节串bytes之间的转换在网络编程、文件I/O、底层数据处理等场景中非常有用。# 整数转字节串大端序 a 1024 a.to_bytes(2, byteorderbig) # b\x04\x00 # 字节串转整数 int.from_bytes(b\x04\x00, byteorderbig) # 1024to_bytes方法的参数length整数字节数。byteorder字节顺序big表示大端序高位在前little表示小端序低位在前。signed是否使用二进制补码表示负数。第三章 浮点数float详解浮点数用于表示带有小数部分的数值是科学计算、数据分析、金融计算等领域的基础。3.1 浮点数的特点表示方式浮点数可以用小数形式或科学计数法表示。小数3.14、-0.001科学计数法1.23e5表示1.23 * 10^5 123000.0、2.5e-3表示0.0025精度问题浮点数在计算机内部以二进制表示这使得某些十进制小数无法被精确表示导致精度误差。这是所有使用IEEE 754标准的编程语言都会遇到的问题。print(0.1 0.2) # 输出: 0.300000000000000043.2 浮点数的精度问题与解决方案精度问题在金融计算、科学计算等对精度要求高的场景中是致命的。Python提供了多种解决方案方法一使用math.isclose()进行比较import math math.isclose(0.1 0.2, 0.3, rel_tol1e-9) # 返回 True方法二使用Decimal模块进行高精度计算decimal模块提供了Decimal类型用于高精度的十进制运算。from decimal import Decimal Decimal(0.1) Decimal(0.2) # 输出: Decimal(0.3)注意事项使用Decimal时应传入字符串而不是浮点数否则精度问题会再次引入。3.3 浮点数的附加方法float类型也提供了一些实用的附加方法as_integer_ratio()返回一对整数其比率正好等于原浮点数(3.14).as_integer_ratio() # (7070651414971679, 2251799813685248)is_integer()判断浮点数是否为整数。(3.0).is_integer() # True (3.14).is_integer() # False3.4 特殊的浮点数值inf和nanmath模块中定义了两个特殊的浮点数对象math.inf表示无穷大。math.nan表示“不是数字”Not a Number通常在运算结果无意义时产生如0/0。import math float(inf) # inf float(nan) # nan注意nan不等于任何数包括它自己。与nan的比较总是返回False。第四章 复数complex详解复数在科学计算和工程领域有广泛应用例如信号处理、电磁学、量子力学等。4.1 复数的定义与表示Python中的复数由实数部分real part和虚数部分imaginary part构成虚数单位用j或J表示。直接表示z 3 4j使用complex()构造z complex(3, 4)4.2 复数的属性与方法复数对象具有以下常用属性和方法z.real获取实部浮点数。z.imag获取虚部浮点数。z.conjugate()获取共轭复数虚部符号取反。z 3 4j print(z.real) # 3.0 print(z.imag) # 4.0 print(z.conjugate()) # (3-4j)4.3 复数的运算复数支持基本的算术运算如加法、减法、乘法、除法。z1 2 3j z2 1 - 2j print(z1 z2) # (31j) print(z1 * z2) # (8-1j) 因为 (23j)*(1-2j) 2 -4j 3j -6j^2 2 -j 6 8 - j注意复数不支持比较运算符如、但可以判断是否相等。第五章 布尔值bool详解布尔值是Python中一个特殊的数据类型用于表示逻辑上的“真”和“假”。5.1 布尔值的特点True和False是 Python3 中的关键字分别是int类型的子类bool的唯一实例。issubclass(bool, int)返回True。在数值上下文中True被当作1False被当作0。True 1 # 2 False * 5 # 05.2 布尔值的应用场景条件判断用于if、while等控制流语句。数据过滤在数据分析中使用布尔序列布尔掩码对数据进行高效过滤。二分类标签在机器学习中常使用0和1或True和False表示类别。5.3 布尔值的陷阱由于bool是int的子类型在类型转换和计算时需注意陷阱。print(True 3) # 4隐式转换为int print(3 * False) # 0第六章 数字类型转换在实际编程中我们经常需要在不同数字类型之间进行转换。Python提供了多种显式和隐式的转换方式。6.1 显式转换使用内置函数进行显式转换是最安全、最可控的方式。int(x)将x转换为整数。如果x是浮点数则截断小数部分。float(x)将x转换为浮点数。complex(x, y)将x和y转换为复数实部为x虚部为y。bool(x)将x转换为布尔值。int(3.14) # 3 float(5.67) # 5.67 complex(2, 3) # (23j) bool(0) # False bool(1) # True bool(Hello) # True (非空字符串为True)6.2 隐式转换当不同数字类型混合运算时Python会自动进行类型提升将较简单的类型转换为较复杂的类型以避免数据丢失。int float→floatint complex→complexfloat complex→complexbool参与数值运算时被视为int(True1,False0)3 4.5 # 7.5 (float) 2 34j # (54j) (complex) True 3 # 4 (int)第七章 数字运算全解Python提供了丰富的运算符和内置函数用于进行各种数字运算。7.1 算术运算符运算符描述示例结果加法5 38-减法5 - 32*乘法5 * 315/除法总是返回浮点数5 / 31.666...//整除向下取整5 // 31%取模求余数5 % 32**幂运算5 ** 3125重要注意在Python3中/运算总是返回浮点数即使能整除。//运算返回向下取整的结果其类型与操作数有关。7 // 2 # 3 7.0 // 2 # 3.0浮点数运算结果在不同机器上可能略有差异。7.2 赋值运算符运算符描述示例等价于简单赋值c a b加法赋值c ac c a-减法赋值c - ac c - a*乘法赋值c * ac c * a/除法赋值c / ac c / a%取模赋值c % ac c % a**幂赋值c ** ac c ** a//整除赋值c // ac c // a7.3 比较运算符比较运算符返回布尔值True或False。运算符描述等于!不等于大于小于大于等于小于等于7.4 位运算符位运算符用于对整数的二进制位进行操作。运算符描述示例按位与5 3→10101 0011 0001按位或^按位异或5 ^ 3→60101 ^ 0011 0110~按位取反~5→-60101 取反为 1010即 -6左移5 1→100101 左移1位为 1010右移5 1→20101 右移1位为 00107.5 运算符优先级以下按优先级从高到低列出常见运算符**指数~ -取反、一元正、一元负* / % //乘、除、取余、整除 -加、减 位右移、位左移按位与^ |按位异或、按位或 !比较运算符 % / // - * **赋值运算符is, is not身份运算符in, not in成员运算符not and or逻辑运算符建议当不确定优先级时使用括号()明确运算顺序这也能提高代码可读性。7.6 常用内置数学函数Python提供了一些内置的数学函数无需导入任何模块即可使用。函数描述示例abs(x)绝对值abs(-5)→5round(x, n)四舍五入到n位小数round(3.14159, 2)→3.14pow(x, y)返回x的y次方pow(2, 3)→8max(x1, x2, ...)返回最大值max(1, 2, 3)→3min(x1, x2, ...)返回最小值min(1, 2, 3)→1divmod(x, y)返回商和余数divmod(7, 2)→(3, 1)sum(iterable)求和sum([1, 2, 3])→6第八章math模块详解math模块是Python标准库中最常用的数学模块提供了大量的数学函数和常量。8.1 数学常量math.pi圆周率 π约 3.141592653589793math.e自然常数 e约 2.718281828459045math.tauτ等于 2π约 6.283185307179586math.inf正无穷大浮点数math.nan非数字浮点数8.2 常用数学函数数值运算函数函数描述示例math.ceil(x)向上取整math.ceil(3.2)→4math.floor(x)向下取整math.floor(3.9)→3math.trunc(x)截断取整同int()math.trunc(3.9)→3math.fabs(x)浮点数绝对值math.fabs(-5)→5.0math.factorial(x)阶乘math.factorial(5)→120math.gcd(a, b)最大公约数math.gcd(12, 8)→4math.fmod(x, y)取模浮点数专用math.fmod(7, 2)→1.0math.remainder(x, y)余数IEEE 754标准math.remainder(7, 2)→-1.0幂和对数函数函数描述示例math.exp(x)返回 e 的 x 次方math.exp(1)→2.718...math.log(x, base)对数base可选默认自然对数math.log(100, 10)→2.0math.log10(x)以10为底的对数math.log10(100)→2.0math.log2(x)以2为底的对数math.log2(8)→3.0math.pow(x, y)返回 x 的 y 次方与内置pow()不同结果总是浮点数math.pow(2, 3)→8.0math.sqrt(x)平方根math.sqrt(16)→4.0三角函数函数描述示例math.sin(x)正弦x 为弧度math.sin(math.pi/2)→1.0math.cos(x)余弦math.cos(0)→1.0math.tan(x)正切math.tan(math.pi/4)→1.0math.asin(x)反正弦math.asin(1.0)→π/2math.acos(x)反余弦math.acos(0)→π/2math.atan(x)反正切math.atan(1.0)→π/4math.atan2(y, x)返回 y/x 的反正切考虑象限math.atan2(1, 0)→π/2math.degrees(x)弧度转角度math.degrees(math.pi)→180.0math.radians(x)角度转弧度math.radians(180)→π双曲函数math.sinh(x)、math.cosh(x)、math.tanh(x)、math.asinh(x)、math.acosh(x)、math.atanh(x)特殊函数函数描述math.erf(x)误差函数math.erfc(x)互补误差函数math.gamma(x)Gamma函数math.lgamma(x)Gamma函数的自然对数math.isclose(a, b, rel_tol, abs_tol)判断两个浮点数是否在容差范围内相等8.3math模块实战示例import math # 计算圆的面积 radius 5.0 area math.pi * radius ** 2 print(f半径为{radius}的圆面积为: {area:.2f}) # 78.54 # 判断两个浮点数是否近似相等 a, b 0.1 0.2, 0.3 print(fa {a}, b {b}) print(fa b: {a b}) # False print(fmath.isclose(a, b): {math.isclose(a, b)}) # True第九章random模块详解随机数在游戏开发、模拟、统计学、密码学等领域有广泛应用。Python的random模块提供了功能丰富的随机数生成函数。9.1 核心随机函数函数描述示例random.random()返回[0, 1)范围内的随机浮点数random.random()→0.374...random.uniform(a, b)返回[a, b]范围内的随机浮点数random.uniform(1, 10)→5.673...random.randint(a, b)返回[a, b]范围内的随机整数包含两端random.randint(1, 6)→3random.randrange(start, stop, step)从指定范围可指定步长的集合中选一个随机数random.randrange(0, 100, 5)→25random.choice(seq)从序列中随机选择一个元素random.choice([红, 绿, 蓝])→绿random.choices(population, weights, k)从序列中随机选择k个元素可带权重random.choices([A,B,C], weights[1,2,3], k2)random.shuffle(lst)随机打乱列表顺序原地操作random.shuffle([1](ref)[2](ref)[3](ref)[4](ref)→[3,1,4,2]random.sample(population, k)从序列中随机抽取k个不重复的元素random.sample([1,2,3,4,5], 3)→[2,5,1]9.2 种子Seed控制random.seed(x)用来初始化随机数生成器的种子。种子相同生成的随机数序列也相同这在需要可重复结果的场景下非常有用如调试、测试。import random random.seed(42) print(random.random()) # 0.6394... print(random.random()) # 0.0250... random.seed(42) # 重置种子 print(random.random()) # 0.6394... (与第一次相同)9.3 随机数应用实战import random # 模拟掷骰子 dice_result random.randint(1, 6) print(f掷骰子结果: {dice_result}) # 生成随机验证码6位数字 captcha .join(random.choices(0123456789, k6)) print(f验证码: {captcha}) # 从列表中随机抽取幸运观众 participants [Alice, Bob, Charlie, David] winners random.sample(participants, 2) print(f幸运观众: {winners}) # 随机打乱列表洗牌 cards [2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A] * 4 random.shuffle(cards) print(f洗牌后前5张: {cards[:5]})第十章decimal模块详解10.1 为什么需要decimal模块如前所述浮点数存在精度问题。在金融计算、货币计算、科学计算中对精度要求很高的场景下decimal模块提供了解决方案。10.2 基本用法Decimal是decimal模块的核心类。创建Decimal对象时建议传入字符串而不是浮点数。from decimal import Decimal, getcontext d1 Decimal(0.1) d2 Decimal(0.2) print(d1 d2) # 精确输出: 0.310.3 设置精度使用getcontext()可以获取和设置当前上下文context包括精度、舍入模式等。from decimal import Decimal, getcontext, ROUND_HALF_UP # 设置精度为4位有效数字 getcontext().prec 4 a Decimal(1.23456) b Decimal(2.34567) print(a * b) # 结果将保留4位有效数字: 2.895 # 设置舍入模式为“四舍五入” getcontext().rounding ROUND_HALF_UP print(Decimal(2.345).quantize(Decimal(0.01))) # 2.3510.4 实战银行账户余额操作from decimal import Decimal class BankAccount: def __init__(self, initial_balance0.00): self.balance Decimal(initial_balance) def deposit(self, amount): amount Decimal(amount) if amount 0: raise ValueError(存款金额必须为正) self.balance amount print(f存款成功当前余额{self.balance}) def withdraw(self, amount): amount Decimal(amount) if amount 0: raise ValueError(取款金额必须为正) if amount self.balance: raise ValueError(余额不足) self.balance - amount print(f取款成功当前余额{self.balance}) account BankAccount(1000.00) account.deposit(500.00) # 余额: 1500.00 account.withdraw(300.00) # 余额: 1200.00第十一章fractions模块详解11.1 什么是有理数有理数是可以表示为两个整数之比分数的数。fractions模块提供了Fraction类来表示有理数并支持精确运算。11.2 基本用法from fractions import Fraction # 方式1直接传入分子和分母 a Fraction(1, 3) # 1/3 # 方式2传入字符串 b Fraction(2/6) # 自动约分为 1/3 # 方式3传入浮点数可能不精确 c Fraction(0.1) # 3602879701896397/3602879701896396811.3 运算a Fraction(1, 3) b Fraction(2, 5) print(a b) # 11/15 print(a * b) # 2/15 print(a / b) # 5/611.4 属性和方法f Fraction(4, 6) print(f.numerator) # 2 (分子已约分) print(f.denominator) # 3 (分母已约分) print(f.limit_denominator(10)) # 返回一个分母不超过10的近似值第十二章 数字类型在数据分析中的应用在数据分析领域Python的NumPy和Pandas库提供了更高效、更强大的数字类型支持。12.1 使用NumPy优化内存原生Python的int类型每个占用28字节而NumPy的int8只占用1字节。import numpy as np import sys print(sys.getsizeof(100)) # 28 (原生int) arr np.array([1, 2, 3], dtypenp.int8) print(arr.itemsize) # 1 (每个元素1字节) print(arr.nbytes) # 3 (总共3字节)12.2 性能提升NumPy的向量化运算比原生Python循环快数十倍甚至上百倍。场景原生PythonNumPy优化性能提升100万次加法运算78ms1.2ms65x布尔过滤100万条数据210ms0.8ms260x12.3 在Pandas中的类型指定import pandas as pd import numpy as np # 指定整数类型避免自动推断为float df pd.DataFrame({ id: pd.Series([1, 2, 3], dtypeInt64), # 可空整数类型 score: pd.Series([85.5, 90.0, 78.3], dtypefloat32) })第十三章 常见陷阱与最佳实践13.1 浮点数相等比较陷阱永远不要直接使用比较浮点数是否相等。最佳实践使用math.isclose()或比较差值是否在容忍范围内。# 错误方式 if 0.1 0.2 0.3: # False # 正确方式 if abs((0.1 0.2) - 0.3) 1e-9: # True # 或 if math.isclose(0.1 0.2, 0.3): # True13.2 整数与浮点数运算陷阱/除法的结果总是浮点数即使能整除。最佳实践如需整数结果使用//或int()转换。13.3 使用Decimal的字符串参数陷阱使用浮点数创建Decimal对象会引入精度问题。最佳实践始终使用字符串创建Decimal。# 错误 Decimal(0.1) # Decimal(0.1000000000000000055511151231257827021181583404541015625) # 正确 Decimal(0.1) # Decimal(0.1)13.4 布尔值与数值混用陷阱布尔值参与算术运算时会被视为0或1。最佳实践除非明确需要否则避免将布尔值直接用于数值计算使用显式转换或逻辑判断。13.5 类型判断最佳实践判断变量类型时优先使用isinstance()而不是type()因为isinstance()支持继承关系。# 推荐 isinstance(True, int) # True # 不推荐 type(True) int # False (因为type(True)是bool)第十四章 总结本文全面深入地介绍了Python3中的数字类型涵盖了以下几个核心方面基本数字类型整数int、浮点数float、复数complex、布尔值bool的定义、特性和用法。数字运算算术运算符、赋值运算符、比较运算符、位运算符的详细说明以及运算符优先级。类型转换显式转换和隐式转换的规则与最佳实践。高级模块math模块提供丰富的数学函数和常量。random模块提供多种随机数生成功能。decimal模块实现高精度十进制运算。fractions模块支持精确的有理数运算。性能优化在数据分析场景下使用NumPy和Pandas优化数字处理的性能。常见陷阱与最佳实践浮点数比较、精度处理、类型判断等方面的注意事项。掌握这些知识你将能够更自信地处理各种数值计算任务。避免常见的精度问题和类型转换陷阱。在需要时选择合适的数字类型和模块。优化代码性能提升数据分析效率。编写更健壮、更专业的Python代码。附录速查表项目说明整数int任意精度支持多种进制表示True/False是其子类型浮点数float64位双精度存在精度问题科学计数法表示复数complexa bj形式z.real、z.imag、z.conjugate()布尔值boolTrue/Falseint的子类型True1、False0进制转换bin()、oct()、hex()类型转换int()、float()、complex()、bool()高精度计算decimal.Decimal金融、fractions.Fraction有理数数学运算math模块sqrt、sin、cos、ceil、floor、factorial等随机数random模块random、randint、choice、shuffle、sample等性能优化numpy向量化运算、pandas高效数据框操作判断类型isinstance(x, int)比type(x) int更推荐

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…