Win10自動(dòng)化操作-Automagica

Automagica 是一個(gè)開源智能機(jī)器人流程自動(dòng)化(SRPA,Smart Robotic Process Automation)平臺(tái)北苟,借助 Automagica桩匪,自動(dòng)化跨平臺(tái)流程變得輕而易舉。Automagica 可以通過簡單程序腳本實(shí)現(xiàn)打開各種應(yīng)用程序并對(duì)應(yīng)用進(jìn)行操作友鼻。
Automagicaoakwood開源的一個(gè)項(xiàng)目, 源碼開放在automagica傻昙。

它基于Python和Tensorflow等開源技術(shù),因此可以輕松接入人工智能領(lǐng)域的最新和重大發(fā)展彩扔,將其用于日常辦公妆档。

Automagica 需要 Python 3.7 環(huán)境,官方支持 Windows 10 平臺(tái)虫碉,Linux 和 Mac 目前官方還不支持贾惦。

Automagica 使用場景:

  • 桌面交互自動(dòng)化
  • Office 自動(dòng)化,例如打開 Excel 并進(jìn)行數(shù)據(jù)填充
  • Web 自動(dòng)化敦捧,例如打開網(wǎng)址并進(jìn)行網(wǎng)頁操作
  • 商業(yè)應(yīng)用自動(dòng)化须板,支持 SAP、Oracle Apps兢卵、Siebel习瑰、PeopleSoft 與 Salesforce 等
  • 自動(dòng)打開郵件應(yīng)用并收發(fā)郵件
  • 遠(yuǎn)程控制等等

1.鼠標(biāo)和鍵盤自動(dòng)化

1.鼠標(biāo)

坐標(biāo)示意.png

1.1GetMouseCoordinates()

以彈框的形式返回當(dāng)前鼠標(biāo)的x與y坐標(biāo)

坐標(biāo)圖.png

1.2左鍵單擊:

'''ClickOnPosition(x, y)'''

1.3雙擊:

DoubleClickOnPosition(x, y)

1.4右鍵點(diǎn)擊:

RightClickOnPosition(x, y)

1.5將指針移動(dòng)到某個(gè)位置。這可以通過絕對(duì)坐標(biāo)對(duì)或相對(duì)于當(dāng)前鼠標(biāo)位置確定的位置來完成:

絕對(duì) MoveToPosition(x, y)
相對(duì) MoveRelative(x, y)

1.6要在按住按鈕的同時(shí)將鼠標(biāo)從當(dāng)前位置移動(dòng)到指定位置秽荤,例如在屏幕上拖動(dòng)對(duì)象甜奄,可以使用以下功能:

DragToPosition(x, y, button="left")

第三個(gè)參數(shù)指定需要按下哪個(gè)鼠標(biāo)按鈕。這可以是一個(gè)字符串:“l(fā)eft”窃款,“middle”或“right”课兄。下面的示例將鼠標(biāo)移動(dòng)到“chrome”圖標(biāo)的位置并將其拖動(dòng)到其他位置。

MoveToPosition(532, 443) # 選中網(wǎng)易云簡報(bào) DragToPosition(800, 800, "left") # 拖動(dòng)到800晨继,800

2.鍵盤

2.1要按下并釋放鍵盤上的某個(gè)鍵烟阐,您可以使用以下功能:

PressKey(key="Keyname")

參數(shù)應(yīng)該是一個(gè)字符串。以下列表包含每個(gè)可能的鍵名紊扬。: ['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright']

2.2使用下一個(gè)功能可以執(zhí)行兩個(gè)或三個(gè)鍵的熱鍵組合:

PressHotkey(first_key,second_key,third_key=None)

參數(shù)是需要按下的鍵蜒茄。如果只按下兩個(gè)鍵,則可以省略第三個(gè)參數(shù)珠月。下一個(gè)示例使用組合鍵“Ctrl + Shift + Esc”打開任務(wù)管理器:

PressHotkey("ctrl","shift","esc")

2.3可以使用以下函數(shù)在所選字段中鍵入文本:

Type(text, interval_seconds=0.001)

第一個(gè)參數(shù)是以字符串形式輸入的文本扩淀,而變量是鍵擊之間的時(shí)間。請(qǐng)注意啤挎,您只能按單個(gè)字符鍵驻谆。像“:”卵凑,“F1”,......之類的鍵不能成為第一個(gè)參數(shù)的一部分胜臊。以下示例類型在所選字段中鍵入“automagica.be/”(在本例中為chrome搜索欄)勺卢,然后按Enter鍵:

Type("automagica.be/", interval_seconds=0.01) PressKey("enter")

2.4常用功能鍵:

Capslock() Numlock() Enter() SpaceBar() Backspace() Delete() Endkey() Tab()

2.瀏覽器自動(dòng)化

1.基本功能

1.1要打開瀏覽器,請(qǐng)從菜單中選擇“打開Chrome瀏覽器”或輸入命令:

browser = ChromeBrowser()

通過單擊菜單中的“瀏覽到URL”瀏覽到網(wǎng)站象对,或使用以下命令:

browser.get('https://mywebsite.com/')

1.2關(guān)閉瀏覽器可3以通過以下方式完成:

browser.close()

1.3要在瀏覽器的歷史記錄中前后移動(dòng)

browser.forward() browser.back()

1.4要點(diǎn)擊一個(gè)元素:

element.click() #可插入xpath表達(dá)式

1.5要在文本字段中輸入文本:

element.send_keys("some text") #可用于提交表單

1.6要清除元素:

element.clear()

2.導(dǎo)航

2.1查找單個(gè)元素

find_element('XPath')

2.2查找多個(gè)元素

find_elements('XPath')

2.3按名稱選擇

<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="loginbutton" type="submit" value="Login" /> <input name="clearbutton" type="button" value="Clear" /> </form> </body> <html> //*[@id="custom-bg"]

用戶名和密碼字段可以通過以下方式找到:

要查找并單擊登錄按鈕:

login = browser.find_element_by_name('loginbutton') login.click()

邊注

在雙重命名的情況下黑忱,按名稱查找始終會(huì)找到第一個(gè)元素。想象一下以下的html代碼:

<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> </form> </body> <html>

以下命令將找到名為“continue”的第一個(gè)元素勒魔,從而選擇Login按鈕:

continue = browser.find_element_by_name('continue')

2.4按ID選擇

