Closed y1s3m0 closed 4 years ago
???? 为什么这么改就对了??????
惭愧,百度到这么一段,然后就“这也能用了?!”
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用` * 号操作符,可以将元组解压为列表。
zip
方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
列表生成式是可以应用在可迭代对象上的,强制转换为list应该只是浪费内存吧.... 我从来没有在我自己的机器上遇到过这样的问题, 能不能详细描述一下错误发生时的情况,或者提供出错信息? 比如场上是哪几个从者,是在放技能还是选卡等阶段出现错误之类的
使用pycharm调试 版本v3.2.2 雷电模拟器1920*1080(同使用127.0.0.1:5555端口) 不知道是否为模拟器问题,更改代码之后能稳定使用 测试了两次(分别为第8回合与第9回合) 获取句柄和连接后,肝禁书级活动 在刚进入到第三面时报错
C:\Users\hsf\Anaconda3\envs\all\python.exe C:/Users/hsf/PycharmProjects/FGO-py/fgoGui.py 2020-03-03_15.53.43 Battle 1 2020-03-03_15.53.48 Friend: gold 2020-03-03_15.54.17 1 1 1 [0, 1, 2] 2020-03-03_15.54.46 2 1 2 [0, 1, 2] 2020-03-03_15.55.02 3 1 3 [0, 1, 2] 2020-03-03_15.55.23 4 2 1 [0, 1, 2] 2020-03-03_15.55.42 5 2 2 [0, 1, 2] 2020-03-03_15.56.06 6 2 3 [0, 1, 2] 2020-03-03_15.56.39 7 2 4 [0, 1, 2] Traceback (most recent call last): File "C:/Users/hsf/PycharmProjects/FGO-py/fgoGui.py", line 51, in f func(*args,*kwargs) File "C:\Users\hsf\PycharmProjects\FGO-py\fgoFunc.py", line 198, in main if not battleFunc(args,**kwargs):doit('VJ',(500,500)) File "C:\Users\hsf\PycharmProjects\FGO-py\fgoFunc.py", line 151, in oneBattle if stageTurn==1:doit('\x69\x68\x67\x66\x65\x64'[dangerPos[stage-1]]+'P',(50,500)) IndexError: string index out of range string index out of range 0
再次点击完成战斗同样报错 定位到doit函数 更改后稳定 附上配置,场上为123号英灵 希望有所帮助
这....这是你优先攻击配置写错了
把鼠标挪到优先攻击的输入框上可以看到详细说明.
右到左依次为dangerPos0-2,当boss血条与小兵血条不在同一行内时(魔伊,鬼岛,罗生门,FA,柱子,etc.)第二行的三个位置为dangerPos3-5
也就是说在大多数活动中dangerpos都应该是0,1,2中的一个.
如果像你一样dangerpos[2]写了6,'\x69\x68\x67\x66\x65\x64'[6]就会发生string index out of range
然后重点来了,为什么在zip外面套上list就能不出错无事发生呢?
我不知道.
就像我自己反复测试的一样,无论如何只要输入不对就应该是会报错的
python的工作原理应该是先计算好'\x69\x68\x67\x66\x65\x64'[dangerPos[stage-1]]+'P'然后传入函数调用,不存在延迟计算的问题.应该和被调用函数没有一星半点的关系,绝不会保留这个错误继续往下执行的.
也不会是模拟器的问题.3.2.2版本是兼容所有安卓设备的
有待继续研究
好吧,我理解成一二三面按顺序来了 那最后还是感谢作者的脚本 airtest似乎也很有意思 会持续关注的
py3.7 v3.2.2 将Func中修改为以下能用
感谢作者 之后快乐的刷情人节吧