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

Python 基本数据类型(一)

1. 整型

  整型即整数,用 int 表示,在 Python3 中整型没有长度限制。

1.1 内置函数

  1. int(num, base=None)

  int( ) 函数用于将字符串转换为整型,默认转换为十进制。

>>> int('123')
123
>>> int('123', base=16)
291

  2. bit_length( num)

  当前数字的二进制,至少用多少位表示。

>>> a = 5
>>> a.bit_length()
3

2. 浮点型

  浮点型即小数,用 float 表示,也可以用科学计算法表示。

>>> a = 0.005
>>> a			# 科学计数法
5e-3

  类型转换:

>>> float(2)
2.0
>>> float('2')
2.0

3. 布尔型

  布尔型是一种特殊的整型,用 True 和 False 或 0 和 1 表示,Python 中是 False 的有:

  • None、“”、0、[ ]、()、{ }

  类型转换:

>>> bool(None)
False

4. 字符串

  字符串是 Python 里的文本,用 str 表示,创建一个字符串使用单引号【’ '】或双引号【" "】,引起即可。

字符串一旦创建,不可修改,同时它也是可迭代对象

  如果字符串中的内容既有单引号,又有双引号,有两种办法解决:

  • 使用转义符号【\】对字符串中的引号转义
>>> 'Let\'s go'
"Let's go"
  • 使用不同的引号表示
>>> "Let's go"
"Let's go"

4.1 长字符串

  当字符串内容行数比较多时,我们可以使用 三重引号引起内容。

>>> print("""
... 从明天起,做一个幸福的人
... 喂马,劈柴,周游世界
... """)从明天起,做一个幸福的人
喂马,劈柴,周游世界

4.2 内置方法

  PART 1:

# capitalize():将字符串内容首字母转换为大写
>>> s = 'i am rose'
>>> s.capitalize()
'I am rose'# casefold():将字符串的所有字符转换为小写,与 lower()一样,但是可以转换特殊字符# lower():将字符串里的所有字符都转换为小写
>>> s = 'i love You'
>>> s.lower()
'i love you'# upper():将字符串里的所有字符都转换为大写
>>> s.upper()
'I LOVE YOU'# count(sub,start,end):统计字符串中某个字符出现的次数,可指定范围
>>> s = 'i am Rose, age 18'
>>> s.count('a')
2
>>> s.count('a', 3, 5)
0# startswith(suffix,start,end)、endswith(suffix,start,end)
# 查找这个字符串,判断是以什么字符开头或结尾,返回布尔值,可指定范围
>>> s = 'i am Rose, age 18'
>>> s.startswith('I')
True
>>> s.endswith('I')
False# find(sub,start,end):查找某个字符,返回其下标,若有多个只返回第一个的下标,若不存在则返回 -1
>>> s = 'I am rose'			# 空格也占位
>>> s.find('a')
2# index(sub,start,end):与 find()一样,但是不存在则抛出 ValueError# format(*args,**kwargs):格式化字符串,将字符串中的占位符替换为指定值,不限参数(可以是位置、关键字参数)
>>>'I am {0}, age {1}'.format('rose', 18)	# 位置参数
>>>'I am {name}, age {age}'.format(name='rose', age=18)		# 关键字参数>>> d = {'name': 'rose', 'age': 18}		# 传入字典(加 **)
>>>'I am {name}, age {age}'.format(**d)>>> l = ['rose', 18]		# 传入列表(加 *)
>>> 'I am {:s}, age {:d}'.format(*l)
'I am rose, age 18'# format_map():格式化字符串,接收字典
>>> 'I am {name}, age {age}'.format_map({'name': 'rose', 'age': 18})
'I am rose, age 18'# isalnum():判断当前字符串是否只包含字母或数字,返回布尔值
>>> s1 = 'sda12'
>>> s.isalnum()
True
>>> s2 = '12'
>>> s2.isalnum()
True
>>> s3 = 's_'
>>> s3.isalnum()
False# isalpha():判断当前字符串所有字符是否都是字母,包括汉字,返回布尔值
>>> s1 = 'sda12'
>>> s1.isalpha()
False
>>> s2 = '汉字'
>>> s2.isalpha()
True# isdecimal():判断当前字符串所有字符是否都是数字,返回布尔值
>>> s = '123'
>>> s.isdecimal()
True
>>> s1 = '123s'
>>> s1.isdecimal()
False# isdigit():判断当前字符串所有字符是否都是数字,可识别 ②,返回布尔值
>>> s2 = '②'
>>> s2.isdigit()
True
>>> s3 = '二'
>>> s3.isdigit()
False# isnumeric():判断当前字符串所有字符是否都是数字,可识别 ②,和二,返回布尔值
>>> s3.isnumeric()
True# isprintable():判断字符串是否存在不可显示的字符,如 \t、\n,空格等返回布尔值
>>> s6 = ''
>>> s6.isprintable()
True
>>> s6 = ' '
>>> s6.isprintable()
True# isspace():判断字符串是否都是空格,返回布尔值
>>> s5.isspace()
True
>>> s6 = ''
>>> s6.isspace()
False# istitle():判断字符串中每个单词首字母是否都是大写,即是否是标题
>>> s = 'i love you'
>>> s.istitle()
False# title():将字符串标题化
>>> s.title()
'I Love You'

  PART 2:

