pyautogui & turtle
真正的最後一堂課
因為課表沒排到這所以我就教我會的東西
我從去年開始準備的簡報
模擬你的滑鼠和鍵盤操作
比起之前教的selenium更加貼近人操作
可以把他想成python的按鍵精靈
pip install pyautogui
import pyautogui
pyautogui.PAUSE = 1 #每次呼叫後等待1秒
pyautogui.FAILSAFE = True #如果把滑鼠移到左上角會錯誤
先設定間格時間和預防錯誤
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
print(pyautogui.size()) #你的螢幕的x y範圍
print(pyautogui.position()) #你現在滑鼠的位置
print(pyautogui.onScreen(x, y)) #檢查x y是否在範圍內
這些操作使用時會不斷重複 要記好
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.moveTo(x, y, duration = 1) #移動到絕對位置
pyautogui.moveRel(x, y, duration = 1) #相對現在的位置移動
duration指的是你的滑鼠移過去的時間
不設定就是直接飛過去(Mac不行)
(0, 0)
(0, 240)
(300, 240)
X正方向往右 Y正方向往下
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.click(x = 1828, y = 52, duration = 1,clicks = 1, interval = 0, button='left')
clicks是點幾下 interval是點擊間隔
button可以是 left right middle三種
如果你在vscode執行這段程式碼會無限迴圈
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.rightClick(x=2473, y=51)
pyautogui.middleClick(x=2473, y=51)
pyautogui.doubleClick(x=2473, y=51)
pyautogui.tripleClick(x=2473, y=51)
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.scroll(999)
括弧裡放滾動的大小
>0往上
<0往下
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.mouseDown(x=0, y=0, button='left')
pyautogui.mouseUp(x=960, y=720, button='left')
記得mouseUp
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.typewrite('Hello world!\n', interval = 1)
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.typewrite(['a', 'b', 'c', 'left', 'backspace', 'enter', 'f1'], interval = 1)
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
print(pyautogui.KEYBOARD_KEYS)
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.hotkey('ctrl', 'c')
pyautogui.hotkey('ctrl', 'v')
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.keyDown('ctrl')
pyautogui.keyUp('ctrl')
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.alert(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', button = 'OK')
會跳出一個只有一個選項的對話框
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.confirm(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', buttons = ['OK', 'No'])
選項==buttons後面的串列
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.prompt(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', default = '好色喔')
預設的字串==default
按取消就會回傳None
import pyautogui
pyautogui.PAUSE = 1
pyautogui.FAILSAFE = True
pyautogui.password(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', default = '好色喔', mask = '@')
promt但是會用你設定的字元把輸入擋住
import turtle
from turtle import *
forward(100)
backward(100)
forward==fd
backward==bk==back
from turtle import *
right(120)
left(1000)
括弧裡放的是角度
left==lt==逆時針
right==rt==順時針
from turtle import *
setheading(90)
直接轉到指定角度
from turtle import *
heading()
from turtle import *
goto(x, y)
from turtle import *
color('blue')
color('red')
from turtle import *
home()
跑出範圍的時候很好用
from turtle import *
pos()
home在(0, 0)
座標跟autogui一樣
from turtle import *
clearscreen()
from turtle import *
begin_fill()
end_fill()
兩個函式中間放你要畫的圖形
from turtle import *
speed(100)
放最前面就好
from turtle import *
degrees() #360一圈
radians() #2pi一圈
from turtle import *
pendown()
from turtle import *
penup()
from turtle import *
width(100)
from turtle import *
exitionclick()