<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="https://blog.x-tools.top/feed/rss/tag/%E7%AC%94%E8%AE%B0/">
<title>小夏的猪窝 - 笔记</title>
<link>https://blog.x-tools.top/tag/%E7%AC%94%E8%AE%B0/</link>
<description></description>
<items>
<rdf:Seq>
<rdf:li resource="https://blog.x-tools.top/archives/86/"/>
<rdf:li resource="https://blog.x-tools.top/archives/80/"/>
<rdf:li resource="https://blog.x-tools.top/archives/12/"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="https://blog.x-tools.top/archives/86/">
<title>蛋定！Coding···</title>
<link>https://blog.x-tools.top/archives/86/</link>
<dc:date>2023-06-04T13:42:00+00:00</dc:date>
<description>最近在开发一款图色助手，用WPF开发，用大漠插件实现图色的识别，其名为蛋定助手进度从上个月22号开始，就着手与基础框架的开发，直至27号为止完成基础框架构建，实现了屯屯鼠的Json图色识别，循环框架。此后的几天内，着重于FastApi的后端开发，实现了助手的接口开发，如ApiPost测试接口项目图。 目前进度完成了百分之40左右....此后，就是完善优化框架，除了循环识图模式，可能还需要加入，队列试图模式、行为树识别模式，均通过Json编写用户自行实现脚本操作。还要实现脚本基本功能的打包完善（更全能）目前，任务脚本的图片识别是本地文件的识别方式，后期还会加入Url、图片链接的方式实现脚本运行（更加轻量化）还有更多要开发的，如：云端的脚本库，用户脚本分享等功能...预计预计阴阳师周年庆之前出第一个版本。该助手有两种方式可以使用注册XTools用户，可以使用，并且提供云端资源库、脚本共享、轻量化的脚本任务的功能。自己填写您自己的大漠注册码，即可使用，但是不提供云端的功能。同样两种方式都提供Json文件的编辑、解析，以及无限多开功能，因为这是最基本的。目前软件图软件的界面我会尽可能的简单化，市面上的各种脚本软件，我见过它们的界面一眼望去 满眼的设置选项，这无疑增加了用户上手的难度，我的助手、脚本，并不会！我相信在以后我的脚本资源库，会提供足够丰富足够多的脚本，同时，我的用户也会分享各种好用的脚本。最后，我想说，这个软件 不仅仅用于“阴阳师”这款游戏，你可以将它看成自动化工具，你可以绑定各种窗口，实现各种点击操作（你想要的操作）。它的玩法，你无法想象。</description>
</item>
<item rdf:about="https://blog.x-tools.top/archives/80/">
<title>用虚拟机搞一个青龙面板玩！</title>
<link>https://blog.x-tools.top/archives/80/</link>
<dc:date>2023-02-24T14:24:00+00:00</dc:date>
<description>&lt;!--[toc]--&gt;做自己觉得有意义的事情，做自己喜欢的事情，做自己热爱的事情，让自己的休息时间充实起来，这没什么坏处，即使是玩游戏，但这些事情要一定让你有所收获。新开一个分类，找点事做，很简单，记录自己下班后所做的一些事情，可能是换了套喜欢的键帽，可以是分享个电视剧，等等...这次主要分享的是自己使用VMware虚拟机+CentOS8系统+Docker容器+青龙面板，实现的后台自动定时跑脚本的功能。准备VMware虚拟机本文章使用的是16 Pro版本，具体可以自写下载安装，在这里也推荐一个微信公众号，名为"不迷路资源库"，其分享很多软件，均为绿色版本或PJ版本。CentOS8系统本文章使用的系统来源于I Tell You网站，该网站收录众多官方系统镜像，非常方便使用。不想找的，可以直接复制粘贴此磁力连接:magnet:?xt=urn:btih:9DB46A612D04763AA7DB02A0FF63EDE2EA555867&dn=CentOS-8.1.1911-x86_64-dvd1.iso ，后迅雷等方式下载。Docker容器自行百度安装最新版本的Docker容器，安装前需要使用root管理员账号，使用su提升权限。青龙面板百度搜索“CentOS8 Docker 青龙面板”即可找到最新教程安装。用途使用虚拟机后，将搭载CentOS系统的虚拟机中网络适配器选项设置为如下图所示，就能做到从虚拟机外的主系统访问CentOS的各种服务。在虚拟机中我们使用ifconfig来获取CentOS系统的ip地址，如图我的ip地址为192.168.1.5，知道ip后我们就可以在主系统的浏览器中直接访问具有虚拟机中的青龙面板服务！关于青龙面板的用途，可以自行挖掘，其用途非常广阔，用来自动签到、自动任务、京东领豆等等... 只需要开启电脑，将虚拟机挂在后台运行即可。本人目前使用的库是Faker2的京东库，自动挂豆子用。同样也可以自己写一些脚本，在青龙面板中自动定时跑脚本，目前支持Python、JavaScript、NodeJs编程语言。在后台运行即可。坑在使用青龙面板Faker库时，遇到了搞我半天的坑，执行脚本任务时会报错，想了半天才知道要装“依赖”！！是青龙面板中的依赖中安装，并不是在linux命令行中安装，没有用的。具体见CSDN青龙面板依赖文章青龙面板的通知设置，我使用的是gocqhttpapi的方式，因为我在服务器中挂了一个gocq的nonebot机器人。在设置此通知方法时，在青龙初始化安装时无法通过测试，因为当前版本的gocq服务已经不需要Token来认证之后发送消息了，我们需要进入系统后在系统设置中设置，其中将Tonken设置为一个空格就可以实现消息通知啦。拓展已知设置为这样的网络适配器模式，CentOS系统与主系统处于一个局域网内，可以使用XShell软件进行后台的远程控制。非常方便进行跑脚本，以及软件的开发调试。CentOS+容器，玩法真的很多很多，慢慢挖掘吧。总结资源软件公众号，“不迷路资源库”，自行搜索。系统镜像I Tell You网站。CentOS 8 镜像磁力: magnet:?xt=urn:btih:9DB46A612D04763AA7DB02A0FF63EDE2EA555867&dn=CentOS-8.1.1911-x86_64-dvd1.iso CentOS获取ip，使用ifconfig命令。</description>
</item>
<item rdf:about="https://blog.x-tools.top/archives/12/">
<title>Python - 字符串 列表 元组 字典 集合</title>
<link>https://blog.x-tools.top/archives/12/</link>
<dc:date>2022-05-20T02:08:00+00:00</dc:date>
<description>&lt;!-- [toc] --&gt;字符串 ' '不可变类型强制类型转化方法 str(数字或变量)​                 int(字符串)字符串输出a ='我爱学Python'
print(f'''多行引号c支持f表达式吗？
这是第二行
这是a的值：{a}
下一行结束啦
exit''')
#f表达式 和c# $表达式一模一样

