Python 小社-10

pyautogui & turtle

真正的最後一堂課

因為課表沒排到這所以我就教我會的東西

我從去年開始準備的簡報

autogui

模擬你的滑鼠和鍵盤操作

比起之前教的selenium更加貼近人操作

可以把他想成python的按鍵精靈

先下載pyautogui

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')

alert

import pyautogui

pyautogui.PAUSE = 1 
pyautogui.FAILSAFE = True 

pyautogui.alert(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', button = 'OK')

會跳出一個只有一個選項的對話框

confirm

import pyautogui

pyautogui.PAUSE = 1 
pyautogui.FAILSAFE = True 

pyautogui.confirm(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', buttons = ['OK', 'No'])

選項==buttons後面的串列

prompt

import pyautogui

pyautogui.PAUSE = 1 
pyautogui.FAILSAFE = True 

pyautogui.prompt(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', default = '好色喔')

預設的字串==default

按取消就會回傳None

password

import pyautogui

pyautogui.PAUSE = 1 
pyautogui.FAILSAFE = True 

pyautogui.password(text = '大哥哥不要戳那邊QAQ', title = 'FBI警告', default = '好色喔', mask = '@')

promt但是會用你設定的字元把輸入擋住

turtle

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()

下課 各位新年快樂

Made with Slides.com