當(dāng)已知時(shí)甫煞,您可以按Id選擇元素。這是一個(gè)健壯的方法冠绢,但通常nog每個(gè)元素都有一個(gè)已知的id標(biāo)記抚吠。考慮下面的html代碼:

<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="continue" type="submit" value="Login" /> </form> </body> <html>

在這種情況下弟胀,表單具有id“l(fā)oginForm”楷力。因此,可以使用Id選擇表單:

loginform = browser.find_element_by_id('loginForm')

2.5Xpath選擇

XPath(XML路徑語言)是一種用于從XML文檔中選擇節(jié)點(diǎn)的查詢語言孵户。由于HTML可以是XML的實(shí)現(xiàn)(稱為XHTML)萧朝,因此該語言可用于在Web應(yīng)用程序中查找和操作目標(biāo)元素。

使用XPath的優(yōu)點(diǎn)是可以到達(dá)HTML結(jié)構(gòu)中的每個(gè)元素夏哭。有關(guān)如何使用XPath查找和使用元素的直觀介紹检柬,請(qǐng)參閱快速入門。使用完整XPath的缺點(diǎn)是它不是很強(qiáng)大方庭。即使HTML頁面中的最輕微更改也會(huì)導(dǎo)致絕對(duì)XPath更改厕吉,結(jié)果可能導(dǎo)致機(jī)器人無法找到正確的元素酱固。請(qǐng)注意械念,這與使用元素名稱或ID不同,因?yàn)橹灰Q或ID保持不變运悲,仍然可以在HTML頁面中找到更改的元素龄减。

因此,在使用Xpath時(shí)班眯,可以通過查找具有id或name屬性的附近元素(理想情況下為父元素)來增強(qiáng)穩(wěn)健性希停,以便您可以根據(jù)關(guān)系找到目標(biāo)元素。

使用以下源代碼:

<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="loginbutton" type="submit" value="Login" /> <input name="clearbutton" type="button" value="Clear" /> </form> </body> <html> //*[@id="custom-bg"]

選擇用戶名:

  1. 絕對(duì)路徑(請(qǐng)注意署隘,如果HTML僅稍微更改宠能,這將會(huì)中斷)
  2. 指向表單中的第一個(gè)元素
  3. 第一個(gè)輸入元素,其屬性名為“name”磁餐,值為username

username = browser.find_element_by_xpath("http://form[input/@name='username']") username = browser.find_element_by_xpath("http://form[@id='loginForm']/input[1]") username = browser.find_element_by_xpath("http://input[@name='username']")

“清除”按鈕可以通過以下方式找到:

  1. 表單元素的第四個(gè)輸入元素违崇,其屬性名為id阿弃,值為loginForm
  2. 輸入名為name的屬性,值為continue羞延,屬性名為type渣淳,值為button

clear_button = browser.find_element_by_xpath("http://form[@id='loginForm']/input[4]") clear_button = browser.find_element_by_xpath("http://input[@name='continue'][@type='button']")

表格可以通過以下方式選擇:

  1. 絕對(duì)路徑(請(qǐng)注意,如果HTML僅稍微更改伴箩,這將會(huì)中斷):
  2. HTML中的第一個(gè)表單元素
  3. 表單元素入愧,其屬性名為id,值為loginForm

login_form = browser.find_element_by_xpath("/html/body/form[1]") login_form = browser.find_element_by_xpath("http://form[1]") login_form = browser.find_element_by_xpath("http://form[@id='loginForm']")

2.6瀏覽示例

以下示例瀏覽Google嗤谚,搜索Automagica棺蛛,打開第一個(gè)Google搜索結(jié)果鏈接

Open Chrome browser = ChromeBrowser() # Browse to Google browser.get('https://google.com') # Enter Search Text browser.find_element_by_xpath('//[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').send_keys('automagica') # Submit browser.find_element_by_xpath('//[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').submit() # Click the first link browser.find_elements_by_class_name('r')[0].click()

3.流程活動(dòng)

1.輸入路徑名

在以下許多函數(shù)中,路徑名都需要作為輸入?yún)?shù)巩步。重要的是以正確的方式輸入這些以防止所需操作的故障鞠值。pathname指定文件,文件夾渗钉,可執(zhí)行文件......所在的目錄彤恶。這種路徑名的一個(gè)示例是:“C:\ Users \ Bob \ Desktop \ Automagica.pptx”。在函數(shù)中輸入時(shí)鳄橘,路徑名必須是字符串声离。因此,每個(gè)反斜杠都需要在輸入中加倍瘫怜。下一段代碼說明了如何在函數(shù)中輸入路徑名术徊。

Pathname: C:\Users\Bob\Desktop\Automagica.pptx # As a string: "C:\Users\Bob\Desktop\Automagica.pptx" # In a function: Openfile("C:\Users\Bob\Desktop\Automagica.pptx")

在Windows資源管理器中,可以通過按Shift +右鍵單擊文件鲸湃,文件夾來確定路徑...彈出一個(gè)菜單赠涮,您可以在其中選擇“復(fù)制為路徑”(參見圖像)。這將te路徑作為字符串復(fù)制到剪貼板暗挑,例如“C:\ Program Files(x86)\ Dropbox \ Client \ Dropbox.exe”笋除。此路徑仍需要將其所有反斜杠加倍,以使其以正確的形式輸入函數(shù):“C:\ Program Files(x86)\ Dropbox \ Client \ Dropbox.exe”炸裆。

2.標(biāo)準(zhǔn)Windows應(yīng)用程序

Windows有幾個(gè)標(biāo)準(zhǔn)的應(yīng)用程序垃它,可以使用Automagica的功能打開。以下列表總結(jié)了所有可用的功能烹看。如果要打開的程序在此列表中国拇,建議使用這些功能之一,而不是下一小節(jié)中描述的更一般的功能惯殊。

打開Windows計(jì)算器:

OpenCalculator()

打開MS Paint:

OpenPaint()

打開記事本:

OpenNotepad()

打開Windows截圖工具:

OpenSnippingTool()

打開Windows控制面板:

OpenControlPanel()

打開Windows Clean Manager:

OpenCleanManager()

打開Windows撥號(hào)器:

OpenDialer()

打開Windows Volume Mixer:

OpenVolumeMixer()

打開Windows XPS Viewer:

OpenXPSViewer()

3.一般命令