a = int(a)
＃强制类型转换==上面的程序说明多行输出时，支持f表达式，可以带入变量输出！ 非常的实用！==切片a='我爱学Python'a[0:9] 输出：我爱学Pythona[开始下标:结束下标+1]。a[0:9:1] 输出：我爱学Pythona[0:9:2] 输出：我学yhna[开始下标:结束下标+1:步长]  步长默认为1a[::-1] 输出：nohtyP学爱我步长为 -1 时，倒叙输出字符串。a[-7:-2] 输出：学Pyth都为负数时，从右向左，从-1到-n。字符串常用方法查找方法#查找方法  find
a=&quot;我要查找以下字符串'我爱学Python'，嗨嗨嗨，第二个字符串'我爱学Python',嗨嗨嗨&quot;
#a.find(查找的串,查询起始位置,查询结束位置)
print(a.find(&quot;我爱学python&quot;))#返回 -1 ，因为没找到
print(a.find(&quot;我爱学Python&quot;))#返回 10 ，找到了返回的字符串中的起始下表位置
#反向查找  rfind
print(a.rfind(&quot;我爱学Python&quot;))#返回 32
#查询出现多少次字串  count
print(a.count('我爱学python'))#返回 0，没查到
print(a.count('我爱学Python'))#返回 2，出现了2次字符串修改方法#修改方法  replace
a=&quot;我要查找以下字符串'我爱学Python'，嗨嗨嗨，第二个字符串'我爱学Python'，嗨嗨嗨&quot;
#a.replace(旧串，新串，替换次数)
print(a.replace('我爱学Python','Python'))
#分割方法  split
print(a.split('，'))#返回一个列表
#合并方法 只能合并列表
#字符串.join(字符串列表)
a=['字符串1','字符串2','字符串3']
print('*'.join(a))#返回 字符串1*字符串2*字符串3
print(join(a))#报错！ 必须拥有一个合并字符串
print(''.join(a)) #可以用空字符代替补充方法字符串.strip()去除空格列表[]小知识他是可变类型强制类型转化方法 list(序列)列表的定义vs = [123,456,789]#一个列表 中存的是数字
vs=[]#空列表列表方法查找index()方法 如果不存在则报错count()方法vs = [123,456,789]#一个列表 中存的是数字
#查找
vs.index(123)#返回0下标 如果不存在则报错
#查询出现次数
vs.count(123)#返回1
#len测量列表长度
len(vs)#返回3增加append() 只能增加一个数据 加在最后extend() 只能增加一个列表 在最后insert(pos,val) 指定位置追加数据#增加列表
vs = [123,456,789]#一个列表 中存的是数字
#只能增加一个数据 加在最后
vs.append(123456)#结果为[123, 456, 789, 123456]
#只能增加一个列表 在最后
vs.extend([1,2,3,4,5])#vs的值为[123, 456, 789, 123456, 1, 2, 3, 4, 5]
#指定位置追加数据 
vs.insert(1,8)#vs的值[123, 8, 456, 789, 123456, 1, 2, 3, 4, 5]删除del(vs) 删除整个列表del(vs[0]) 删除指定值vs.pop(pos) 删除指定位置并且返回vs.remove(123)  删除第一个匹配的数据clear() 清空列表#删除变量
vs = [123,456,789]#一个列表 中存的是数字
del(vs)#删除整个列表
del(vs[0])#vs 值为 [456, 789]