# join(iterable):以字符串为分隔符,插入到序列的每个字符间,传入的列表、元组等,其中的元素必须是字符串不能是数字
>>> '-'.join('内置方法')		# 以 - 分隔符
'内-置-方-法'
>>> ' '.join('内置方法')
'内 置 方 法'
>>> '-'.join(['abd', '123'])
'abd-123'# ljust(width,fillchar=None):将字符串居左,右边以字符填充,默认以空格填充,可以指定宽度
# rjust(width,fillchar=None):将字符串居右,左边以字符填充,默认以空格填充,可以指定宽度
# center(width,fillchar=None):将字符串居中,两边以字符填充,默认以空格填充,可以指定宽度
>>> s = 'love'
>>> s.ljust(10, '*')
'love******'
>>> s.rjust(10, '*')
'******love'
>>> s.center(10, '*')
'***love***'# zfill(width):返回长度为 width 的字符串,原字符串右对齐,前面以 0 填充
>>> s = 'abc'
>>> s.zfill(10)
'0000000abc'# islower()、isupper():判断字符串所有字符是否都是小写或大写,返回布尔值
>>> s = 'i love you'
>>> s.islower()
True
>>> s.isupper()
False# lstrip(chars=None):去掉字符串左边所有空格,包括 \t、\n
# rstrip(chras=None):去掉字符串右边所有空格,包括 \t、\n
# strip(chras=None):去掉字符串两边所有空格,包括 \t、\n
>>> s = '   123  '
>>> s.lstrip()
'123  '
>>> s.rstrip()
'   123'
>>> s.strip()
'123'# partition(sep):separator 分隔符,从左边开始分割字符串,只能分成三份,多个时只返回第一个
>>> s = 'testsadsabc'
>>> s.partition('s')
('te', 's', 'tsadsabc')# rpartition(sep):从右边开始分割字符串,只能分成三份,多个时只返回第一个
>>> s.rpartition('s')
('testsad', 's', 'abc')# split(sep=None,maxsplit=-1):不带参数,默认以空格分割字符串,可指定最大分割次数,返回分割后子串列表
>>> s = 'testlosve'		# 不包含分割字符
>>> s.split('s')
['te', 'tlo', 've']# rsplit(sep=None,maxsplit=-1):从右边分割字符串,与 split()类似
>>> s.rsplit('s')
['te', 'tlo', 've']# splitlines([keepends]):以 \n 分割,返回一个列表,TRUE、False 表示是否保留换行符
>>> s = 'testab\ncd\nh'
>>> s.splitlines()
['testab', 'cd', 'h']
>>> s.splitlines(True)
['testab\n', 'cd\n', 'h']
>>> s.splitlines(False)
['testab', 'cd', 'h']# swapcase():翻转大小写
>>> s = 'abc'
>>> s.swapcase()
'ABC'# maketrans():用于创建字符映射的转换表,两个参数,第一个为要转换的字符,第二个为转换的目标,两者长度一致
# translate(table):根据 table规则(由 str.maketrans('a', 'b')制定),转换字符串字符。
>>> s = 'this is string'
>>> s.translate(s.maketrans('aeiou', '12345'))		# aeiou 与 12345 一一对应
'th3s 3s str3ng'# replace(old,new[,count]):把字符串中的 old 字符替换成 new 字符,count 为替换次数,可选
>>> s = 'hello'
>>> s.replace('e', 'h')
'hhllo'
>>> s		# 不改变原始字符串
'hello'# expandtabs([tabsize=8]):将字符串中的 \t 转换为空格,可指定长度,默认 tabsize = 8
>>> s = 'username\teamil\tpassword\nlixiang\tlixiang@qq.com\t123456'
>>> s.expandtabs(20)
username            eamil               password
lixiang             lixiang@qq.com      123456# bit_length():返回一个 int 用二进制表示需要多少位,不包含前导数和符号
>>> n = 37
>>> n.bit_length()
6# bin(number):返回一个 int 的二进制表示
>>> bin(37)
'0b100101'			# 37 用二进制表示,刚好 6 位# encode(encoding='utf-8', errors='strict):以 encoding 方式编码字符串,errors 指定不同的错误处理方案,返回编码后的字符串,是一个 bytes 对象
# bytes.decode(encoding='utf-8', errors='strict):以指定的编码格式解码 bytes 对象,默认 utf-8
>>> s = '编码解码'
>>> s1 = s.encode('utf-8')
>>> s2 = s.encode('gbk')
>>> s1
b'\xe7\xbc\x96\xe7\xa0\x81\xe8\xa7\xa3\xe7\xa0\x81'
>>> s2
b'\xb1\xe0\xc2\xeb\xbd\xe2\xc2\xeb'>>> s1.decode('utf-8', 'strict')		# 解码,以什么方式编码就以什么方式解码
'编码解码'
>>> s2.decode('gbk', 'strict')
'编码解码'