·以上功能都是特定于程序的酱吝。如果已知確切路徑,則可以運(yùn)行程序或?qū)⑵潢P(guān)閉土思。以下函數(shù)可以打開位于指定路徑的可執(zhí)行文件:

Start Process LaunchProcess(process_executable="pathname")

以下示例說明了該功能的用法务热。該代碼將打開百度網(wǎng)盤毕源。

LaunchProcess("F:\software\百度云\BaiduNetdisk\baidunetdisk.exe")

(慢)替代方案是使用:

OpenProgramByName(name, main_drive = "C:\")

此函數(shù)不需要在第一個(gè)變量中輸入完整路徑作為輸入∩孪埃回到上面的例子霎褐,Dropbox也可以通過以下方式打開:

OpenProgramByName("Dropbox")

4.運(yùn)行程序

Automagica可以檢查計(jì)算機(jī)上當(dāng)前活動(dòng)的程序。這可以使用需要進(jìn)程名稱的常規(guī)函數(shù)??來完成该镣,如果指定的程序處于活動(dòng)狀態(tài)冻璃,則返回True:

ProcessRunning(name="program_name")

除此之外,還有一些特定于程序的函數(shù)损合,如果該程序當(dāng)前正在運(yùn)行省艳,則返回True。這些列表如下:

ChromeRunning() WordRunning() ExcelRunning() PowerpointRunning() DropboxRunning() FirefoxRunning() TeamviewerRunning() SkypeRunning() EdgeRunning() OnedriveRunning() IllustratorRunning()

最后嫁审,每個(gè)活動(dòng)程序的列表可以顯示如下:

ListRunningProcesses()

5.監(jiān)控

1.以下函數(shù)列表可用于返回有關(guān)CPU跋炕,磁盤,內(nèi)存等當(dāng)前狀態(tài)的信息律适。

CPULoad(measure_time=1)

2.返回所有核心的平均CPU負(fù)載辐烂。每秒測量一次,調(diào)整measure_time(秒)以獲得更長的平均測量時(shí)間捂贿。標(biāo)準(zhǔn)measure_time是1秒纠修。

NumberOfCPU(logical=True)

3.返回當(dāng)前系統(tǒng)中CPU的數(shù)量。參數(shù)'logical'確定是否僅將邏輯單元添加到計(jì)數(shù)中厂僧,默認(rèn)值為True扣草。

CPUFreq()

4.返回CPU當(dāng)前運(yùn)行的頻率。還顯示最小和最大頻率颜屠。

CPUStats()

5.返回CPU統(tǒng)計(jì)信息:CTX開關(guān)辰妙,intterupts,軟中斷和系統(tǒng)調(diào)用的數(shù)量甫窟。

MemoryStats(mem_type='swap')

6.返回內(nèi)存統(tǒng)計(jì)信息:使用的總數(shù)密浑,已用數(shù),空閑數(shù)和百分比數(shù)蕴坪。為虛擬內(nèi)存選擇mem_type ='virtual'肴掷,為交換內(nèi)存選擇mem_type ='swap'(標(biāo)準(zhǔn))敬锐。

DiskStats()

7.返回主磁盤的磁盤統(tǒng)計(jì)信息:總數(shù)背传,已用數(shù),空閑數(shù)和使用百分比台夺。

DiskPartitions()

8.返回每個(gè)分區(qū)的信息元組径玖。

BootTime()

9.返回時(shí)間PC在紀(jì)元后幾秒內(nèi)啟動(dòng)。

TimeSinceLastBoot()

返回自上次啟動(dòng)以來的時(shí)間(秒)

5.辦公自動(dòng)化

1.word

要打開Word文檔:

document = OpenWordDocument('example.docx')

替換Word文檔中的單詞颤介。這在使用表單模板時(shí)特別有用梳星。確保模板包含唯一的占位符變量赞赖,以便自動(dòng)填充不會(huì)導(dǎo)致含糊不清。

document = ReplaceTextInDocument(document, text='[placeholder]', replace_with='My text')

將Word文檔轉(zhuǎn)換為PDF:

ConvertWordToPDF(word_filename='C:\document.docx', pdf_filename='C:\document.pdf')

2.Excel

2.1讀寫

Excel中的自動(dòng)化大多數(shù)時(shí)候都需要讀寫單元格冤灾。在Automagica中前域,這非常簡單。

讀取單元格有兩個(gè)功能韵吨。

Using cell value ExcelReadCell(path="\pathname", cell="A1", sheet=None)

從Excel文件中讀取單元格并返回其值匿垄。確保輸入有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”归粉。您想要讀取的單元格需要由單元名稱定義椿疗,例如“A2”。第三個(gè)變量是一個(gè)字符串糠悼,其中包含需要讀取的工作表的名稱届榄。如果省略,該函數(shù)將讀取當(dāng)前活動(dòng)工作表的輸入單元格倔喂。

Using row column ExcelReadRowCol(path="\pathname", r=1, c=1, sheet=None

從Excel文件中讀取單元格并返回其值铝条。確保輸入有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”席噩。您要讀取的單元格必須是行和列攻晒。例如r = 2且c = 3指的是細(xì)胞C3。第三個(gè)變量是字符串班挖,其中包含需要讀取的工作表的名稱鲁捏。如果省略,該函數(shù)將讀取活動(dòng)工作表的輸入單元格萧芙。第一行定義為行號(hào)1给梅,第一列定義為列號(hào)1

與讀取單元格類似,有兩個(gè)函數(shù)用于將值寫入單元格双揪。

Using cell value ExcelWriteCell(path="\pathname", sheet=None, cell="A1", write_value="Value")

將單元格寫入Excel文件动羽。確保輸入有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”渔期。單元格應(yīng)由單元名稱定義运吓。例如“B6”。價(jià)值可以是任何東西疯趟,標(biāo)準(zhǔn)是“價(jià)值”拘哨。執(zhí)行代碼時(shí),請(qǐng)確保關(guān)閉要寫入的.xlsx文件信峻。

Using row and column ExcelWriteCell("C:\Users\Bob\Desktop\RPA Examples\data.xlsx",1,1,value="Robot")

從Excel文件中讀取單元格并返回其值倦青。確保輸入有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”盹舞。您要讀取的單元格必須是行和列产镐。例如r = 2且c = 3指的是細(xì)胞C3隘庄。第三個(gè)變量需要是一個(gè)字符串,其中包含需要讀取的工作表的名稱癣亚。如果省略丑掺,該函數(shù)將讀取活動(dòng)工作表的輸入單元格。第一行定義為行號(hào)1述雾,第一列定義為列號(hào)1吼鱼。

2.2基本操作

在閱讀和寫作之后,Automagica為.xlsx文件提供了一些基本操作绰咽。這些列在下面菇肃。

ExcelCreateWorkbook(path="pathname")

創(chuàng)建一個(gè)新的.xlsx文件并將其保存在指定的路徑下。如果輸入的路徑已存在取募,則該函數(shù)不執(zhí)行任何操作琐谤。

ExcelOpenWorkbook(path="pathname")

使用Microsoft Excel打開.xlsx文件。確保輸入有效路徑玩敏。這可以是引用現(xiàn)有.xlsx文件的路徑斗忌,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。這將打開現(xiàn)有文件旺聚。您還可以輸入完全新的路徑织阳。在這種情況下,該函數(shù)使用該路徑創(chuàng)建一個(gè)新的.xlsx文件砰粹,并使用Excel打開它唧躲。

ExcelSaveExistingWorkbook(path="pathname", new_path=None)

保存(作為)現(xiàn)有的.xlsx文件。第二個(gè)變量是文件需要保存的新路徑碱璃。如果您只想保存文件而不想“另存為”弄痹,則可以忽略此變量。要使功能正常工作嵌器,請(qǐng)務(wù)必不要打開要保存的文件肛真。

ExcelCreateWorkSheet(path="pathname", sheet_name=None)

在path變量指定的現(xiàn)有工作簿中創(chuàng)建具有指定名稱的新工作表。如果未輸入sheet_name爽航,則新工作表將命名為“sheet1”蚓让,“sheet2”,“sheet3”讥珍,...历极,具體取決于已存在的工作表。確保您輸入引用.xlsx文件的有效路徑串述,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”执解。要使函數(shù)正常工作,請(qǐng)務(wù)必在執(zhí)行期間關(guān)閉.xlsx文件纲酗。

ExcelGetSheets(path="pathname")

返回包含Excel文件的工作表名稱的列表衰腌。確保您輸入引用.xlsx文件的有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”觅赊。

ExcelPutRowInList(path="pathname", start_cell="B3", end_cell="E8", sheet=None)

將指定行的元素放在列表中右蕊。需要讀取的.xlsx文件和工作表分別由path-sheet和sheet變量指定。如果未指定工作表吮螺,則工作表變量將設(shè)置為當(dāng)前活動(dòng)工作表饶囚。還要使shure進(jìn)入有效路徑,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”鸠补。該行由引用第一個(gè)和最后一個(gè)單元格的字符串指定萝风。例如,下圖中的行由start_cell =“C4”和end_cell =“G4”定義紫岩。使用這兩個(gè)單元格調(diào)用函數(shù)會(huì)返回一個(gè)列表:[8规惰,“RPA”,None泉蝌,19歇万,“Automagica]。要使函數(shù)起作用勋陪,兩個(gè)單元格需要屬于同一行贪磺,start_cell需要是單元格左手邊。

ExcelPutColumnInList(path="pathname", start_cell="A3", end_cell="A8", sheet=None)

將指定列的元素放在列表中诅愚。需要讀取的.xlsx文件和工作表分別由path-sheet和sheet變量指定寒锚。如果未指定工作表,則工作表變量將設(shè)置為當(dāng)前活動(dòng)工作表违孝。還要使shure進(jìn)入有效路徑瓤狐,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”默终。該列由引用第一個(gè)和最后一個(gè)單元格的字符串指定。例如,下圖中的區(qū)域由start_cell =“C4”和end_cell =“C7”定義嫌松。調(diào)用函數(shù)返回此兩個(gè)單元格返回一個(gè)列表:[8,“RPA”恶耽,19蛹含,“Automagica”]。要使功能起作用撒踪,兩個(gè)輸入的單元格必須屬于同一列过咬,start_cell需要是上層單元格。

ExcelPutSelectionInMatrix(path="pathname", upper_left_cell="B2", bottom_right_cell="C3", sheet=None)

將指定選擇的元素放在矩陣中制妄。需要讀取的.xlsx文件和工作表分別由path-sheet和sheet變量指定掸绞。如果未指定工作表,則工作表變量將設(shè)置為當(dāng)前活動(dòng)工作表。還要使shure進(jìn)入有效路徑衔掸,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”烫幕。選擇由指向左上角和右下角單元格的字符串指定。例如敞映,在下圖中较曼,該區(qū)域由upper_left_cell =“C4”和bottom_right_cell =“E6”定義。該函數(shù)將返回一個(gè)矩陣振愿,其值為:[[8捷犹,“Automagica”,12]冕末,[“RPA”萍歉,15,無]档桃,[19枪孩,無,55]胳蛮。如果單元格為空销凑,則其值設(shè)置為“無”。

3.PDF操作

3.1合并PDF文件

MergePDF(pdf1="pathname", pdf2="pathname", merged_pdf="pathname")

此功能可以合并兩個(gè)現(xiàn)有的PDF文件仅炊。前兩個(gè)參數(shù)是需要合并的PDF斗幼,作為路徑輸入。pdf2中的頁面已添加到pdf2中抚垄。合并的PDF接收由第三個(gè)參數(shù)指定的新路徑蜕窿。

3.2從PDF中提取文本

ExtractTextFromPDFPage(path="pathname", page=1)

此函數(shù)從給定頁面中提取所有文本并將其作為字符串返回。需要輸入pdf作為路徑呆馁。請(qǐng)注意輸入的頁面需要大于0桐经。

4.文件和文件夾操作

在許多自動(dòng)化過程中,控制存儲(chǔ)的文件和目錄很有用浙滤。Automagica具有一些功能阴挣,可以使文件和文件夾的操作盡可能簡單。

4.1文件操作

在以下部分中纺腊,描述了Automagica為操作文件提供的功能畔咧。此函數(shù)的參數(shù)主要由路徑組成。在此路徑中揖膜,始終在路徑中使用完整文件名非常重要誓沸。例如,如果名為“Automagica”的png文件需要操作壹粟,則可能的路徑可能是:“C:\ Users \ Bob \ Desktop \ Automagica.png”拜隧。要使功能起作用,需要在.png中包含名稱。

4.1.1打開文件

要打開文件洪添,Automagica提供以下功能:

OpenFile(path="pathname")

示例路徑可以是“C:\ Users \ Bob \ Desktop \ Automagica.xlsx”垦页。

4.1.2重命名文件

可以使用以下代碼重命名文件:

RenameFile(path="pathname", new_name)

第一個(gè)參數(shù)是需要更改其名稱的文件的路徑。第二個(gè)變量只是文件必須接收的名稱薇组,因此不需要是完整路徑外臂。例如坐儿,下一行代碼將名為“Automagica.pptx”的文件名更改為“Automagica123.pptx”:

RenameFile("C:\Users\Bob\Desktop\Automagica.pptx", "Automagica123.pptx")

請(qǐng)注意律胀,無法更改文件類型的更改:如果第一個(gè)參數(shù)中的路徑以“.pptx”結(jié)尾,則新名稱也需要以“.pptx”結(jié)尾貌矿。

4.1.3移動(dòng)文件

以下函數(shù)可用于將文件從一個(gè)目錄移動(dòng)到另一個(gè)目錄:

MoveFile(old_path="old_pathname", new_location="new_location_path")

第一個(gè)變量contatain應(yīng)該移動(dòng)的文件的路徑(這包括文件的名稱)炭菌。第二個(gè)參數(shù)包含文件需要移動(dòng)到的位置的路徑(在此路徑中,應(yīng)省略文件名)逛漫。如果兩個(gè)參數(shù)中的一個(gè)包含不存在的路徑黑低,則該函數(shù)將不返回任何內(nèi)容。例如酌毡,下一段代碼將文件“Automagica.txt”從C:\ Users \ Bob \ Desktop \移動(dòng)到C:\ Users \ Bob \ Downloads \:

MoveFile("C:\Users\Bob\Desktop\Automagica.txt", "C:\Users\Bob\Downloads")

如果目標(biāo)位置已包含與需要移動(dòng)的文件夾名稱完全相同的文件夾克握,則會(huì)在名稱中添加八個(gè)字符的隨機(jī)uid。例如枷踏,如果在前面的示例中位置C:\ Users \ Bob \ Downloads已包含名為“Automagica.txt”的文件并且代碼已執(zhí)行菩暗,則它將從C:\ Users \ Bob \ Desktop移動(dòng)文件夾“Automagica”到C:\ Users \ Bob \ Downloads并將其名稱更改為“(be8e4c88)Automagica.txt”。

請(qǐng)注意旭蠕,添加的字符完全是隨機(jī)的停团。作為最佳工作函數(shù)的最后一點(diǎn),重要的是關(guān)閉需要移動(dòng)的文件掏熬。

4.1.4復(fù)制文件

如果需要將文件從一個(gè)目錄復(fù)制到另一個(gè)目錄佑稠,可以使用以下函數(shù):

MoveFile(old_path="old_pathname", new_location="new_location_path")

輸入的工作方式與MoveFile函數(shù)完全相同,并且需要關(guān)閉復(fù)制的文件才能使函數(shù)正常工作旗芬。另請(qǐng)注意舌胶,如果新位置已包含與副本名稱完全相同的文件,則它將被復(fù)制的文件覆蓋疮丛。

4.1.5刪除文件

以下函數(shù)用于從文件夾中刪除文件:

RemoveFile(path="pathname")

它將刪除具有給定路徑名的文件幔嫂。使用此代碼,關(guān)閉需要?jiǎng)h除的文件同樣重要这刷。

4.1.6檢查文件是否存在

如果某個(gè)文件的路徑存在婉烟,則Next函數(shù)返回True;如果路徑不存在則返回False,或者引用文件夾而不是文件暇屋。

FileExists(path="pathname")

4.1.7等待文件

以下函數(shù)等待似袁,直到創(chuàng)建具有輸入路徑的文件。

WaitForFile(path="pathname")

4.1.8寫入和從文件

可以將列表寫入.txt文件或?qū)?txt文件寫入列表。這可以通過以下功能完成昙衅。

WriteListToFile(list_to_write, file)

此函數(shù)將列表寫入.txt文件扬霜。輸入列表的每個(gè)元素都寫在文本文件的新行中。輸入.txt文件時(shí)帶有路徑而涉。如果該路徑尚不存在著瓶,該函數(shù)將在指定的路徑上創(chuàng)建一個(gè)新的.txt文件并寫入。如果路徑確實(shí)存在啼县,則該函數(shù)將列表寫入現(xiàn)有文件中材原。

WriteFileToList(file)

此函數(shù)將輸入的.txt文件的內(nèi)容寫入列表并返回該列表。.txt文件中的每一個(gè)新行都成為列表的新元素季眷。如果輸入的路徑未附加到.txt文件余蟹,則該功能將不起作用。

4.2文件夾操作

可以在文件上執(zhí)行的大多數(shù)操作也可以在文件夾上執(zhí)行子刮。Automagica提供了一系列功能威酒,可以輕松地對(duì)文件夾進(jìn)行操作。

4.2.1創(chuàng)建文件夾

要在所需位置創(chuàng)建文件夾挺峡,可以使用以下功能:

CreateFolder(path="pathname")

此函數(shù)創(chuàng)建一個(gè)文件夾葵孤,其名稱和位置在路徑中指定。下一段代碼通過在位置C:\ Users \ Bob \ Desktop創(chuàng)建名為“Automagica”的文件夾來說明這一原則橱赠。

CreateFolder("C:\Users\Bob\Desktop\Automagica")

需要記住的一點(diǎn)是輸入的路徑必須是唯一的尤仍。如果在同一位置已存在同名文件夾,則該功能不執(zhí)行任何操作病线。

4.2.2打開文件夾

可以使用以下功能打開文件夾:

OpenFolder(path="pathname")

4.2.3重命名文件夾

使用以下函數(shù)重命名文件夾:

RenameFolder(path="pathname", new_name)

第一個(gè)變量是需要重命名的文件夾的路徑吓著。第二個(gè)變量是文件夾必須接收的新名稱。下一個(gè)代碼示例將文件夾的名稱從“Automagica”更改為“Automagica123”送挑。該文件夾位于C:\ Users \ Bob \ Desktop绑莺。

RenameFolder("C:\Users\Bob\Desktop\Automagica", "Automagica123")

如果新路徑已存在,則代碼將不返回任何內(nèi)容惕耕。

4.2.4移動(dòng)文件夾

可以使用下一個(gè)功能將文件夾從一個(gè)位置移動(dòng)到另一個(gè)位置:

MoveFolder(old_path="pathname", new_location="pathname")

第一個(gè)變量contatain應(yīng)該移動(dòng)的文件夾的路徑(這包括文件夾的名稱)纺裁。第二個(gè)參數(shù)包含文件夾需要移動(dòng)到的位置的路徑(在此路徑中,應(yīng)省略移動(dòng)的文件夾的名稱)司澎。如果兩個(gè)參數(shù)中的一個(gè)包含不存在的路徑欺缘,則該函數(shù)將不返回任何內(nèi)容。例如挤安,下一段代碼將文件夾“Automagica”從C:\ Users \ Bob \ Desktop \移動(dòng)到C:\ Users \ Bob \ Downloads \:

MoveFolder("C:\Users\Bob\Desktop\Automagica", "C:\Users\Bob\Downloads")

如果目標(biāo)位置已包含與需要移動(dòng)的文件夾名稱完全相同的文件夾谚殊,則會(huì)在名稱中添加八個(gè)字符的隨機(jī)uid。例如蛤铜,如果在前面的示例中位置C:\ Users \ Bob \ Downloads已經(jīng)包含名為“Automagica”的文件夾并且代碼被執(zhí)行嫩絮,它將把文件夾“Automagica”從C:\ Users \ Bob \ Desktop移動(dòng)到C: \ Users \ Bob \ Downloads并將其名稱更改為“Automagica(be8e3c88)”丛肢。

請(qǐng)注意,添加的字符完全是隨機(jī)的剿干。作為最佳工作功能的最后一點(diǎn)蜂怎,重要的是關(guān)閉移動(dòng)文件夾中的所有文件。

4.2.5復(fù)制文件夾

可以將文件夾從一個(gè)文件夾復(fù)制到另一個(gè)位置置尔。與文件夾移動(dòng)的區(qū)別在于杠步,在這種情況下,復(fù)制的文件夾也保留在原始位置榜轿。輸入的原理完全類似于文件夾的移動(dòng)幽歼。例如,下一個(gè)代碼會(huì)將名為“Automagica”的文件夾從C:\ Users \ Bob \ Desktop \復(fù)制到C:\ Users \ Bob \ Downloads \差导。

CopyFolder("C:\Users\Bob\Desktop\Automagica", "C:\Users\Bob\Downloads\")

如果目標(biāo)位置已具有同名文件夾试躏,則該函數(shù)將向復(fù)制文件夾的名稱添加八個(gè)字符的隨機(jī)uid猪勇。這與MoveFolder函數(shù)完全相同设褐。在此旁邊,為了使代碼正常工作泣刹,需要關(guān)閉復(fù)制文件夾的所有文件助析。

4.2.6刪除文件夾

下一個(gè)功能可以刪除文件夾及其所有內(nèi)容(文件,只讀文件椅您,文件夾......)外冀。

RemoveFolder(path="pathname", allow_root=False, delete_read_only=True)

第一個(gè)參數(shù)應(yīng)該是需要?jiǎng)h除的文件夾的路徑。安全變量“allow_root”確保第一個(gè)參數(shù)超過10個(gè)字符掀泳。此安全性阻止輸入例如“\”作為導(dǎo)致刪除根及其所有子目錄的路徑雪隧。要關(guān)閉此安全性,請(qǐng)將allow_root明確設(shè)置為True员舵。第三個(gè)參數(shù)使得可以確保該函數(shù)在包含只讀文件時(shí)不刪除該文件夾脑沿。當(dāng)“delete_read_only”顯式設(shè)置為False時(shí),該函數(shù)不會(huì)刪除具有只讀文件的文件夾马僻。代碼最佳工作的最終要求是需要關(guān)閉文件夾中的所有文件庄拇。下一個(gè)示例說明了該函數(shù)的用法。下一行代碼將C:\ Users \ Bob \ Desktop \ Automagica文件夾刪除為路徑韭邓。此外措近,只讀文件將被刪除,因?yàn)樽兞縟elete_read_only為True女淑,除非另有明確輸入瞭郑。最后請(qǐng)注意,如果路徑長度小于10個(gè)字符鸭你,代碼將不會(huì)執(zhí)行任何操作屈张。

