官术网_书友最值得收藏!

第1章 簡(jiǎn)介

本書的目的是帶你入門,讓你能夠運(yùn)用PsychoPy軟件包編寫和運(yùn)行實(shí)驗(yàn)。無論你是學(xué)生、老師還是研究人員,我們都希望本書能為你提供一定幫助。雖然有些人認(rèn)為計(jì)算機(jī)技術(shù)在某種意義上很具挑戰(zhàn)性,但我們希望通過本書讓你相信,即使你并不擅長(zhǎng)計(jì)算機(jī),也可以利用PsychoPy編寫實(shí)驗(yàn);即使你討厭計(jì)算機(jī),甚至無法理解計(jì)算機(jī)的某些高級(jí)功能,你也可以完成大多數(shù)標(biāo)準(zhǔn)的實(shí)驗(yàn)設(shè)計(jì)。

對(duì)于那些擅長(zhǎng)計(jì)算機(jī)的人,我們希望本書能為你提供PsychoPy的一些高級(jí)用法,讓你相信,PsychoPy能用簡(jiǎn)單的方式完成無聊的事情(例如,存儲(chǔ)數(shù)據(jù)、追蹤隨機(jī)化內(nèi)容等),與此同時(shí)還能實(shí)現(xiàn)一些簡(jiǎn)潔的效果(例如,用網(wǎng)絡(luò)攝像頭直播或呈現(xiàn)一個(gè)“跳動(dòng)的心臟”之類的刺激[1])。

為滿足廣大讀者的需要,我們這本書分為3部分。

第一部分(第1~9章)旨在介紹在設(shè)計(jì)行為科學(xué)實(shí)驗(yàn)時(shí)可能需要用到的基本技巧(以及一些高級(jí)技巧)。每一章都會(huì)通過一系列實(shí)驗(yàn)引入一些新的概念,你可以以此為基礎(chǔ)進(jìn)行更深入的研究。例如,我們將通過編寫探究面孔倒置效應(yīng)的實(shí)驗(yàn)來教你如何呈現(xiàn)和操作圖片。

第二部分(第10~15章)涵蓋了更多實(shí)驗(yàn)編寫和運(yùn)行的原理知識(shí)。如果你是一名科學(xué)家,并且想將PsychoPy運(yùn)用在發(fā)表的研究成果中,那么該部分非常重要。對(duì)于任何領(lǐng)域內(nèi)的科學(xué)專家來說,都推薦閱讀該部分。

第三部分(第16~19章)涵蓋了特別的專題研究。該部分只有一些人會(huì)用到,比如只有那些做f MRI研究或?qū)W習(xí)視覺感知的人,才會(huì)用到f MRI的內(nèi)容。讀者可以根據(jù)自身情況選讀該部分。

1.1 編寫實(shí)驗(yàn)

早期,心理學(xué)家還需要工程人員的幫助才能完成實(shí)驗(yàn)。教授還會(huì)深入車間并讓工程人員制作一些能使光線以非常精確的頻率閃爍的電子箱設(shè)備,或者從專業(yè)公司購買速示器(一種可以像照相機(jī)快門那樣快速并在短時(shí)間內(nèi)呈現(xiàn)視覺刺激的設(shè)備),然后在每次實(shí)驗(yàn)中安排博士生不停更換快門后面所呈現(xiàn)的刺激(如照片)。

后來,計(jì)算機(jī)出現(xiàn)了,許多之前用來做實(shí)驗(yàn)的硬件和電子方式因此過時(shí)了。大多數(shù)研究部門關(guān)閉了硬件制造車間。取而代之的是程序員,他們能按照需求操作計(jì)算機(jī)。教授每次想做一個(gè)實(shí)驗(yàn),程序員就為這個(gè)實(shí)驗(yàn)寫一個(gè)程序;不過當(dāng)實(shí)驗(yàn)有了變化時(shí),教授只能請(qǐng)程序員回來做必要的修改。