4.3 索引

  获取字符串中某个字符,只需传入索引即可,索引从 0 开始,支持负数索引(最后一个为 -1)

>>> s = 'hello'
>>> s[0]
'h'
>>> s[-1]
'o'

  字符串是可迭代对象,因此也支持切片:

>>> s = 'hello'
>>> s[0:2]
'he'
>>> s[-2:-1]
'l'

  同样地 也支持 for 循环遍历其中每一个元素:

>>> for i in s:
...     print(i)
...
h
e
l
l
o

4.4 内置函数

  len()可以获取字符串长度

>>> len('hi')
2

4.5 字符串拼接

  为了保证内存的连续性,字符串一旦创建,不允许被修改;一旦修改,将会产生新的字符串,使用连接符 + 可以将两个字符串拼接成一个新的字符串。

>>> myteacher = '李'
>>> yourteacher = '老师'
>>> ourteacher = myteacher + yourteacher
>>> ourteacher
'李老师'

  Python 中不同数据类型是不能拼接的,但是可以使用别的方法实现:

>>> print('score' + ':' + str(95))	# 使用 + 连接符需要考虑是否是相同数据类型
score:95
>>> print('score:',95)         # 可以不用考虑数据类型
score: 95

4.6 原始字符串

  所有的字符串都是按照字面的意思来使用,没有转义特殊和不能打印的字符。

  当字符串中有反斜杠 \ 时,往往会被当成转义字符处理,而有些时候我们并不需要将反斜杠保存下来,有两种方法,一是再加一个反斜杠将其保存下来,但是当反斜杠很多时候,就显得很乱:

>>> s = 'c:\\now'
>>> s
'c:\\now'
>>> print(s)
c:\now

  另一个方法就是使用原始字符串 raw,只需要在字符串前面加个 r 即可,它会自动在程序内部添加反斜杠,无需手动添加:

>>> s = r'c:\now'
>>> s				# 自动添加 \
'c:\\now'
>>> print(s)
c:\now