RemoveFolder("C:\Users\Bob\Desktop\Automagica")

以下示例刪除給定路徑上的文件夾我抠,除非它包含只讀文件。安全變量保持為False袜茧,因此路徑應(yīng)超過10個(gè)字符菜拓。

RemoveFolder("C:\Users\Bob\Desktop\Automagica", delete_read_only=False)

4.2.7清空文件夾

可以使用以下功能刪除文件夾的內(nèi)容:

EmptyFolder(path="pathname", allow_root=False)

第一個(gè)參數(shù)再次指定需要清空的文件夾的路徑。allow_root安全變量具有與刪除文件夾的功能相同的功能笛厦。以下代碼行給出了如何清空具有路徑C:\ Users \ Bob \ Desktop \ Automagica的文件夾的示例:

"EmptyFolder("C:\Users\Bob\Desktop\Automagica")

要使該功能起作用纳鼎,請(qǐng)務(wù)必關(guān)閉該文件夾包含的所有文件。

4.2.8檢查文件夾是否存在

下一個(gè)函數(shù)可以檢查指定的路徑是否存在裳凸。

FolderExists(path="pathname")

如果輸入的路徑不存在贱鄙,則該函數(shù)將返回False。如果確實(shí)存在姨谷,則返回True逗宁。例如,下一個(gè)片段檢查路徑為C:\ Users \ Bob \ Desktop \ Automagica的文件夾是否存在:

FolderExists("C:\Users\Bob\Desktop\Automagica")

4.2.9ZIP文件夾

以下函數(shù)可用于創(chuàng)建現(xiàn)有目錄的壓縮文件夾:

ZipFolder(folder_path="pathname_folder", new_path="pathname_compressed_folder")

第一個(gè)參數(shù)是需要壓縮的目錄的路徑名梦湘。第二個(gè)參數(shù)指定帶有路徑名的壓縮文件夾的位置和名稱瞎颗。例如,以下函數(shù)使用路徑名“C:\ Users \ Bob \ Desktop \ Automagica”來壓縮目錄捌议。壓縮目錄由第二個(gè)參數(shù)指定哼拔。

ZipFolder("C:\Users\Bob\Desktop\Automagica","C:\Users\Bob\Downloads\Automagica")

請(qǐng)注意,因?yàn)槿绻呀?jīng)存在一個(gè)帶有new_path作為路徑名的壓縮目錄瓣颅,它將被覆蓋倦逐。

4.2.10解壓縮文件夾

與ZipFolder功能相反的是:

UnZipFolder(path="pathname_zipped_folder", new_path="pathname_target_location")

第一個(gè)參數(shù)是需要解壓縮的壓縮文件夾的路徑名。第二個(gè)參數(shù)是可選的宫补。它是將存儲(chǔ)解壓縮文件夾的目錄的路徑檬姥。如果省略,則解壓縮的文件夾將存儲(chǔ)在與原始?jí)嚎s文件夾相同的位置粉怕。