隨著時(shí)間的推移,實(shí)驗(yàn)所用的編程語言也逐漸變得易于使用(先是C語言取代了匯編語言,現(xiàn)在C語言也逐漸被解釋型的腳本語言所取代,例如Python、MATLAB和Java[2])。這些改變讓那些有技術(shù)頭腦的人,即使非計(jì)算機(jī)科學(xué)出身,也能夠編寫實(shí)驗(yàn)。

最近,一些軟件包讓你即使沒有進(jìn)行“編程”,或者說,至少不是傳統(tǒng)意義上寫代碼的那種編程,也可以進(jìn)行許多實(shí)驗(yàn)。現(xiàn)在,即使你不懂編程,也可以獨(dú)立進(jìn)行研究,盡管你會(huì)覺得這個(gè)說法匪夷所思。本書展示了如何利用PsychoPy(眾多便利選擇中的一種),來進(jìn)行基礎(chǔ)實(shí)驗(yàn)。對(duì)于那些需要進(jìn)行高級(jí)實(shí)驗(yàn)的人,本書也會(huì)展示如何使用簡(jiǎn)單的編程來擴(kuò)展這些圖形化的實(shí)驗(yàn)。或許你會(huì)發(fā)現(xiàn),編程并不像想象中那么難,你也許可以從中得到些許滿足(后面會(huì)介紹相關(guān)內(nèi)容)。

雖然本書會(huì)教你如何自己編寫實(shí)驗(yàn),但這并不意味著你完全不需要程序員和技術(shù)支持人員。如果你身邊有擅長(zhǎng)技術(shù)、擅長(zhǎng)編程的人,這會(huì)對(duì)你很有幫助,尤其是在你的程序出現(xiàn)錯(cuò)誤或者你想做一些更高級(jí)的實(shí)驗(yàn)時(shí),他們能給予你及時(shí)的援助。身邊有人懂這些技術(shù)總是好的。當(dāng)然,如果你把力所能及的事情做好,只是讓他們做最后的微調(diào),他們也會(huì)感激不盡。

1.2 構(gòu)建與編程

在使用一些實(shí)驗(yàn)設(shè)計(jì)軟件(如Psychtoolbox和Presentation)編寫實(shí)驗(yàn)程序時(shí)需要寫很多行代碼。雖然它們的功能很強(qiáng)大,但是要求你懂編程;即使你懂編程,采用這些軟件編寫實(shí)驗(yàn)也非常耗時(shí),還經(jīng)常出錯(cuò)。

其他的軟件(如E-Prime、Psy Scope和Open Sesame)允許你用圖形用戶界面可視化地編寫實(shí)驗(yàn)。對(duì)于簡(jiǎn)單的實(shí)驗(yàn),這些工具一般很容易使用,但將其應(yīng)用在復(fù)雜的實(shí)驗(yàn)上就不太可能了。你只有創(chuàng)建相當(dāng)復(fù)雜的可視化圖形才能得到你想要的結(jié)果。但是這樣一來,你還不如學(xué)習(xí)編程。當(dāng)圖形化工具包不能幫助你編寫特定的實(shí)驗(yàn)或者不能處理某種“隨機(jī)但有少數(shù)例外”的刺激時(shí),你可能會(huì)感覺很惱火,但能滿足所有實(shí)驗(yàn)需求的圖形用戶界面太復(fù)雜,你又很難學(xué)會(huì)。