4.7 格式化字符串

  格式化字符串,即将字符串中的占位符替换为指定值。

  1. format()

  format()方法接收位置参数和关键字参数,分别使用位置、关键字占位:

  语法:

format*args,**kwargs)

  位置参数:

>>>'I am {0}, age {1}'.format('rose', 18)	# 位置参数
I am rose, age 18

  关键字参数:

>>>'I am {name}, age {age}'.format(name='rose', age=18)		# 关键字参数
I am rose, age 18

  也可以接收列表和字典作为参数传入,只需在列表前面添加 *,字典前面添加 ** 即可:

>>> d = {'name': 'rose', 'age': 18}		# 传入字典(加 **)
>>>'I am {name}, age {age}'.format(**d)>>> l = ['rose', 18]		# 传入列表(加 *)
>>> 'I am {:s}, age {:d}'.format(*l)
'I am rose, age 18'

  2. 格式化操作符 %

  Python 提供了一系列的格式化操作符,用于格式化字符串。

Python 常见格式化操作符及含义
符号含义
%s格式化字符串
%d格式化整数
%c格式化字符及 ASCII 码
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制(大写)
%f格式化浮点数,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同 %e,用科学计数法格式化浮点数
%g根据值的大小决定使用 %f 或 %e
%Gz作用同 %g,根据值的大小决定使用 %f 或 %E

  示例:

>>> msg = 'I am %s, age %d' % ('rose', 18)                        
>>> msg                                                           
'I am rose, age 18'                                               # 保留两位有效小数(在 f 前面添加 .2)
>>> s = 'percent: %.2f' % 97.687                                  
>>> s                                                             
'percent: 97.69'# 保留百分号(在 f 后面添加两个 %)
>>> s1 = 'percent: %.2f%%' % 97.687                               
>>> s1                                                            
'percent: 97.69%' >>> s2 = 'I am %(name)s, age %(age)d' % {'name':'rose', 'age':18} 
>>> s2                                                            
'I am rose, age 18' >>> s3 = 'I am %(pp).2f' % {'pp':123.4567}                        
>>> s3                                                            
'I am 123.46'                                                     

5. 练习题

  1. Python 2 和 Python 3 中 range()区别?

  • **Python 2:**直接全部生成所有数字,xrange 与 Python 3 一样
  • **Python3:**循环一次生成一个,节省内存

  2. 实现一个加法计算器(如 5 + 9)?

value = '5 + 9'
v1, v2 = value.split('+')
print(int(v1) + int(v2))

  3. int 和 2、str 和 ‘xx’ 的关系?

  类和对象的关系

  4. 计算用户输入的内容有几个数字,几个字母?

n = input('请输入内容:')		# input()接收的内容为 字符串
a = 0, b = 0			# 统计数字、字母
for i in n:				# 对内容遍历循环if i.isdecimal():	# 判断是否是数字a += 1else:b +=1
print(a, b)

  5. 制作随机验证码,不区分大小写

  流程如下:

  • 用户执行程序
  • 给用户显示要输入的验证码
  • 用户输入验证码
  • 判断用户输入的验证码是否和随机生成的相同,相同则打印输入正确,否则重新输入
# 每次生成一个字符,循环四次,生成四个字符,即一个验证码
import randomverify_coe = ''
for i in range(4):current = random.randrange(0, 4)    #if current != i:# chr()可以将数字转换为 ASCII 码表中所对应的字符,65~90 对应 A~Z,98~122 对应 a~z# 生成一个 65~90 的随机整数,并将其转换为大写字母temp = chr(random.randint(65, 90))else:temp = random.randint(0, 9)     # 生成一个 0~9 的随机整数verify_code += str(temp)while True:n = input('请输入验证码:')if n.upper == verify_code:print('输入正确')breakelse:print('输入错误,请重新输入')

  使用函数写:

import randomdef check_code():"""生成随机验证码:return: 验证码"""verify_code = ''for i in range(4):current = random.randrange(0, 4)    #if current != i:# chr()可以将数字转换为 ASCII 码表中所对应的字符,65~90 对应 A~Z,98~122 对应 a~z# 生成一个 65~90 的随机整数,并将其转换为大写字母temp = chr(random.randint(65, 90))else:temp = random.randint(0, 9)     # 生成一个 0~9 的随机整数verify_code += str(temp)return verify_codedef verify(code):"""验证用户输入的验证码是否与随机生成的一致:param code::return:"""while True:n = input('请输入验证码:')if n.upper() == code:       # 不区分大小写print('输入正确')breakelse:print('输入错误,请重新输入!')def main():code = check_code()print(code)verify(code)
main()

  6. 制作表格

  循环提示用户输入:用户名、密码和邮箱(不超过 20 个字符,超过只取前 20 个字符,)若输入 q 或 Q 则退出,将内容以表格形式显示:

s = ''
while True:user = input('请输入用户名:')if user == 'q' or user == 'Q':breakpsd = input('请输入密码:')email = input('请输入邮箱:')user_one = user[0:20]psd_one = psd[0:20]email_one = email[0:20]temp1 = 'username\tpassword\temial\n'temp2 = '{0}\t{1}\t{2}\n'a = temp2.format(user_one, psd_one, email_one)s += aprint(temp1.expandtabs(20), s.expandtabs(20))
请输入用户名:rose
请输入密码:123456
请输入邮箱:123456@qq.com
username            password            emialrose                123456              123456@qq.com

相关文章:

Python 基本数据类型(一)