4.2.11等待文件夾

以下功能等待健民,直到創(chuàng)建具有輸入路徑的文件夾。

WaitForFolder(path="pathname")

6.圖像操作

Automagica可以通過多種方式操作圖像斋荞≤癯可用功能如下所列。

OpenImage(path="pathname")

顯示默認(rèn)映像程序上路徑變量指定的映像平酿。

RotateImage(path="pathname", angle)

在指定角度上旋轉(zhuǎn)圖像凤优。例如,輸入“C:\ Users \ Pictures \ Automagica.jpg”作為路徑蜈彼,角度為90筑辨,將圖片與給定路徑旋轉(zhuǎn)90度。請(qǐng)注意幸逆,因?yàn)?0,180,270,360以外的角度可能會(huì)使圖像變形棍辕。

ResizeImage(path="pathname", size=(1024, 768))

調(diào)整path變量指定的圖像大小暮现。大小由第二個(gè)參數(shù)指定。這是一個(gè)以像素為單位的寬度和高度的元組楚昭。例如ResizeImage(“C:\ Users \ Pictures \ Automagica.jpg”栖袋,(300,400))給出的圖像寬度為300像素,高度為400像素抚太。

ImageSize(path="pathname")

返回路徑指定的圖像的大刑练(以像素為單位)。大小在以下形式的消息框中返回:“(高度尿贫,寬度)