PsychoPy是我們?cè)诒緯幸恢碧峒暗能浖峁┝藘煞N用戶界面來編寫實(shí)驗(yàn):程序員可以使用Coder界面,而喜歡用圖形界面的人可以使用Builder界面。Coder界面將為比較有能力的程序員提供強(qiáng)大的靈活性和齊全的功能,讓他們完成他們喜歡的和具有任何可能的設(shè)計(jì),享受完美的用戶體驗(yàn)。與此相反,Builder界面則設(shè)計(jì)得非常簡(jiǎn)單,心理學(xué)的本科生(他們當(dāng)中很多人不喜歡編程)也可以在其中編寫和運(yùn)行自己的實(shí)驗(yàn)。這樣一來,用戶就可以用簡(jiǎn)單的方式編寫“標(biāo)準(zhǔn)”的實(shí)驗(yàn)。為了實(shí)現(xiàn)這個(gè)目標(biāo),我們?cè)O(shè)計(jì)了Builder界面,而事實(shí)上它也非常成功,它甚至能夠編寫比我們?cè)O(shè)想中更加復(fù)雜的實(shí)驗(yàn)。現(xiàn)在,許多大學(xué)將它用于本科教學(xué),同時(shí),許多經(jīng)驗(yàn)豐富的科學(xué)家,甚至那些完全可以自己編寫代碼的研究人員,也使用Builder界面運(yùn)行他們的大多數(shù)實(shí)驗(yàn)。雖然我們編寫了PsychoPy軟件包,這顯得我們好像是比較專業(yè)的程序員,但其實(shí)我們也用Builder界面進(jìn)行大多數(shù)的實(shí)驗(yàn),因?yàn)橛肂uilder界面能讓實(shí)驗(yàn)更快地運(yùn)行,而且沒有許多需要修復(fù)的漏洞。

當(dāng)Builder界面不能幫助你完成設(shè)想的實(shí)驗(yàn)時(shí),單擊“保存”按鈕后,你在Builder界面里面做的所有工作都不會(huì)丟失,你可以通過繼續(xù)添加代碼來進(jìn)行更高級(jí)的研究。也許你的硬盤不支持圖形界面,也許你需要特定的刺激序列,可能不是簡(jiǎn)單的“隨機(jī)”序列或“有序”序列,例如,刺激A在同一行不重復(fù)兩次的隨機(jī)序列。這些用圖形用戶界面很難辦到,但編寫代碼通常是可行的(第8章將涵蓋這些內(nèi)容)。

此外,許多用戶(包括我們)同時(shí)使用上述兩種方法:首先在Builder界面下編寫大部分實(shí)驗(yàn)程序(因?yàn)閱蝹€(gè)試次以及存儲(chǔ)數(shù)據(jù)通常來說比較簡(jiǎn)單),然后簡(jiǎn)單地通過添加代碼組件或進(jìn)入Coder界面來處理不容易用圖形用戶界面建構(gòu)的內(nèi)容(例如,隨機(jī)化的某些內(nèi)容)。

對(duì)于很多用戶來說,在PsychoPy中編寫代碼不僅提高了研究水平,還讓他們學(xué)習(xí)了Python編程的基礎(chǔ)知識(shí)。有一些人會(huì)發(fā)現(xiàn)編程并不是如他們一開始想象的“洪水猛獸”一般可怕(或者他們根本沒有意識(shí)到他們正在編程),甚至有一些人發(fā)現(xiàn)編程還挺有趣。和玩數(shù)獨(dú)一樣,編程旨在解決問題,而且編程的結(jié)果十分有用。總而言之,相對(duì)于Builder界面來說,Coder界面是更加通用的一種工具,通過代碼它不僅可以幫助你管理文件、自動(dòng)執(zhí)行任務(wù)、分析數(shù)據(jù),甚至將研究成果可視化,還可以幫助你自動(dòng)運(yùn)行實(shí)驗(yàn)。

雖然能夠編寫代碼非常好,但是在PsychoPy中編寫大多數(shù)實(shí)驗(yàn)最快、最不易出錯(cuò)的方式是也使用Builder界面。

1.3 開源軟件的優(yōu)缺點(diǎn)

開源軟件的興起對(duì)于很多人來說是一件不可思議的事。一個(gè)人可以不要報(bào)酬去編寫代碼再將它免費(fèi)地供他人使用,這種做法有點(diǎn)奇怪。人們也在懷疑這樣的軟件或許質(zhì)量低下,或許缺少特性(如果軟件精良,你就會(huì)選擇賣掉,對(duì)吧?)。其他人則猜測(cè)這只不過是一種策略,如果該軟件有足夠大的市場(chǎng),早晚都要開始收費(fèi)。以上這些想法并不都是正確的。舉個(gè)例子,可以看一看強(qiáng)大而專業(yè)的Mozilla組件(如雷鳥郵件客戶端和火狐瀏覽器)。Python編程語言、R統(tǒng)計(jì)軟件包和Linux操作系統(tǒng)是更好的例證:它們已經(jīng)被證明是漏洞很少、可持續(xù)使用且功能強(qiáng)大的產(chǎn)品,而且不會(huì)花費(fèi)你一分錢。

所以,這是怎么回事呢?他們?yōu)槭裁催@么做?通常來說,開源軟件是某些特定領(lǐng)域的發(fā)燒友所編寫的,他們覺得現(xiàn)有的軟件不能滿足他們的需求,所以便開始自己編寫軟件。換位思考,如果你僅僅是為了把產(chǎn)品做好(記住,你現(xiàn)在是發(fā)燒友)而不是從中賺錢,讓軟件變得更好的一個(gè)方法就是讓每個(gè)人都能看到代碼。這或許能激勵(lì)其他人參與其中并幫助修復(fù)漏洞以及給軟件增加新的特性。當(dāng)然,因?yàn)槟憬o了每個(gè)人源代碼,這也就意味著你無法售賣它,不過如果你不是為了錢,這就無所謂了。上述就是許多開源產(chǎn)品研發(fā)的根本動(dòng)力。

傳統(tǒng)的軟件是公司收取軟件費(fèi)用,并招聘專業(yè)程序員編寫代碼,不過這兩者有何區(qū)別呢?事實(shí)上,開源軟件確實(shí)愛出毛病,而且因?yàn)樗_源免費(fèi),所以程序員沒有義務(wù)修復(fù)你關(guān)心的那些漏洞。他們希望軟件變得更好,但他們的時(shí)間有限。而商業(yè)軟件公司不希望發(fā)布的軟件有漏洞,也擔(dān)心被投訴,因此他們會(huì)事先投入大量時(shí)間做測(cè)試。開源軟件的另一個(gè)潛在缺點(diǎn)是許多開源項(xiàng)目很快就無疾而終了,只剩下幾個(gè)忠實(shí)的支持者。許多程序員開始了一個(gè)項(xiàng)目,然后覺得沒意思就不做了。你肯定不想花時(shí)間學(xué)習(xí)幾年后就消失的軟件吧。以上這些就是目前開源項(xiàng)目的最大問題。不過,隨著用戶日漸增多,貢獻(xiàn)者的數(shù)量也會(huì)增長(zhǎng),這意味著有更多的人參與到修復(fù)漏洞和增加新特性的工作中來,于是這個(gè)項(xiàng)目就不太可能爛尾了。

開源項(xiàng)目成功發(fā)布后會(huì)變得非常引人注目。這些發(fā)燒友免費(fèi)為你編寫軟件。另外,他們也使用這些軟件。在實(shí)驗(yàn)設(shè)計(jì)領(lǐng)域中,這意味著那些真正自己做實(shí)驗(yàn)的人在編寫運(yùn)行實(shí)驗(yàn)的軟件,他們能了解其他學(xué)者的想法及其想要的是什么。

最后一個(gè)優(yōu)點(diǎn)是,你能接觸到所有代碼。如果軟件未能按照你的想法運(yùn)行,你可以自己修改軟件;如果你是一位喜歡什么都探究清楚的科學(xué)家,你也可以查看代碼,探究一下。“開放”的科學(xué)家喜歡搞清楚他們手上到底是什么東西。

1.4 了解你的計(jì)算機(jī)

一些人對(duì)計(jì)算機(jī)的了解非常淺顯。但如果你在乎研究的準(zhǔn)確性,那么你在做實(shí)驗(yàn)時(shí),對(duì)計(jì)算機(jī)有適當(dāng)?shù)牧私馐鞘种匾摹:芏鄷r(shí)候,實(shí)驗(yàn)結(jié)果不準(zhǔn)確不是因?yàn)檐浖膯栴},而是因?yàn)橛脩粽娴牟涣私馑麄兊挠?jì)算機(jī)。通過下面3個(gè)例子,我們可以了解導(dǎo)致實(shí)驗(yàn)結(jié)果不準(zhǔn)確的常見誤區(qū)。

計(jì)算機(jī)屏幕以精確且固定的頻率刷新。通常,計(jì)算機(jī)屏幕以60Hz的頻率刷新,而你只能在屏幕刷新期間更新你的刺激(例如,讓它出現(xiàn)或消失)。這就意味著,刺激出現(xiàn)或消失的持續(xù)時(shí)間只能是某個(gè)特定值,我們一般把這些更新周期稱為幀(Frame)。例如,你可以讓刺激出現(xiàn)200ms(0.2s),因?yàn)樵谄聊凰⑿骂l率為60Hz時(shí)0.2s正好對(duì)應(yīng)12幀(0.2×60 = 12);你也可以讓刺激出現(xiàn)250ms,也就是15幀(0.25×60 = 15)。然而,220ms并不是一個(gè)有效時(shí)長(zhǎng),因?yàn)檫@意味著你的刺激會(huì)占用13.2幀,這根本不可能實(shí)現(xiàn)。所以關(guān)于屏幕,還有更多值得你了解的事情。例如,計(jì)算機(jī)從屏幕頂端掃描到底端大約需要10ms,因此屏幕頂端的刺激總是比屏幕底端的刺激早出現(xiàn)10ms。

鍵盤的延時(shí)嚴(yán)重。雖然軟件包可以提供亞毫秒級(jí)的時(shí)間精度,但你通常無法獲得那種精度的實(shí)驗(yàn)數(shù)據(jù),因?yàn)橛?jì)算機(jī)鍵盤在檢測(cè)按鍵按下時(shí)大約有30ms的延時(shí)和15ms的誤差。參照計(jì)算機(jī)上精確的時(shí)鐘,軟件包也許確實(shí)可以提供“亞毫秒級(jí)”的時(shí)間精度,但如果這個(gè)方法不適用于每種情況,亞毫秒級(jí)又有什么用呢(因?yàn)闆]有軟件能夠適用于所有情況)?

延伸閱讀:PsychoPy的起源

PsychoPy項(xiàng)目最初叫Psych Py,最早于2002年3月在sourceforge網(wǎng)站上注冊(cè),字母“o”是后添加的。它最初由喬納森·皮爾斯(Jonathan Peirce)編寫,從原理上論證了Python利用圖形硬件加速(Open GL)程序可以作為傳遞實(shí)時(shí)刺激的有力工具。2003年,喬納森開始在諾丁漢大學(xué)講授心理學(xué)課程,決定進(jìn)一步研發(fā)該項(xiàng)目并在實(shí)驗(yàn)室內(nèi)進(jìn)行實(shí)驗(yàn)。那個(gè)時(shí)候,在項(xiàng)目中用Python寫的庫函數(shù)僅僅是為了方便編程。

從2004年開始,喬納森實(shí)驗(yàn)室里的所有實(shí)驗(yàn)都使用PsychoPy來運(yùn)行。由于他本人及其博士生的需求,PsychoPy的功能迅速增加。然而,由于PsychoPy是為喬納森的實(shí)驗(yàn)研發(fā)的,因此它對(duì)其他用戶的支持很少。即,如果你覺得它有用,那很好;如果覺得沒用,那就不要使用。漸漸地,人們開始思考:“我喜歡你們寫的庫,但是我想是不是可以……”。喬納森樂于革新,而且人們要求的有些功能聽上去很有趣,所以他就把它們一點(diǎn)一點(diǎn)地加上。

幾年之后,喬納森添加了一個(gè)獨(dú)立的“應(yīng)用”(application),而不僅是一個(gè)庫。該應(yīng)用包含一個(gè)代碼編輯器,上面有一個(gè)綠色的“運(yùn)行”按鈕用于運(yùn)行腳本。由于該應(yīng)用很容易安裝和試用,很多用戶開始試用它。2007年,喬納森撰寫了第一篇描述該軟件包的論文。到2009年,又有幾百名熱愛編程的人愿意修復(fù)PsychoPy的漏洞。逐漸地,這些用戶[值得提及的是杰里米·格雷(Jeremy Gray)和邁克爾·麥卡斯基爾]開始著手修復(fù)漏洞、增加新的特性,并在用戶論壇上互相幫助,共同優(yōu)化軟件包。

同時(shí),喬納森在本科教學(xué)中不愿教授學(xué)生如何使用E-Prime,并開始思考下一個(gè)大動(dòng)作,即編寫一個(gè)圖形用戶界面,以便學(xué)生能充分理解他的課程。他認(rèn)為圖形用戶界面本質(zhì)上是用來寫Python腳本的。Builder界面在2010年已經(jīng)基本可以使用,從2011年開始也應(yīng)用于許多本科實(shí)驗(yàn)課堂。

隨著Builder界面中新功能的增多,用戶數(shù)量以及軟件優(yōu)化與維護(hù)的貢獻(xiàn)者數(shù)量也急劇增長(zhǎng)。在寫本書時(shí)(2017年),該軟件包已經(jīng)擁有超過16000名用戶(每個(gè)月通過IP地址來統(tǒng)計(jì))和超過70名貢獻(xiàn)者了(貢獻(xiàn)程度不同)。

總而言之,PsychoPy開始沒有如此龐大,它只是在不斷地成長(zhǎng)。看到這樣一個(gè)有愛的社區(qū)伴隨著PsychoPy成長(zhǎng),且我們能參與其中,我們感覺非常高興和自豪。

從磁盤中加載圖片不是瞬時(shí)的。如果你有一部500萬像素的相機(jī)(按照現(xiàn)代標(biāo)準(zhǔn),分辨率不算高),每個(gè)像素都用R.G.B值表示(事實(shí)上,還有一個(gè)alpha通道),那就意味著有1500萬個(gè)數(shù)字需要從磁盤中加載、處理并發(fā)送到你的顯卡上。雖然如今的計(jì)算機(jī)可以非常迅速地處理和移動(dòng)數(shù)據(jù),但并不能保證馬上做到,總是會(huì)有一些延遲,尤其是在你從磁盤中加載數(shù)據(jù)的時(shí)候。

上面的問題都有解決方案,且這些解決方案在大多數(shù)情況下有效:你可以在多幀的間隔中呈現(xiàn)刺激,也可以購買更精確計(jì)時(shí)的儀器設(shè)備(盡管在大多數(shù)情況下,你并不需要你所認(rèn)為的那種精確度),圖片也可以預(yù)先加載,甚至比你想象中的更小而不損壞畫質(zhì)。重要的是,你需要了解這些問題,從而明白如何避免。

1.5 PsychoPy

PsychoPy是多個(gè)事物的集合。正如前面的“PsychoPy的起源”部分所解釋的,以下部分逐步發(fā)展又相對(duì)獨(dú)立。

●Python編程語言庫(library)。

●Python編程語言的一個(gè)發(fā)行版(Python和其他依賴庫各有獨(dú)立的安裝包,因此你沒必要自己另外下載Python,而且先前安裝的Python也不會(huì)受到影響)。

●代碼編輯器(叫作“Coder界面”),它也是用Python編程語言寫的。

●圖形用戶界面(叫作“Builder界面”),即,可視化的實(shí)驗(yàn)編寫界面,它也可以將實(shí)驗(yàn)的可視化的內(nèi)容轉(zhuǎn)換成代碼。

如上所示,“Python編程語言”的字樣出現(xiàn)很多次。這里為不了解Python的人解釋一下:Python是一種普適、高級(jí)的解釋型腳本語言。簡(jiǎn)單來說,“普適”意味著Python可以在很多平臺(tái)運(yùn)行,mac OS和大多數(shù)Linux發(fā)行版把它作為操作系統(tǒng)的一部分,因?yàn)樗娴姆浅:糜谩!案呒?jí)”意味著你可以用簡(jiǎn)單的幾行代碼完成很多事情。與其他一些語言對(duì)比,這些代碼可能非常易于閱讀(當(dāng)然,也取決于誰來寫代碼)。“解釋型”意味著在你寫完代碼時(shí),你不用將代碼“編譯”為“機(jī)器代碼”,而且它還可以在多種計(jì)算機(jī)上運(yùn)行。如果你曾經(jīng)編譯過C語言代碼,或曾經(jīng)嘗試在不同的計(jì)算機(jī)平臺(tái)上以相同的方式運(yùn)行C語言代碼,那么你會(huì)深刻體會(huì)到Python的簡(jiǎn)便性。

Python本身并不能為PsychoPy提供很多內(nèi)容,但發(fā)燒友們?yōu)镻ython寫了很多庫。這樣,PsychoPy的開發(fā)人員不需要自己編寫代碼。例如,要加載圖像,可以使用Python圖像處理庫(PIL/Pillow,這由一些圖像處理方面的發(fā)燒友編寫);要操作圖像,可以使用Python數(shù)值計(jì)算庫(numpy,這由負(fù)責(zé)許多數(shù)據(jù)處理的人編寫)。所有這些庫都由所屬領(lǐng)域的發(fā)燒友所寫,并且免費(fèi)開放。因此,PsychoPy在某種程度上是將這些不同的庫編織起來的一個(gè)集成應(yīng)用。這樣一來,用戶就不需要十分了解每一個(gè)庫的編寫了。

1.6 開始操作

為了能充分使用本書,你需要在計(jì)算機(jī)上安裝PsychoPy軟件。在PsychoPy網(wǎng)頁上的右邊有一個(gè)Download鏈接。但當(dāng)你打開頁面時(shí),你會(huì)發(fā)現(xiàn)一系列不同選項(xiàng),大多數(shù)初學(xué)者應(yīng)該選擇標(biāo)記為“Standalone PsychoPy______”的鏈接。在寫本書時(shí),PsychoPy當(dāng)前的版本是1.85,但是我們推薦你使用最新版本[3]

當(dāng)你開始運(yùn)行PsychoPy的時(shí)候,你會(huì)發(fā)現(xiàn)它是通過“Start Up Wizard”打開的,它會(huì)檢查你的系統(tǒng),看看計(jì)算機(jī)怎么樣,你也可以跳過此步。

之后你可能會(huì)看到兩個(gè)界面,即Builder和Coder。Builder界面將會(huì)是本書的重點(diǎn),而Coder界面在我們需要查看某些Python代碼時(shí)(我們必須這樣做,代碼其實(shí)并沒有那么難)會(huì)偶爾出現(xiàn)。

1.7 更進(jìn)一步

在讀完本書后,如果你還有很多疑問,你可以在PsychoPy的用戶論壇上找到很多信息,或者直接用搜索引擎搜索問題或錯(cuò)誤消息,看看搜索引擎上有沒有答案。實(shí)際上你會(huì)驚喜地發(fā)現(xiàn),網(wǎng)上經(jīng)常有答案[4]

在論壇里,請(qǐng)盡量相互理解。大多數(shù)回答問題的人只不過是熱心的志愿者,他們?cè)诠ぷ髦鈦砘卮饐栴},因此讓他們幫你完成整個(gè)項(xiàng)目是不合適的。如果需要了解計(jì)算機(jī)的基本知識(shí)(例如,如何安裝軟件),你也許應(yīng)該和身邊的技術(shù)人員探討而不是利用論壇。如果問題過于寬泛,你也許應(yīng)該和身邊的同學(xué)與老師進(jìn)行探討。當(dāng)然,如果你知道其他人所問問題的答案,你也可以直接回答。

對(duì)于具體的問題來說,用戶論壇是一個(gè)獲取信息的絕佳地方。

解決方案:更新PsychoPy

獨(dú)立安裝包提供了Python發(fā)行版以及PsychoPy運(yùn)行所需的所有依賴庫,以及PsychoPy應(yīng)用程序和庫本身的代碼。(我們希望你讀懂了這句話,否則你可能需要再讀一遍。)現(xiàn)在,如果你想更新至PsychoPy的最新版本——具備更少漏洞(我們希望是這樣)和更多功能(大概是這樣),你不需要下載或者安裝整個(gè)獨(dú)立軟件包(大概有幾百兆字節(jié)),通常你可以讓PsychoPy自動(dòng)更新到最新版本或者從菜單欄中選擇Tools→Update并在彈出的同一個(gè)Update對(duì)話框里下載標(biāo)記為“PsychoPy-_.__._.zip”的文件之一以安裝特定版本。