1. 整型 整型即整数,用 int 表示,在 Python3 中整型没有长度限制。 1.1 内置函数 1. int(num, baseNone) int( ) 函数用于将字符串转换为整型,默认转换为十进制。 >>> int(123) 123 >>> int(123, …...

win10 环境变量及其作用大全

------------------------------------------------------系统变量------------------------------------------------------ ComSpec: C:\WINDOWS\system32\cmd.exe command specification 解释: ComSpec是Windows操作系统中的一个环境变量,它表示Windo…...

@Valid与@Validated的区别

1.介绍 说明: 其实Valid 与 Validated都是做数据校验的,只不过注解位置与用法有点不同。 不同点: (1) Valid是使用Hibernate validation的时候使用。Validated是只用Spring Validator校验机制使用。 (2&…...

【LeetCode】剑指 Offer 09. 用两个栈实现队列 p68 -- Java Version

题目链接:https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/ 1. 题目介绍(09. 用两个栈实现队列) 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别…...

Java并发编程面试题——JUC专题

文章目录一、AQS高频问题1.1 AQS是什么?1.2 唤醒线程时,AQS为什么从后往前遍历?1.3 AQS为什么用双向链表,(为啥不用单向链表)?1.4 AQS为什么要有一个虚拟的head节点1.5 ReentrantLock的底层实现…...

CAS概述

目录一、CAS与原子类1.1 CAS1.2 乐观锁与悲观锁1.3 原子操作类二、 synchronized优化2.1 轻量级锁2.2 轻量级锁-无竞争2.3 轻量级锁-锁膨胀2.4 重量级锁-自旋2.5 偏向锁2.6 synchronized-其他优化一、CAS与原子类 1.1 CAS CAS(一种不断尝试)即Compare …...

Ansys Zemax / SPEOS | 光源文件转换器

本文解释了如何在 SPEOS 与 Zemax 之间转换二进制光源文件。 下载 联系工作人员获取附件 简介 在本文中,为用户提供了一组Python代码,用于在Zemax和SPEOS之间转换源文件。 有些光源,如 .IES 文件,可在 SPEOS 和 Zemax 中进行…...

PRML笔记2-关于回归参数w的先验的理解

接上篇,现在考虑给w\boldsymbol{w}w加入先验,考虑最简单的假设,也就是w\boldsymbol{w}w服从均值为0,协方差矩阵为α−1I\alpha^{-1}\boldsymbol{I}α−1I的高斯分布。 p(w∣α)N(w∣0,α−1I)(α2π)(M1)/2exp⁡{−α2wTw}\begin{…...

Selenium原理

我们使用Selenium实现自动化测试,主要需要3个东西1.测试脚本,可以是python,java编写的脚本程序(也可以叫做client端)2.浏览器驱动, 这个驱动是根据不同的浏览器开发的,不同的浏览器使用不同的webdriver驱动…...

Disconf、Apollo和Nacos分布式配置框架差异对比

差异对比表格: 功能点DisconfApolloNacos依赖高可用框架完全依赖于Zookeeper来实现监听拉取,向外提供了HTTP拉取数据接口依赖于Eureka实现内部服务发现注册,提供HTTP接口给Client SDK拉取监听数据内部自研实现框架高可用CAP理论偏重点Zookee…...

高新技术企业认定条件条件 高企认定要求

高新技术企业认定条件 一、成立年限:申报企业须注册成立365个日历天数,而非一个会计年度。 二、知识产权 (1)申报企业必须拥有在中国境内授权或审批审定的知识产权,且知识产权在有效保护期内。知识产权权属人应为申请企…...

华为OD机试 - 新学校选址(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】

新学校选址 题目 为了解新学期学生暴涨的问题,小乐村要建立所新学校 考虑到学生上学安全问题,需要所有学生家到学校的距离最短. 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置, 能使得到学校到各个学生家的距离和最短 输入 第一行: 整数 n 取值范围 [1,1…...

二进制部署K8S

目录 一、环境准备 1、常见的k8s部署方式 2、关闭防火墙 3、关闭selinux 4、关闭swap 5、根据规划设置主机名 6、在master添加hosts 7、将桥接的IPv4流量传递到iptables的链 8、时间同步 二、部署etcd集群 1、master节点部署 2、查看证书的信息 2.1 创建k8s工作目…...

高效获知Activity的生命周期

Activity生命周期监听 使用 Instrumentation 对 Activity 生命周期进行监听。 优点: 全局仅一次反射,性能影响极小所有Activity的生命周期都能够被监听到由于Java的单继承,为了拓展性,可以使用装饰器模式对Instrumentation进行功…...

分析现货黄金价格一般有什么方法

分析现货黄金价格一般有什么方法呢?我相信很多投资者都会说,是技术分析。很多人并不知道技术分析是什么,并且技术分析是如何去分析现货黄金价格的,那么本文就介绍一下技术分析的主要分类。可以说,小编的其他文章都是以…...

Spring中的拦截器

这里写目录标题基本概念HandlerInterceptor拦截器HandlerInterceptor讲解MethodInterceptor拦截器二者的区别基本概念 在web开发中,拦截器是经常用到的功能。它可以帮我们预先设置数据以及统计方法的执行效率等等。 Spring中拦截器主要分两种,一个是Han…...

【Linux操作系统】【综合实验四 Linux的编译环境及线程编程】

文章目录一、实验目的二、实验要求三、实验内容四、实验报告要求一、实验目的 要求熟悉Linux环境中的程序编译、调试与项目管理过程并能实现具体操作;熟练使用基础函数库中与线程库中的管理函数,实现用户线程编程过程,并深入了解Linux的线程…...

Switch 如何使用NSCB 转换XCI NSP NSZ教程

很多小白经常碰到Switch游戏文件格式和预期不符的情况,比如碰到nsz自己不会安装(安装NSZ格式文件教程);或者是碰到xci格式的,想转换为nsp;抑或想将nsz格式文件还原回nsp格式。本文对此提供了解决方案。 文中…...

JVM12 字节码指令集

1. 概述 2. 加载与存储指令 2.1. 局部变量压栈指令 iload 从局部变量中装载int类型值 lload 从局部变量中装载long类型值 fload 从局部变量中装载float类型值 dload 从局部变量中装载double类型值 aload 从局部变量中装载引用类型值(refernce) iload_0 从…...

centos之python安装与多版本python之间的共存

一、背景 随着python版本迭代加快,有写python模块再低版本无法运行,此时需要我们在进行安装一个python版本 例如:uvloop 在python3.7上运行;python 3.6官方不再维护与更新 有些模块或不支持较低版本、有些模块支持较高版本python…...

词法分析和词性标注 自然语言处理

目录 一. 概述 1 不同语言的词法分析 2 英语的形态分析 英语单词的形态还原(和正常英语的词法变化一样) 1.有规律变化单词的形态还原 ​编辑 2.动词、名词、形容词、副词不规则变化单词的形态还原 3.对于表示年代&…...

深度优先算法学习

1: 从 1点出发到 15点 #include <stdio.h>#define MAX_NODES 100typedef struct {int node_id;int *nextNodes;int nextNodesSize; } Node;// 假设我们有一个节点数组&#xff0c;全局保存了所有节点 Node nodes[MAX_NODES];void dfs(int node_id) {Node *node &n…...

互斥锁与消息队列的架构哲学

更多精彩内容请访问&#xff1a;通义灵码2.5——基于编程智能体开发Wiki多功能搜索引擎更多精彩内容请访问&#xff1a;更多精彩内容请访问&#xff1a;通义灵码2.5——基于编程智能体开发Wiki多功能搜索引擎 一、资源争用的现实镜像 当多个ATM机共用一个现金库时&#xff0c;…...

1 Studying《蓝牙核心规范5.3》

目录 [Vol 0][Part B 蓝牙规范要求] 3 定义 3.1 蓝牙产品类型 4 核心配置 4.1 基本速率核心配置 4.2 增强型数据速率核心配置 4.4 低功耗核心配置 4.5 基本速率和低功耗结合的核心配置 4.6 主机控制器接口核心配置 [Vol 1][Part A 架构]1 概述 1.1 BR/EDR操作概述 …...

【汇编逆向系列】三、函数调用包含单个参数之float类型-xmm0寄存器,sub,rep,stos,movss,mulss,addss指令

一、汇编代码 single_float_param:0000000000000060: F3 0F 11 44 24 08 movss dword ptr [rsp8],xmm00000000000000066: 57 push rdi0000000000000067: 48 83 EC 10 sub rsp,10h000000000000006B: 48 8B FC mov …...

自动驾驶科普(百度Apollo)学习笔记

1. 写在前面 在过去的几年里&#xff0c;自动驾驶技术取得飞速发展&#xff0c;人类社会正逐渐走向一个新时代&#xff0c;这个时代中&#xff0c;汽车不仅仅是一个交通工具&#xff0c;更是一个智能的、能够感知环境、做出决策并自主导航的机器伙伴。现在正好也从事这块的工作…...

(新手友好)MySQL学习笔记(6):分组查询,正则表达式

目录 分组查询 创建分组 过滤分组 分组查询练习 正则表达式 匹配单个实例 匹配多个实例 正则表达式练习 练习答案 分组查询练习答案 正则表达式练习答案 分组查询 创建分组 group by 子句&#xff1a;根据一个或多个字段对结果集进行分组&#xff0c;在分组的字段上…...

【PhysUnits】17.2 配套变量结构体 Var(variable.rs)

一、源码 这段代码定义了一个泛型结构体 Var&#xff0c;用于封装数值类型并提供各种运算操作。 /** 变量结构体 Var* 该结构体泛型参数 T 需满足 Numeric 约束*/use core::ops::{Neg, Add, Sub, Mul, Div, AddAssign, SubAssign, MulAssign}; use crate::constant::Integer;…...

如何借助Hyper - V在Windows 10中构建安全软件测试环境

视频演示 手把手教你激活 Hyper-V 并安装 Windows 10 虚拟机 一、引言:软件探索的风险与解决方案 在数字化时代,软件更新换代的速度日新月异,对于热衷于探索新软件的朋友而言,主系统中安装新软件时的谨慎态度无可厚非。恶意软件的威胁犹如高悬的达摩克利斯之剑,稍不留…...

WEB3全栈开发——面试专业技能点P1Node.js / Web3.js / Ethers.js

一、Node.js 事件循环 Node.js 的事件循环&#xff08;Event Loop&#xff09;是其异步编程的核心机制&#xff0c;它使得 Node.js 可以在单线程中实现非阻塞 I/O 操作。 &#x1f501; 简要原理 Node.js 是基于 libuv 实现的&#xff0c;它使用事件循环来处理非阻塞操作。事件…...