CropImage(path="pathname",box=None)

將路徑指定的圖像裁剪為由box變量確定的區(qū)域电媳。這個(gè)變量是一個(gè)4元組,它定義左庆亡,上匾乓,右和下像素co?rdinate,例如:(左又谋,上拼缝,右,下)搂根。

ImageFormat(path="pathname")

返回由輸入路徑指定的圖像的格式珍促。例如,輸入“C:\ Users \ Pictures \ Automagica.jpg”會(huì)返回一個(gè)表示JPEG的消息框剩愧。

MirrorImageHorizontally(path="pathname")

使用給定路徑從左到右鏡像圖像。

MirrorImageVertically(path="pathname")

使用從上到下的給定路徑鏡像圖像娇斩。

7.電郵操作

Automagica可以發(fā)送包含您的Hotmail仁卷,Gmail或Yahoo郵箱地址的電子郵件。三個(gè)功能的輸入以相同的方式工作犬第。第一個(gè)和第二個(gè)參數(shù)分別是您的電子郵件地址和用戶密碼锦积。目標(biāo)變量是您要聯(lián)系的電子郵件地址。主題和消息變量分別包含主題和文本消息歉嗓。端口變量是標(biāo)準(zhǔn)587.在大多數(shù)情況下丰介,此參數(shù)可以忽略,但在某些情況下需要更改為465.使用Gmail帳戶時(shí)鉴分,有一個(gè)例外哮幢。谷歌有一項(xiàng)安全功能可以阻止不安全的應(yīng)用程序。要使此功能正常運(yùn)行志珍,需要關(guān)閉此功能橙垢,可以通過以下鏈接完成:https://myaccount.google.com/lesssecureapps。

SendMailWithHotmail(user="user@hotmail.com", password, destination, subject="", message="", port=587) SendMailWithGmail(user="user@gmail.com", password, destination, subject="", message="", port=587) SendMailWithYahoo(user="user@yahoo.com", password, destination, subject="", message="", port=587)

8.基本操作

1.變量和類型

1.1字符串

字符串是任何有限的字符序列(即字母伦糯,數(shù)字柜某,符號(hào)和標(biāo)點(diǎn)符號(hào))嗽元。字符串用單引號(hào)或雙引號(hào)定義。

automagica_string = "robots" DisplayMessageBox(automagica_string)

1.2字符串操作

將變量添加到字符串

您可以將所有變量添加到字符串中喂击。例如剂癌,如果要將字符串添加到字符串,可以通過將整數(shù)定義為字符串來實(shí)現(xiàn):

automagica_string = "robot number " automagica_integer = 100 automagica_string2 = automagica_string + int(100) DisplayMessageBox(automagica_string2)

1.3切片串

將[n]添加到字符串將選擇第n個(gè)字符:

x = "automagica" x[2] >>> t

添加[n:p]會(huì)將字符串從字符n切片到p翰绊。通過留下n或p out珍手,它將分別選擇第一個(gè)和最后一個(gè)字符:

x = "Hello Robot!" x[:5] >>> Hello

1.4字符串替換

x = "Robots are evil!" x.replace('evil', 'friendly') >>>Robots are friendly!

1.5字符串中的大小寫

x = "Robots" #Convert to upper case x.upper() #Convert to lower case x.lower() #Capitalize x.capitalize()

1.6拆分字符串

您可以選擇將字符串拆分為某個(gè)單詞或字符。不要忘記通過添加[0]或[1]來指示是否要保留字符串的第一部分或第二部分辞做,因?yàn)椴鸱謺?huì)導(dǎo)致字符串變?yōu)槎鄠€(gè)字符串的列表:

x = "Robots will take over the world!" x.split(" over ") >>>['Robots will take', 'the world!'] #Accesing the different strings can be done by: x[0] >>>Robots will take x[1] >>>the world!"

2.數(shù)字

2.1整型

整數(shù)(簡稱為int)是一個(gè)整數(shù)琳要,而不是一個(gè)小數(shù),可以是正數(shù)秤茅,負(fù)數(shù)或零稚补。