vs.pop()#删除指定位置的数据，并且返回 修改vs变量
#返回 789 vs值为 [456]

#删除第一个匹配的数据
vs.remove(123) #返回[456,789]

#清空列表
vs.clear()修改reverse() 列表倒叙排列sort() 列表升序排列sort(reverse=True) 列表降序排列#修改数据
a=[1,2,3,4,5,6,7]

#指定下标修改
a[0]=999 #a值为 [999, 2, 3, 4, 5, 6, 7]
#将列表倒叙排序
a.reverse()#a值为 [7, 6, 5, 4, 3, 2, 1]

#排序sort
a=[1,6,7,8,9,0,2,5,4,3]
#默认升序
a.sort()#a 值 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a.sort(reverse=True)#降序 a 值 [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]列表的连接lister = ['12','34','354']
strret = ''.join(lister)列表转元组使用tuple()转换a=[1,2,3,4]
a=tuple(a)元组()不可变类型不可以修改数据只能读强制类型转换用 tuple(序列)单个数组的元组定义a = (1,)
#一定要有一个逗号，不然不是元组类型查询方法和列表相同只有index() 和 count()方法len()方法元组转列表a=(1,2,3,4)
a=list(a)循环 遍历 迭代For循环相当于foreach()语句a=[867,234,678,0,2,4,6]
for i in a:
    print(i)
#依次输出
#867
#234
#678
#0
#2         
#4
#6条件判断语句python一定要注意缩进！    C语言是大括号控制，Python不一样的就是使用缩进。
if 条件:
    语句1
    语句2
elif 条件:
    语句1
    语句2
else:
     语句1
     语句2
     
＃三目运算
a = b if a&gt;b else a
＃求两数小值
＃符合条件值 if 条件 else 不符合的值字典{Key:values}可变类型字典总是成对出现的， 统称 键值对字典的定义： a = {}字典的type类型是：dict字典={'huawei':33,'xiaomi':44,'ipad':22}#调用方式
字典['huawei'] #输出33字典的方法增加字典[键]=值
#如果存在 则修改  不存在 则添加删除删除用del进行删除#删除指定值
a={'huawei':1,'xiaomi':2,'ipad':3,'sanxing':4}
del a['ipad']
#删除整个字典
del a
#字典的清空
a.clear()查询get()方法  查询values()方法  返回字典中的值items()方法  返回的是个元组keys()方法  返回所有键 ‘dict_keys’#查询 get
a={'huawei':123,'ipad':321,'xiaomi':546}
a.get('huawei',9999) #返回123
#如果不存在 就返回参数2中的任意值

#values()
#返回字典中的值，返回的是个列表 类型是 dict_values

#items()
#返回的是个元组字典的循环遍历a={'huawei':123,'ipad':321,'xiaomi':546}
#打印遍历所有字典中的键
for i in a.keys():
    print(i)
    
#打印遍历所有字典中的值
for i in a.values():
    print(i)
    
#打印遍历所有字典中的键值对 元组的形式 
for i in a.items():
    print(i)
    
#打印遍历所有字典中的键值对 键值对的调用形式
#就是临时变量多一个 一个是键 一个是值
for i,j in a.items():
    print(f'{i}={j}')集合{}可变类型集合 字典 都是大括号空集合 必须用set()的方法定义类型为set强制转换方法是set()特点没有重复，自动去重顺序是随机的集合的方法增用add()方法增加新集合，加入数据存在则无视。用update()方法追加数据，可以是列表,集合，加入数据存在则无视。a={1,2,3,4}
a.add(5)#增加

a.update({1,2,3,4,5,6,7})
a.update([1,2,3,4,5,6,7])
a.update(&quot;abc&quot;)删remove() #不存在报错discard() #不存在不报错pop() #随机删除集合里的数据a={1,2,3,4}
a.remove(5) #会报错
a.discard(1) #不报错

a.pop()#随机删除一个数据 并且返回删除的数据
#可以这么用
b=a.pop() #删的数据存到b中查用关键字 in 查询数据在集合中用关键字 not in 查询数据不在集合中a={1,2,3,4}
print(1 in a)
print(5 in a)
print(1 not in a)
print(5 not in a)</description>
</item>
</rdf:RDF>