[toc]
## Python开发心得
相关学习材料:https://naotu.baidu.com/file/bc6e9fbaecf5319bced0918131be3941
## 基础语法
### while循环比for循环更加灵活
- for循环
- while循环:while可以使用死循环,且可以根据元素下标开始循环位置
```python
# 程序入口、控制中心_单次执行
def startOnce(self):
# 1、打开任务文件夹
var_index = 0
# 轮询次数
polling_count = 1
images = os.listdir("./images/task_" + self.dir)
while var_index < len(images) and polling_count <= self.max: # listdir的参数是文件夹的路径
filename = images.__getitem__(var_index)
print("[step-" + str(var_index + 1) + "]======================" + filename)
if var_index < self.index:
print("跳过第" + str(var_index + 1) + "个步骤")
var_index += 1
continue
# 2、先截取游戏区域大图,然后返回小图在大图中的坐标
# 1、第一种截图方法,只能截取电脑主屏幕
# self.screenshot()
# 2、第二种截图方法,可以截取进程所在显示器的主屏幕
start_XY = self.cW.grab_picture()
src = cv2.imread('temp.png')
target = cv2.imread('./images/task_' + self.dir + '/' + filename)
# self.find_button(target,full_screen)
pos = crab.find_position(target, src, start_XY[0], start_XY[1])
if pos is None:
if filename.__contains__("once_"):
print("该按钮点击一次就够了哦~即将跳过当前操作")
var_index += 1
continue
elif polling_count == self.max:
self.mode = 'Polling'
# 启动轮询模式,并从当前节点开始向后执行
print("第" + str(polling_count) + "次尝试点击,但是未找到按钮[" + filename + "]轮询模式启动……")
self.index = self.polling_start(var_index)
var_index = self.index + 1
polling_count = 1
continue
else:
print("第" + str(polling_count) + "次尝试点击,但是未找到按钮[" + filename + "]休息2s后继续……")
polling_count += 1
time.sleep(2)
else:
print("系统正在操作按钮:" + filename)
if self.mode == 'Polling':
self.mode = ''
print("轮询模式已关闭")
self.mouse.move(pos[0], pos[1])
time.sleep(self.rate)
self.mouse.press(pos[0], pos[1])
# 指示当前执行的步骤序号
var_index += 1
if filename.__contains__("_delay"):
time.sleep(5)
else:
time.sleep(self.rate)
continue
```
包的安装: