python语法入门到面向过程编程(二)
类型总结
一:整形基本使用(int)
1 int用途:年龄 号码 等级…
2 定义方式
age=10 age=int(10)
x=int(‘1111’) int只能将纯数字的字符串转成十进制的整型
print(type(x))
3 整形常用操作+内置的方法
算数运算(+、—、*、/),比较运算(>,<,>=,<=,!=)
二:整形总结
1 存一个值or存多个值?
只能存一个值
2 有序or无序?
没有有序无序这么一说
3 可变or不可变
可变不可变类型总结:
可变指的是改变原值,即在原值基础上进行修改
可变类型的底层原理:在id不变的情况下,值可以改变
不可变类型的底层原理:值改变,id也跟着变
int是不可变数据类型
age=10print(id(age))age=11print(id(age))
长整型Long,只有在python2中才有长整型号
复数complex
x=1-2jprint(x.real)print(x.imag)print(type(x))
一:浮点型基本使用(float)
1 用途:薪资 身高 体重
2 定义方式
salary=3.1 salary=float(3.1)
n=float('3.1')
3 常用操作
算数运算 比较运算
二:该类型总结
1 存一个值or存多个值
只能存一个值
2 有序or无序
没有有序无序这么一说
3 可变or不可变
float是不可变类型x=3.1print(id(x))x=3.2print(id(x))
一:字符串基本使用(str)
1 用途: 描述性质的数据,比如人的名字,单个爱好,地址
2 定义方式
name='ycf' name=str('ycf')x=str(1)y=str(1.1)z=str([1,2,3])n=str({'y':1})print(type(x))print(type(y))print(type(z))print(type(n))
3 常用操作+内置的方法
优先掌握的操作(*****):
1、按索引取值(正向取+反向取) :只能取
msg=‘hello world’
print(type(msg[5]))
print(msg[-1])
msg[2]=‘A’
2、切片(顾头不顾尾,步长)
msg='hello world'print(msg[1:5],type(msg[1:5]))print(msg[6:-1])print(msg[6:11])print(msg[6:])print(msg[6::2])print(msg[0:])print(msg[::-1])msg='hello world'print(msg[-3:-6:-1])print(msg[6:9:-1])
3、长度len
msg='hello world'print(len(msg))
4、成员运算in和not in
print(‘SB’ in ‘my name is xxx,xxx is SB’)
print(‘xxx’ in ‘my name is xxx,xxx is SB’)
print(‘xxx’ not in ‘my name is xxx,xxx is SB’) 推荐
print(not ‘xxx’ in ‘my name is xxx,xxx is SB’)
5、移除空白strip
name=' x xxx 'print(name.strip(' '))print(name.strip())name='****A*xxx*xxx****'print(name.strip('*'))name='****xxx****'print(name.lstrip('*'))print(name.rstrip('*'))pwd=input('>>: ').strip() pwd='123 'if pwd == '123':print('login successful')msg='cccabcdefgccccc'print(msg.strip('c'))print('*-=xxx*&^'.strip('-= *&^'))
6、切分split
msg='xxx:18:male:180:160'l=msg.split(':')print(l)print(l[3])
7、循环
msg='hello world'for x in msg:print(x)
需要掌握
1、strip,lstrip,rstrip
2、lower,uppername='EoN'print(name.lower())name='xxxxN'print(name.upper())
3、startswith,endswith
print('xxxis SB'.startswith('xx'))print('xxxis SB'.endswith('B'))
4、format的三种玩法
print('my name is %s my age is %s' %('xxx',18))print('my name is {name} my age is {age}'.format(age=18,name='xxx')) 可以打破位置的限制,但仍能指名道姓地为指定的参数传值print('my name is {} my age is {}'.format('xxx',18))print('my name is {0} my age is {1} {1} {1} {1}'.format('xxx',18))
5、split,rsplit
info='xxx:18:male'print(info.split(':',1))print(info.split(':',1)) ['xxx','18:male']print(info.rsplit(':',1)) ['xxx:18','male']
6、join:只能将元素全为字符串的列表拼成一个大的字符串
info='xxx:18:male'l=info.split(':')print(l)new_info='-'.join(l)print(new_info)num=['a','b','c']':'.join(num) 'a'+':'+'b'+':'+'c'num=[1,2,'c']':'.join(num) 1+':'+2+':'+'c'
7、replace
msg='my name is xxx,xxxis SB'print(msg.replace('xxx','Pig',1))print(msg)
8、isdigit
print('111.1'.isdigit())print('1111'.isdigit())AGE=73age=input('>>: ').strip() age='asdfasdf'if age.isdigit():age=int(age)if age > AGE:print('too big')elif age < AGE:print('too small')else:print('you got it')else:print('必须输入数字啊傻叉')
1、find,rfind,index,rindex,count
msg='my name is xxx,xxxis hahaha'print(msg.find('xxx'))print(msg.find('SB')) 找不到会返回-1print(msg.index('xxx'))print(msg.index('SB')) 找不到index会报错print(msg.find('xxx',0,3))print(msg.count('xxx'))print(msg.count('xxx',0,15))
2、center,ljust,rjust,zfill
print('info xxx'.center(50,'-'))print('info xxx'.ljust(50,'-'))print('info xxx'.rjust(50,'-'))print('info xxx'.zfill(50))
3、expandtabs
print('a\tb\tc'.expandtabs(1))
4、captalize,swapcase,title
print('my name is xxx'.capitalize())print('my Name Is xxx'.swapcase())print('my name is xxx'.title())
5、is数字系列
num1=b'4' bytes
num2=u'4' unicode,python3中无需加u就是unicode
num3='壹' 中文数字
num4='Ⅳ' 罗马数字isdigit():bytes,unicodeprint(num1.isdigit())print(num2.isdigit())print(num3.isdigit())print(num4.isdigit())isdecimal():unicodeprint(num2.isdecimal())print(num3.isdecimal())print(num4.isdecimal())isnumberic;unicode,中文,罗马print(num2.isnumeric())print(num3.isnumeric())print(num4.isnumeric())
6、is其他
print('abasdf123123'.isalnum())print('asdfasdf'.isalpha())print('xxx'.islower())print('xxx'.isupper())print(' '.isspace())print('My Name Is Xxx'.istitle())
二:该类型总结
1 存一个值or存多个值
只能存一个值
2 有序or无序
有序
3 可变or不可变
不可变
name='xxx'
print(id(name))
name='yyy'
print(id(name))
作用:多个装备,多个爱好,多门课程,多个女朋友等
定义:[]内可以有多个任意类型的值,逗号分隔
my_girl_friends=['xxx','yyy','zzz',4,5] 本质my_girl_friends=list([...])l=list('hello') list内只能跟能够被for循环遍历的数据类型print(l)l=list({'a':1,'b':2})print(l)
1、按索引存取值(正向存取+反向存取):即可存也可以取
names=['xxx','wxx','lxx','yyy']names[0]='XXX'print(names)
2、切片(顾头不顾尾,步长)
names=['xxx','wxx','lxx','yyy']print(names[0:3])
3、长度
names=['xxx','wxx','lxx','yyy']print(len(names))
4、成员运算in和not in
names=['xxx','wxx','lxx','yyy',4]print(4 in names)
5、追加
names=['xxx','wxx','lxx','yyy']names.append('cxx1')names.append('cxx2')names.append('cxx3')print(names)
6、删除
names=['xxx','wxx','lxx','yyy']del names[2]print(names)
7、循环
names=['xxx','wxx','lxx','yyy']for name in names:print(name)names=['xxx','wxx','lxx','yyy',4,3.1]names.insert(1,'SB')print(names)names=['xxx','wxx','lxx','yyy',4,3.1]res=names.remove('wxx') 单纯的删掉,是按照元素的值去删除,没有返回值print(res)print(names)names=['xxx','wxx','lxx','yyy',4,3.1]res=names.pop(1) 拿走一个值,是按照索引去删除,有返回值print(names)print(res)names=['xxx','wxx','lxx','yyy',4,3.1]print(names.pop())print(names.pop())names=['xxx','wxx','lxx','lxx','yyy',4,3.1]print(names.count('lxx'))print(names.index('lxx'))names.clear()print(names)x=names.copy()print(x)names.extend([1,2,3])print(names)names.reverse()print(names)names=[1,10,-3,11]names.sort(reverse=True)print(names)
二:该类型总结
1 存一个值or存多个值
可以存多个值,值都可以是任意数据类型
2 有序or无序
有序
3 可变or不可变
可变
l=['a','b']print(id(l))l[0]='A'print(id(l))
元组,字典,列表
队列:先进先出
l=[]入队l.append('111')l.append('222')l.append('333')出队print(l.pop(0))print(l.pop(0))print(l.pop(0))堆栈:先进后出l=[]入栈l.append('111')l.append('222')l.append('333'))出栈print(l.pop())print(l.pop())print(l.pop())
一:基本使用
1 用途:用来存多个值,但每一个值都有一个key与之对应,key对值有描述性的功能
当存储多个值表示的不同的状态时,
2 定义方式:{}内用逗号分隔开多个元素,每一个元素都是key:value的形式
value可以是任意数据类型,但是key必须为不可变类型,key通常应该是字符串类型,
d={'x':1,'y':2} d=dict({'x':1,'y':2})d=dict(a=1,b=2,c=3)print(d)dic={1:'a',0:'b',1.1:'c',(1,2,3):'d'}print(dic[1])print(dic[0])print(dic[1.1])print(dic[(1,2,3)])dic={[1,2,3]:'a'}dic={{'x':1}:'a'}
3 常用操作+内置的方法
优先掌握的操作:
1、按key存取值:可存可取
d={'x':1,'y':2}d['x']=100print(d)d['z']=3print(d)l=['a','b']l[2]='c'
2、长度len
d={'x':1,'y':2}print(len(d))
3、成员运算in和not in
d={'x':1,'y':2}print('x' in d)
4、删除
d={'x':1,'y':2}del d['x']print(d)res=d.pop('y')print(d)print(res)res=d.popitem()print(d)print(res)d={'a':1,'b':2,'c':3,'d':4}for k in d:print(k)l=[1,2,3]del l[1]print(l)
5、键keys(),值values(),键值对items()
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}names=[]for k in msg_dic:names.append(k)print(names)values=[]for k in msg_dic:values.append(msg_dic[k])print(values)keys=msg_dic.keys()print(keys)for k in keys:print(k)=l=list(keys)print(l)vals=msg_dic.values()print(vals)print(list(vals))print(msg_dic.items())print(list(msg_dic.items()))
6、循环
msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}只取keyfor k in msg_dic:print(k,msg_dic[k])for k in msg_dic.keys():print(k,msg_dic[k])只取valuefor v in msg_dic.values():print(v)取key和valuefor k,v in msg_dic.items(): k,v=('apple', 10)print(k,v)
d={'x':1,'y':2,'z':3}v=d.get('xxxx')print(v)print(d['xxxxxxx'])d={'x':1,'y':2,'z':3}d1={'a':1,'x':1111111}d.update(d1)print(d)l=['name','age','sex']d={}for k in l:d[k]=Noned=dict.fromkeys(1,None)print(d)
info.setdefault
info={'name':'xxx','age':18,'sex':'male'}如果字典中有setdefault指定的key,那么不改该key对应的值,返回原的valueres=info.setdefault('name','xxx_NB')print(info)print(res)如果字典中没有setdefault指定的key,那么增加一个key:value,返回新的valueinfo.setdefault('height',1.80)print(info)info={'age':18,'sex':'male'}v=info.setdefault('name','yyy')print(v)
s='hello zzz xxx say hello sb sb'
l=s.split()print(l)
d={}for word in l: word= 'hello'if word not in d:d[word]=1 {'hello':2, 'xxx':1,'say':1}else:d[word]+=1print(d)s='hello xxx xxx say hello sb sb'
l=s.split()
print(l)
d={}d={'hello':2,'xxx':2}
for word in l: word='xxx'd[word]=l.count(word) d['xxx']=2d.setdefault(word,l.count(word))print(d)
二:该类型总结
1 存一个值or存多个值
可以存多个值,值都可以是任意类型,而key必须是不可变类型,通常应该是不可变类型中字符串类型
2 有序or无序
无序
3 可变or不可变
d={'x':1,'y':2}print(id(d))d['x']=1111print(id(d))
一:基本使用
1 用途:元组是不可变的列表,能存多个值,但多个值只有取的需求,而没有改的需求,那么用元组合最合理
2 定义方式:在()内用逗号分割开,可以存放任意类型的值
names=('xxx','yyy','wxx') names=tuple(('xxx','yyy','wxx'))print(type(names))强调: 当元组内只有一个元素时,务必记住加一个逗号x=('xxx',)print(type(x))
3 常用操作+内置的方法
1、按索引取值(正向取+反向取):只能取
names=('xxx','yyy','wxx')names[0]='sb'
2、切片(顾头不顾尾,步长)
names=('xxx','yyy','wxx','lxx','cxxx')print(names[1:3])
3、长度
names=('xxx','yyy','wxx','lxx','cxxx')print(len(names))
4、成员运算in和not in
names=('xxx','yyy','wxx','lxx','cxxx')print('xxx' in names)
5、循环
names=('xxx','yyy','wxx','lxx','cxxx')for item in names:print(item)
二:该类型总结
1 存一个值or存多个值
可以存多个值,值都可以是任意数据类型
2 有序or无序
有序
3 可变or不可变
不可变
names=('xxx','yyy','wxx','lxx','cxxx')del names[0]names[0]='sb'print(names.count('lxx'))print(names.index('wxx',0,3))names=('xxx','yyy','wxx','lxx','cxxx')names=1l=[1,243,3]l=3333l=['a','b','c']print(id(l[0]))l[0]='A'print(id(l[0]))names=('a','b','c')
列表可变的底层原理:
指的是索引所对应的值的内存地址是可以改变的
元组不可变的底层原理:
指的是索引所对应的值的内存地址是不可以改变的
或者反过来说,只要索引对应值的内存地址没有改变,那么元组始终是没有改变的
```bash
t1 = (['a', 'b', 'c'], 'wc', 'office')print(id(t1[0]))
print(id(t1[1]))
print(id(t1[2]))t1[0][0] = 'AAAA'
print(t1)print(id(t1[0]))
集合
一:基本使用
1 用途: 关系运算、去重
2 定义方式:{}内用逗号分隔开多个元素,每一个元素都必须是不可变(即可hash)类型
强调:
2.1 集合内元素都必须是不可变(即可hash)类型
2.2 集合内的元素无序
2.3 集合内的元素不能重复
s={1,2,'a'} s=set({1,2,'a'})print(type(s))s={1.1,1,'aa',(1,2,3),{'a':1}}s={1,'a','hello',(1,2,3),4}for item in s:print(item)s={1,1,1,1,1,1,1,1,1,'a','b','a'}s={(1,2,3),(1,2,3),'a','b','a'}print(s)s=set('hello')
print(s)
单纯的用集合去重,需要注意的问题是
1、去重的目标所包含的值必须都为不可变类型
2、去重的结果会打乱原来的顺序
names=['asb','asb','asb','wsb','wsb','isetan_nb',[1,2,3]]s=set(names)names=list(s)print(names)
3 常用操作+内置的方法
优先掌握的操作:
1、长度len
pythoners={'王大炮','李二丫','陈独秀','牛铁蛋','wxx','李二蛋'}print(len(pythoners))2、成员运算in和not inprint('李二丫' in pythoners)pythoners={'王大炮','李二丫','陈独秀','牛铁蛋','wxx','李二蛋'}
linuxers={'陈独秀','wxx','isetan','张全蛋'}
3、|并集print(pythoners | linuxers)print(pythoners.union(linuxers))4、&交集print(pythoners & linuxers)print(pythoners.intersection(linuxers))print(linuxers & pythoners)5、-差集print(pythoners - linuxers)print(pythoners.difference(linuxers))print(linuxers - pythoners)print(linuxers.difference(pythoners))6、^对称差集
pythoners={'王大炮','李二丫','陈独秀','牛铁蛋','wxx','李二蛋'}
linuxers={'wxx','isetan','张全蛋'}print(pythoners ^ linuxers)print(pythoners.symmetric_difference(linuxers))print(linuxers ^ pythoners)7、==s1={1,2,3}s2={1,2,3}print(s1 == s2)8、父集(包含关系):>,>=s1={1,2,3,4,5}s2={1,2,3}print(s1 > s2) s1包含s2print(s1.issuperset(s2))print(s2.issubset(s1))s3={1,2,10}print(s1 > s3)s1={1,2,3,4,5}s2={1,2,3,4,5}print(s1 >= s2)9、子集(被包含的关系):<,<=s1={1,2,3,4,5}
s1.add(6)print(s1)s1.update({4,7,8,9})print(s1)res=s1.pop()print(res)res=s1.remove(4)print(res)print(s1)s1={1,2,3,4,5}
s2={2,3,7,8}s1=s1 - s2print(s1)s1.difference_update(s2) s1=s1 - s2print(s1)s1={1,2,3,4,5}s1.pop()s1.remove(7)s1.discard(7) 即便要删除的元素不存在也不会报错s1={1,2,3,4,5}
s2={6,7}
print(s1.isdisjoint(s2))无交集部分
二:该类型总结
1 存一个值or存多个值
可以存多个值,值都必须为不可变类型
2 有序or无序
无序
3 可变or不可变
set集合是可变类型
s={1,2,3}print(id(s))s.add(4)print(s)print(id(s))
=集合的去重======
单纯的用集合去重,需要注意的问题是
1、去重的目标所包含的值必须都为不可变类型
2、去重的结果会打乱原来的顺序
names=['asb','asb','asb','wsb','wsb','isetan_nb',[1,2,3]]s=set(names)names=list(s)print(names)stu_info=[{'name':'isetan','age':18,'sex':'male'},{'name':'isetan','age':18,'sex':'male'},{'name':'isetan','age':18,'sex':'male'},{'name':'axxxx','age':73,'sex':'male'},{'name':'yyyyyy','age':84,'sex':'female'},
]new_info=[]
for info in stu_info:if info not in new_info:new_info.append(info)print(new_info)
相关文章:
python语法入门到面向过程编程(二)
类型总结 一:整形基本使用(int) 1 int用途:年龄 号码 等级… 2 定义方式 age10 ageint(10) xint(‘1111’) int只能将纯数字的字符串转成十进制的整型 print(type(x)) 3 整形常用操作内置的方法 算数运算(、—、*、/࿰…...
Java常用类
基本数据类型包装类 Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类/封装类。每个基本数据…...
4.30下周美联储携非农来袭黄金多空该如何布局?
近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? 黄金消息面解析:周五(4月28日)当周金价维持震荡交投,金价基本持稳于2000美元下方。支撑和打压金价的因素参半。经济衰退的担忧,以及避险情绪支持金价&#x…...
利用python查找指定目录下大于300M的文件
直接上代码,欢迎小伙伴们交流 import os def getBigFile(path, filesize): # 遍历指定目录及其子目录 for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: target_file os.path.join(dirpath, filename…...
浅尝ChatGPT使用之Python字典嵌套排序
一、背景 所负责的项目从v1.0升级到v2.0之后,发送到kafka的Json数据字段顺序和内容有所改变, v1.0版本推送数据样例: {"name": "小王子","author": "安托万德圣-埃克苏佩里(1900-1944&#…...
最大网络流算法之dinic算法详解
1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…...
051、面试必刷TOP101--链表(230503)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言链表1、BM1 反转链表2、BM2 链表内指定区间反转3、BM3 链表中的节点每k个一组翻转4、BM4 合并两个排序的链表5、BM5 合并k个已排序的链表6、BM6 判断链表中是否…...
开源中国面试准备
dockerFile常见命令 1、FROM 设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载 2、MAINTAINER 镜像作者的信息,比如名字或邮箱地址 语法:MAINTAINER n…...
基于J2EE的B2C电子商务系统开发与实现
摘要 当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定…...
三分钟教你看懂 spring 官方文档
新手如何学会查看官方文档API 首先进入官网:这里以 spring boot 为例 ,进入spring 官方地址 我们进入 spring boot 这里我们要看文档当然是要 learn 了,所以点进去。 我需要的东西在 IO 模块里面,点 IO 进入 发送邮件是不是有了…...
基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
一、前言 本 例 说明 如何 对 包括 天线 阵列 的 MIMO 接收 和 发射 RF 系统 进行 建模。该设计从单个RF链的预算分析开始,然后扩展到多个天线。RF Blockset 天线模块对天线阵列进行全波分析,支持对效应和缺陷进行高保真建模,并结合射频系统的…...
从小学习编程的路线与编程进阶
对于从小学习编程的学生,通常会从基础的编程概念和语法开始学习。以下是一个可能的路线: 1. 学习计算机基础知识,包括计算机硬件、操作系统和网络等基本概念。 2. 掌握基本的编程概念和语法,例如变量、数据类型、条件语句和循环语…...
[实训] 实验1-SPI数据传输基础实验(上)
目 录 一、实验目的 二、实验仪器及器件 三、实验内容及原理 四、实验步骤 五、实验测试数据表格记录 六、实验数据分析及处理 七、实验结论与感悟 一、实验目的 使用FPGA/ARM实现SPI数据传输实验;实现数据传输程序的编写、下载…...
微软骚操作恶心Win10用户,上网得先看广告
IE 浏览器在几个月前被彻底禁用,预装了快30年的老古董也确实到了退役的时候。 而微软也早有准备,2015年随着 Win10 发布推出了 Microsoft Edge 浏览器。 2020年迁移到 Chromium 内核让其成为了主流浏览器之一。 和 Chromium 系其他浏览器一样支持扩展插…...
为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展
我们的低代码开发平台从一开始决定做的时候,就追求未来能够支持多种类型的客户端,目前支持Winform,Web,H5,FlutterAPP,当然了,未来也有可能会随着实际的需要淘汰掉一些客户端的。 为了系统更易…...
洛谷 子集积 题解
题目 P1 背包 子集积 > m >m >m 个数并不好求,考虑子集积 ≤ m \le m ≤m 的个数 x x x,答案即为 ( 2 n − x ) (2^n - x) (2n−x)。 对于子集积 ≤ m \le m ≤m 的个数,可以化为 0-1 背包问题做, f i , j f_{i,…...
Boost笔记 1:下载、编译、安装、测试
1. 下载 当前版本是1.82,下载链接: https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/ 2. 安装编译依赖库 本地环境是Ubuntu 22.04,需要安装以下依赖库,部分影响boost相关功能的开启,部分影响编译…...
tiechui_lesson01_入口函数和卸载函数
主要讲解入口函数和卸载函数。 #include <ntifs.h>VOID nothing(HANDLE ppid, HANDLE mypid, BOOLEAN bcreate) {UNREFERENCED_PARAMETER(ppid);UNREFERENCED_PARAMETER(mypid);UNREFERENCED_PARAMETER(bcreate);DbgPrint("processNotify\n"); }VOID DriverU…...
密码学【java】初探究加密方式之非对称加密
文章目录 非对称加密1 常见算法2 生成公钥和私钥3 私钥加密4 私钥加密 公钥解密5 公钥和私钥的保存和读取5.1 **保存公钥和私钥**5.2 读取公钥和私钥 非对称加密 非对称加密算法又称现代加密算法。非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。与对…...
网络安全和黑客技能:15本必读书籍推荐
前言 网络安全和黑客技能紧密相连。想要有效地防范黑客攻击,了解黑客的技能和思维方式非常重要。而要想成为一名合格的白帽黑客,也需要深入理解网络安全的基本原理和最佳实践。本文将介绍15本网络安全和黑客书籍,既包括了防范黑客攻击的指南…...
ChezScheme测试性能优化:从53分钟到8分钟的效率跃迁
ChezScheme测试性能优化:从53分钟到8分钟的效率跃迁 【免费下载链接】ChezScheme Chez Scheme 项目地址: https://gitcode.com/gh_mirrors/ch/ChezScheme 一、痛点分析:串行测试的性能瓶颈 识别测试效率问题 在软件开发迭代过程中,…...
3分钟快速找回QQ号:手机号逆向查询终极指南
3分钟快速找回QQ号:手机号逆向查询终极指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾经因为忘记QQ号而无法登录重要应用?或者需要验证手机号与QQ的绑定关系?今天我要介绍的这款Pyth…...
告别“金鱼记忆”:Hologres + Mem0,为大模型打造企业级长记忆引擎
想象一下这个场景:一位用户在周一联系某电商平台的智能客服,咨询了一款高端相机的详细参数和优惠活动,并明确表示“我倾向于购买A品牌”。客服助手热情地解答了问题。到了周三,这位用户再次联系客服,想了解这款相机的配…...
从DEM到决策:如何用QGIS分析河北地形,为生态保护与项目选址提供依据?
从DEM到决策:QGIS地形分析在河北生态保护与项目选址中的实战指南 河北省复杂的地形地貌为各类生态保护和工程项目带来了独特挑战。作为华北地区生态屏障与经济发展的重要区域,如何科学评估地形特征直接影响着规划决策的质量。本文将带您用QGIS这一开源工…...
5G赋能下的车联网协同感知:自动驾驶感知盲区消除新思路
1. 为什么自动驾驶需要"组队开黑"模式? 想象一下你开车经过一个十字路口,左侧突然冲出一辆外卖电动车——这是典型的A柱盲区问题。传统自动驾驶就像闭着眼睛打游戏,全靠本车传感器"听声辨位"。而5G车联网协同感知&#x…...
Ubuntu20.04安全重启后WiFi图标消失?MT7922网卡驱动修复全攻略
Ubuntu 20.04安全重启后MT7922网卡驱动失效的深度修复指南 问题现象与初步诊断 当你使用REISUB组合键对Ubuntu 20.04进行安全重启后,可能会发现桌面右上角的WiFi图标神秘消失。这不是简单的界面显示问题,而是MT7922无线网卡驱动未能正常加载导致的深层…...
Python+Spire.Doc实战:5分钟搞定Word邮件合并批量生成邀请函(附完整代码)
PythonSpire.Doc实战:5分钟搞定Word邮件合并批量生成邀请函(附完整代码) 行政和市场人员经常面临批量发送个性化邀请函的挑战。传统手动修改不仅耗时费力,还容易出错。今天我们将用Python和Spire.Doc库,实现高效精准的…...
GPIO输入模式深度解析:STM32按键检测中IDR寄存器的使用技巧与常见问题
STM32 GPIO输入模式实战:从IDR寄存器到工业级按键检测方案 在嵌入式开发中,GPIO输入模式是实现人机交互的基础功能之一。对于STM32开发者而言,深入理解IDR寄存器的工作原理和按键检测的实现技巧,往往决定着产品交互的可靠性和响应…...
d2s-editor终极指南:5分钟学会暗黑破坏神2存档可视化编辑
d2s-editor终极指南:5分钟学会暗黑破坏神2存档可视化编辑 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2存档修改而头疼吗?复杂的十六进制编辑、看不懂的二进制数据、一不小心就损坏的…...
【day63】
以前有个孩子,他分分钟都在碎碎念。不过,他的念头之间是有因果关系的。他会在本子里记录每一个念头,并用箭头画出这个念头的来源于之前的哪一个念头。翻开这个本子,你一定会被互相穿梭的箭头给搅晕,现在他希望你用程序…...