聲明并顯示整數(shù):

automagica_integer = 5 DisplayMessageBox(automagica_integer)

你可以用整數(shù)做基本的數(shù)學(xué)運(yùn)算:

automagica_int1 = 5 automagica_int2 = 10 automagica_int3 = automagica_int1 + automagica_int2 = 15 DisplayMessageBox(automagica_int3)

2.2浮點(diǎn)數(shù)

浮點(diǎn)數(shù)代表實(shí)數(shù),用小數(shù)點(diǎn)寫成整數(shù)和小數(shù)部分框喳。

automagica_float = 3.1 DisplayMessageBox(automagica_float)

3.數(shù)學(xué)運(yùn)算

這里是一個(gè)包含基本數(shù)學(xué)運(yùn)算的列表课幕,可以與整數(shù)和浮點(diǎn)數(shù)一起使用。在使用它們之前五垮,需要導(dǎo)入數(shù)學(xué)模塊:

from math import *

abs(x):x的絕對(duì)值(x和零之間的(正)距離)

x = -3 abs(x) >>> 3

ceil(x):x的上限(不小于x的最小整數(shù))

x = 4.1 ceil(x) >>> 5

exp(x):x:e x的指數(shù)

x = 3 exp(x) >>> 20.085536923187668

floor(x):x的底限:不大于x的最大整數(shù)

x = 4.1 floor(x) >>> 4

log(x):x的自然對(duì)數(shù)乍惊,x> 0

x = 10 log(x) >>> 2.302585092994046

max(x1,x2放仗,...)和max(x1润绎,x2,...):其參數(shù)的最小和最大值:最接近正無窮大的值

x1 = 2 x2 = 3 max(x1,x2) >>> 3

round(x):x從小數(shù)點(diǎn)四舍五入到n位數(shù)诞挨。

x = 0.5555 round(x, 2) >>> 0.56

sqrt(x):x的平方根莉撇,x> 0

x = 9 sqrt(9) >>> 3

4.列表

列表與數(shù)組非常相似。它們可以包含任何類型的變量惶傻,并且它們可以包含任意數(shù)量的變量棍郎。列表也可以以非常簡單的方式迭代。這里有一些列表用法示例:

list = ["R2-D2", "Terminator", "Optimus Prime","WALL-E", "RoboCop"] list.append("WALL-E") list.append("RoboCop") >>>["R2-D2", "Terminator", "Optimus Prime","WALL-E", "RoboCop"] list[0] >>>R2-D2

5.邏輯運(yùn)算

5.1 if

一個(gè)if語句用于決策银室。只有當(dāng)if語句為true時(shí)涂佃,它才會(huì)運(yùn)行代碼體。必須有條件的代碼塊蜈敢。

if condition:indentedStatementBlock

一個(gè)例子是:

temperature = RequestUserInput() if temperature > 20: DisplayMessageBox("Wear short pants!")

將此示例擴(kuò)展為多個(gè)if語句:

temperature = RequestUserInput() if temperature < 10: DisplayMessageBox("Wear a warm hat!") if temperature > 20: DisplayMessageBox("Wear short pants!") else: DisplayMessageBox("You can wear normal clothes!")

上一個(gè)例子將會(huì)刪除字符串“戴上一頂溫暖的帽子辜荠!” 如果輸入數(shù)字低于10.如果數(shù)字高于20,輸出將是穿短褲扶认!侨拦。如果仍未滿足條件,這意味著輸入數(shù)字介于10和20之間辐宾,則會(huì)激活else語句狱从。在這種情況下膨蛮,消息將顯示“你可以穿正常的衣服!” 季研。

5.2 for

while循環(huán)評(píng)估測試表達(dá)式敞葛。

如果測試表達(dá)式為真(非零),則while循環(huán)體內(nèi)的代碼將被激活与涡。再次評(píng)估測試表達(dá)式惹谐。該過程一直持續(xù)到測試表達(dá)式為假。

當(dāng)測試表達(dá)式為false時(shí)驼卖,while循環(huán)終止氨肌。

for.png

while循環(huán)的一個(gè)例子:

automagica_count = 0 while (automagica_count < 3): display_string = "Current count is: " + str(automagica_count) DisplayMessageBox(display_string) count = count + 1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市酌畜,隨后出現(xiàn)的幾起案子怎囚,更是在濱河造成了極大的恐慌,老刑警劉巖桥胞,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恳守,死亡現(xiàn)場離奇詭異,居然都是意外死亡贩虾,警方通過查閱死者的電腦和手機(jī)催烘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缎罢,“玉大人伊群,你說我怎么就攤上這事∑ㄊ梗” “怎么了在岂?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛮寂。 經(jīng)常有香客問我,道長易茬,這世上最難降的妖魔是什么酬蹋? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮抽莱,結(jié)果婚禮上范抓,老公的妹妹穿的比我還像新娘。我一直安慰自己食铐,他們只是感情好匕垫,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虐呻,像睡著了一般象泵。 火紅的嫁衣襯著肌膚如雪寞秃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天偶惠,我揣著相機(jī)與錄音春寿,去河邊找鬼。 笑死忽孽,一個(gè)胖子當(dāng)著我的面吹牛绑改,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播兄一,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼厘线,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了出革?” 一聲冷哼從身側(cè)響起造壮,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹋盆,沒想到半個(gè)月后费薄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栖雾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年楞抡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片析藕。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡召廷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出账胧,到底是詐尸還是另有隱情竞慢,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布治泥,位于F島的核電站筹煮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏居夹。R本人自食惡果不足惜败潦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望准脂。 院中可真熱鬧劫扒,春花似錦、人聲如沸狸膏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贤旷,卻和暖如春广料,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背遮晚。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工性昭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人县遣。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓糜颠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萧求。 傳聞我的和親對(duì)象是個(gè)殘疾皇子其兴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 2,732評(píng)論 0 8
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,367評(píng)論 0 5
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,095評(píng)論 0 3
  • 個(gè)人學(xué)習(xí)批處理的初衷來源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求夸政,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,685評(píng)論 0 11
  • 今天閑來無事元旬,看了電影《后來的我們》,可能因?yàn)槭侵澜Y(jié)果守问,所以開始看的時(shí)候匀归,心中莫名的就有一種忐忑。 看完了耗帕,淚流...
    萬花筒里看世界閱讀 322評(píng)論 0 0