你可能需要以管理員身份運(yùn)行這一應(yīng)用才能進(jìn)行更新。在Windows操作系統(tǒng)里,在桌面上右擊PsychoPy圖標(biāo),選擇“以管理員身份運(yùn)行”。

解決方案:使用論壇

如果你在PsychoPy用戶論壇上發(fā)布信息、尋求幫助,請(qǐng)說明清楚下面這些信息:

●你在使用Builder界面還是Coder界面工作;

● 你想要做什么;

● 軟件在運(yùn)行失敗時(shí)的狀態(tài)(單純說明“它運(yùn)行失敗”沒有任何幫助);

●你使用的操作系統(tǒng)及PsychoPy的版本。

1.8 本書的體例

本書正文中大部分的字體是宋體或新羅馬體,但是一些需要在PsychoPy界面中輸入的代碼采用了代碼體,如event.get Keys()。專業(yè)術(shù)語用楷體表示,而PsychoPy中的專業(yè)術(shù)語首字母大寫[5],如“Routine”和“Flow”。

PsychoPy在Windows、mac OS、Linux系統(tǒng)上均可運(yùn)行。然而,不同操作系統(tǒng)中的快捷鍵可能略有區(qū)別。我們一般描述的是Windows操作系統(tǒng)中的快捷鍵(例如,Ctrl-L表示切換視圖),在mac OS系統(tǒng)上等同于Cmd(?)鍵[6]。當(dāng)涉及按鍵時(shí),可能會(huì)提到Return鍵。許多人把Return鍵稱為Enter鍵,但嚴(yán)格來說,Enter鍵與Return鍵指的是不同的鍵,它通常在數(shù)字小鍵盤上方。Return鍵有一個(gè)先向下再向左指的箭頭,這個(gè)詞來源于“回車”,可追溯到打字機(jī)時(shí)代,在那時(shí)你需要將打字機(jī)的“字車”推回到一行開始的位置。

除了這些排版上的約定,還有一些特別的模塊,內(nèi)含解決方案、延伸閱讀、實(shí)操方法、練習(xí)和拓展。希望你現(xiàn)在知道如何閱讀這本書了。現(xiàn)在讓我們開始一起學(xué)習(xí)吧。

解決方案:寫給完美主義者

用于展示專業(yè)人士通常的做法。你可以選讀,但是如果你能學(xué)習(xí)使用該知識(shí),它就可以幫助你提高工作效率或者至少能贏得朋友的贊賞。

延伸閱讀:寫給好奇的人

這些信息并非你進(jìn)行研究所需的信息,但你可能會(huì)感興趣。這里可能會(huì)提供一些背景信息,也可能會(huì)提供一些淺顯的科技信息。如果你不感興趣,跳過不讀即可。

實(shí)操方法:寫給快速閱讀的讀者

即使你沒有閱讀本書中的任何其他內(nèi)容,也請(qǐng)留意實(shí)操方法。這里會(huì)提示一些常見錯(cuò)誤,或你在沒有意識(shí)到的情況下做的一些糟糕事情。

主站蜘蛛池模板: 汾西县| 阿拉善右旗| 衡水市| 奇台县| 五常市| 黄浦区| 神农架林区| 内丘县| 邢台市| 临江市| 靖安县| 蓝山县| 获嘉县| 苏尼特右旗| 城步| 武山县| 呼伦贝尔市| 阳信县| 清水河县| 昆山市| 观塘区| 湘乡市| 南京市| 高台县| 嘉定区| 祁连县| 绥宁县| 米林县| 武胜县| 高碑店市| 泰州市| 永修县| 蓬溪县| 宕昌县| 新绛县| 塔河县| 那坡县| 洛川县| 吕梁市| 无极县| 遵化市|