.. _chapter-code-if: å応ã«ãƒ•ィードãƒãƒƒã‚¯ã—よã†â€•概念è˜åˆ¥ ======================================================================= ã“ã®ç« ã®å®Ÿé¨“ã®æ¦‚è¦ ------------------------------------- ãšã£ã¨è¦–知覚ã®å®Ÿé¨“ã°ã‹ã‚ŠãŒç¶šã„ãŸã®ã§ã€ã“ã®ç« ã§ã¯æ¦‚念è˜åˆ¥ã®å®Ÿé¨“ã‚’å–り上ã’ã¾ã—ょã†ã€‚ç§ãŸã¡ãŒæ–°ã—ã„æ¦‚念をå¦ã¶ã¨ãã«ã¯è¬›ç¾©ã‚’èžã„ãŸã‚Šæ›¸ç±ã‚’èªã‚“ã りã¨ã„ã£ãŸè¨€èªžã‚’通ã˜ãŸæ‰‹æ®µã‚’用ã„ã‚‹ã“ã¨ãŒå¤šã„ã§ã—ょã†ã€‚ãã®ä»–ã«ã‚‚ã€ã‚る概念ã«ã¤ã„ã¦ã€Œã“ã®äº‹ä¾‹ã¯å½“ã¦ã¯ã¾ã‚‹ã€ã€ã€Œã‚ã®äº‹ä¾‹ã¯å½“ã¦ã¯ã¾ã‚‰ãªã„ã€ã¨ã„ã£ãŸäº‹ä¾‹ã‚’経験ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€æ¦‚念をç²å¾—ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚例ãˆã°ã€å¹¼å…ãŒè¨€èªžã‚’ç²å¾—ã™ã‚‹æ™‚ã«ã€Œã“れã¯ã€Žãã‚‹ã¾ã€ã˜ã‚ƒãªã„よã€ã€ã€Œã„ã¾ã€Žãã‚‹ã¾ã€ãŒã¿ãˆãŸãã€ã¨ã„ã£ãŸäº‹ä¾‹ã‚’通ã˜ã¦ã€Œãã‚‹ã¾ã€ã¨ã„ã†æ¦‚念をç²å¾—ã™ã‚‹ã¨ã„ã£ãŸå…·åˆã§ã™ã€‚ã‚る概念ãŒé©ç”¨ã•れる事例をæ£äº‹ä¾‹ã€é©ç”¨ã•れãªã„äº‹ä¾‹ã‚’è² äº‹ä¾‹ã¨å‘¼ã³ã¾ã™ã€‚ã“ã®ç« ã§å–り上ã’る概念è˜åˆ¥ã®å®Ÿé¨“ã¯ã€ã“ã®äº‹ä¾‹ã‚’通ã˜ãŸæ¦‚念ã®ç²å¾—éŽç¨‹ã‚’å˜ç´”化ã—ãŸã‚‚ã®ã§ã™ã€‚ 実験ã§ã¯ :numref:`fig-stimul-concept-identification` ã«ç¤ºã™ç”»åƒã‚’刺激ã¨ã—ã¦ä½¿ç”¨ã—ã¾ã™ã€‚眼é¡ã®æœ‰ç„¡(ã‹ã‘ã¦ã„ã‚‹ï¼ã‹ã‘ã¦ã„ãªã„)ã€é¡”ã®å½¢(丸ã„ï¼å››è§’ã„)ã€ç›®ã®å¤§ãã•(大ãã„ï¼å°ã•ã„)ã€çœ‰æ¯›ã®å½¢(上ãŒã£ã¦ã„ã‚‹ï¼ä¸‹ãŒã£ã¦ã„ã‚‹)ã€å£ã®å½¢(å£è§’ãŒä¸ŠãŒã£ã¦ã„ã‚‹ï¼ä¸‹ãŒã£ã¦ã„ã‚‹)ã®5ç¨®é¡žã®æ¬¡å…ƒã®çµ„ã¿åˆã‚ã›ã§åˆè¨ˆ2ã®5ä¹—=32種類ã®é¡”ç”»åƒã‚’用ã„ã¾ã™ã€‚ã“れらã®ç”»åƒãƒ•ァイル㯠:numref:`fig-stimul-concept-identification` 下ã«ç¤ºã™ã‚ˆã†ã«ã€'Face'+5æ¡ã®æ•°å€¤+'.png'ã¨ã„ã†åå‰ã§ä¿å˜ã•ã‚Œã€æ•°å€¤ã®å„æ¡ã®å€¤ãŒ5ç¨®é¡žã®æ¬¡å…ƒã®å€¤ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚ å®Ÿé¨“ã®æœ€åˆã«ç„¡æ„味ãªå˜èªžã‚’ã²ã¨ã¤æ±ºå®šã—ã¾ã™ã€‚以後ã€ã“ã®å˜èªžã‚’「ターゲット語ã€ã¨å‘¼ã³ã¾ã™ã€‚例ãˆã°ä»Šã€ã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã¨ã—ã¦ã€Œãƒªãƒ‹ã€ã¨ã„ã†ç„¡æ„味ãªå˜èªžã‚’é¸ã‚“ã ã¨ã—ã¾ã—ょã†ã€‚ã“ã®ã€Œãƒªãƒ‹ã€ã®æ£äº‹ä¾‹ã¨ã—ã¦ã€5ç¨®é¡žã®æ¬¡å…ƒã®ã„ãšã‚Œã‚’é¸ã‚“ã§ãã®å€¤ã®ã©ã¡ã‚‰ã‹ã‚’割り当ã¦ã¾ã™ã€‚例ãˆã°ã€Œçœ¼é¡ã®æœ‰ç„¡ã€ã®ã€Œã‹ã‘ã¦ã„ãªã„ã€ã‚’é¸ã‚“ã ã¨ã—ã¾ã—ょã†ã€‚ãã†ã™ã‚‹ã¨ã€ã“れã‹ã‚‰å®Ÿæ–½ã™ã‚‹å®Ÿé¨“ã§ã¯ã€Œãƒªãƒ‹ã€ã¯åˆºæ¿€ã®é¡”ãŒã€Œçœ¼é¡ã‚’ã‹ã‘ã¦ã„ãªã„ã€æ™‚ã«ã€Œå½“ã¦ã¯ã¾ã‚‹ã€ã€ãã‚Œä»¥å¤–ã®æ™‚ã«ã€Œå½“ã¦ã¯ã¾ã‚‰ãªã„ã€ã¨ã„ã†ã“ã¨ã«ãªã‚Šã¾ã™ã€‚ .. _fig-stimul-concept-identification: .. figure:: fig06/stimul-concept-identification.png :width: 80% 実験ã«ç”¨ã„る刺激。5次元ã®ç‰¹å¾´ã«ãれãžã‚Œ2種類ã®å€¤ãŒã‚りã€åˆè¨ˆ2ã®5ä¹—=32種類ã®ç”»åƒã‚りã¾ã™ã€‚ 以上ã®ã“ã¨ã‚’決ã‚ãŸã†ãˆã§ã€å®Ÿé¨“ã«å…¥ã‚Šã¾ã™ã€‚実験ã¯1回ã‹ã‚‰è¤‡æ•°å›žã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‹ã‚‰æˆã£ã¦ã„ã¾ã™( :numref:`fig-concept-identification-procedure` )。å„ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®æœ€åˆã«ã¯ã€å…ˆã»ã©æ±ºå®šã—ãŸã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã¨ã€åå¿œæ–¹æ³•ã®æ•™ç¤ºãŒè¡¨ç¤ºã•れã¾ã™ã€‚å応方法ã¯ã€Œå½“ã¦ã¯ã¾ã‚‹ã€ãªã‚‰ã°ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€ã€Œå½“ã¦ã¯ã¾ã‚‰ãªã„ã€ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å³ã‚’押ã™ã“ã¨ã«ã—ã¾ã—ょã†ã€‚実験å‚åŠ è€…ãŒæ•™ç¤ºç”»é¢ã§ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦å³ã„ãšã‚Œã‹ã‚’押ã™ã¨æœ€åˆã®è©¦è¡ŒãŒå§‹ã¾ã‚Šã¾ã™ã€‚å„試行ã§ã¯ã€ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ä¸å¤®ã«ã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã¨é¡”ç”»åƒãŒæç¤ºã•れã€ã‚¹ã‚¯ãƒªãƒ¼ãƒ³å·¦ä¸‹ã«ã€Œå½“ã¦ã¯ã¾ã‚‹ã€ã€å³ä¸‹ã«ã€Œå½“ã¦ã¯ã¾ã‚‰ãªã„ã€ã¨æç¤ºã•れã¾ã™ã€‚実験å‚åŠ è€…ã¯ã“ã®é¡”ç”»åƒãŒã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã«ã€Œå½“ã¦ã¯ã¾ã‚‹ã€ã‹ã€Œå½“ã¦ã¯ã¾ã‚‰ãªã„ã€ã‹åˆ¤æ–ã—ã¦ã€ã‚ーを押ã—ã¦å応ã—ã¾ã™ã€‚å応ã«åˆ¶é™æ™‚é–“ã¯è¨ã‘ãšã€åˆºæ¿€ã¯å応ãŒã‚ã‚‹ã¾ã§æç¤ºã—ç¶šã‘ã¾ã™ã€‚åå¿œã®æ¤œå‡ºå¾Œã«ã€åå¿œãŒæ£è§£ã§ã‚れã°ã€Œæ£è§£ã§ã™ã€ã€èª¤ç”ã§ã‚れã°ã€Œä¸æ£è§£ã§ã™ã€ã¨ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã«è¡¨ç¤ºã—ã¦æ£èª¤ã‚’実験å‚åŠ è€…ã«ãƒ•ィードãƒãƒƒã‚¯ã—ã¾ã™ã€‚32種類ã®å…¨ã¦ã®ç”»åƒã«å¯¾ã—ã¦ä¸€å›žãšã¤åˆ¤æ–ã™ã‚‹ã¾ã§è©¦è¡Œã‚’繰り返ã—ã€çµ‚了ã—ãŸã‚‰å®Ÿé¨“å‚åŠ è€…ã«æ£äº‹ä¾‹ã®æ¡ä»¶ã‚’å£é ã§å›žç”ã•ã›ã€å®Ÿé¨“者ã¯ç†è¨˜ã—ã¾ã™ã€‚ä»¥ä¸Šã®æ‰‹ç¶šãã‚’1セッションã¨ã—ã¾ã™ã€‚本æ¥ãªã‚‰å‚åŠ è€…ã®å›žç”ã‚’ã‚ãƒ¼ãƒœãƒ¼ãƒ‰ã§æ–‡ç« ã¨ã—ã¦å…¥åŠ›ã—ã¦ã‚‚らã„ãŸã„ã¨ã“ã‚ã§ã™ãŒã€PsychoPyã§æ–‡ç« 入力をã™ã‚‹ã®ã¯ã¡ã‚‡ã£ã¨é›£ã—ã„ã®ã§ä»Šå›žã¯ã“ã†ã„ã†å½¢ã‚’å–りã¾ã™((「 :numref:`{number}:{name} <section-textbox>` ã€ã‚‚å‚ç…§ã®ã“ã¨)。実際ã®å®Ÿé¨“ã§ã¯è¤‡æ•°ã‚»ãƒƒã‚·ãƒ§ãƒ³å®Ÿæ–½ã™ã‚‹ã§ã—ょã†ãŒã€è¤‡æ•°ã‚»ãƒƒã‚·ãƒ§ãƒ³ã¯ :numref:`第%sç« <chapter-loop-tips>` ã®å¤šé‡ãƒ«ãƒ¼ãƒ—ã§ç°¡å˜ã«å®Ÿç¾ã§ãã¾ã™ã®ã§ã€ã“ã®ç« ã§ã¯1セッションã®ã¿ã‚’完æˆã•ã›ã‚‹ã“ã¨ã‚’目指ã—ã¾ã—ょã†ã€‚ .. _fig-concept-identification-procedure: .. figure:: fig06/concept-identification-procedure.png :width: 80% å®Ÿé¨“ã®æ¦‚è¦ã€‚ 以上ãŒå®Ÿé¨“ã®æ¦‚è¦ã§ã™ã€‚実験ã®ä½œæˆã«å…¥ã‚‹å‰ã«ã€å®Ÿé¨“ã®ä½œæˆã«å¿…è¦ã¨ãªã‚‹æ–°ã—ã„コンãƒãƒ¼ãƒãƒ³ãƒˆã®ç´¹ä»‹ã‚’ã—ã¾ã™ã€‚ Imageコンãƒãƒ¼ãƒãƒ³ãƒˆ ----------------------------------------- Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã¯ **[ç”»åƒ]** ã§æŒ‡å®šã—ãŸç”»åƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã«æç”»ã™ã‚‹ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã§ã™( :numref:`fig-image-component` )。Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã¨å…±é€šã™ã‚‹éƒ¨åˆ†ãŒå¤šãã€Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã¨åŒæ§˜ã« **[マスク]** 〠**[テクスãƒãƒ£ã®è§£åƒåº¦ $]** ã‚„ **[補間]** ã¨ã„ã†ãƒ—ãƒãƒ‘ティãŒã‚りã¾ã™ã€‚ã“れらã®ãƒ—ãƒãƒ‘ティã«ã¤ã„ã¦ã¯ :numref:`第%sç« <chapter-loop-tips>` ã‚’å‚考ã«ã—ã¦ãã ã•ã„。 .. _fig-image-component: .. figure:: fig06/image-component.png :width: 50% Imageコンãƒãƒ¼ãƒãƒ³ãƒˆ 他コンãƒãƒ¼ãƒãƒ³ãƒˆã¨å…±é€šã®ãƒ—ãƒãƒ‘ティã®ã†ã¡ã€æ³¨æ„ãŒå¿…è¦ãªã®ãŒ **[サイズ [w, h] $]** 㨠**[剿™¯è‰²]** ã§ã™ã€‚ ã¾ãš **[サイズ [w, h] $]** ã§ã™ãŒã€ã“ã“を空欄ã«ã™ã‚‹ã¨ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«ã®æœ¬æ¥ã®å¤§ãã•ã§æç”»ã—ã¾ã™ã€‚ã¤ã¾ã‚Šã€å¹…640pixã€é«˜ã•480pixã®ç”»åƒã§ã‚れã°ãã®ã¾ã¾å¹…640pixã€é«˜ã•480pixã§æã‹ã‚Œã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚ ã“れãŒã©ã†ã„ã†æ™‚ã«å½¹ã«ç«‹ã¤ã‹ã¨ã„ã†ã¨ã€ãƒ«ãƒ¼ãƒ—を使ã£ã¦ç¸¦æ¨ªæ¯”ãŒç•°ãªã‚‹ç”»åƒãƒ•ァイルを次々ã¨è¡¨ç¤ºã™ã‚‹ã‚ˆã†ãªã‚±ãƒ¼ã‚¹ã§ã™ã€‚ã“ã®æ™‚ **[サイズ [w, h] $]** を指定ã—ã¦ã—ã¾ã†ã¨ã€å¸¸ã«æŒ‡å®šã•れãŸç¸¦æ¨ªæ¯”ã§æã‹ã‚Œã‚‹ã®ã§ã€ç”»åƒã«ã‚ˆã£ã¦æ¨ªæ–¹å‘ã‹ç¸¦æ–¹å‘ã«å¼•ãå»¶ã°ã•れã¦ã—ã¾ã„ã¾ã™ã€‚ãŸã ã€ã“ã®æ–¹æ³•ã¯heightå˜ä½ã®ã‚ˆã†ã«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã®è§£åƒåº¦ã«å¿œã˜ã¦åˆºæ¿€ã®å¤§ãã•を調整ã—ã¦ãれる機能ã¨ç›¸æ€§ãŒã‚ˆãã‚りã¾ã›ã‚“。フルHD(è§£åƒåº¦1920×1080)ã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã§ã¯ã„ã„æ„Ÿã˜ã®å¤§ãã•ã§è¡¨ç¤ºã•れるã®ã«ã€4K(è§£åƒåº¦3840×2160)ã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã ã¨å°ã•ã™ãŽã¦åˆºæ¿€ãŒã‚ˆã見ãˆãªã„ã¨ã„ã£ãŸã“ã¨ãŒèµ·ã“り得ã¾ã™ã€‚実験室ã§ã€å¸¸ã«åŒã˜è§£åƒåº¦ã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã§å®Ÿè¡Œã™ã‚‹ã®ã§ã—ãŸã‚‰å•題ã«ãªã‚‰ãªã„ã§ã—ょã†ãŒã€ãƒ‡ãƒ¢ç”¨ã«å…¬é–‹ã™ã‚‹å®Ÿé¨“やオンライン実験ã®ã‚ˆã†ã«ã€ã©ã®ã‚ˆã†ãªè§£åƒåº¦ã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã§å®Ÿè¡Œã•れるã‹ã‚ã‹ã‚‰ãªã„実験ã«ã¯ä¸å‘ãã§ã™ã€‚ heightå˜ä½ã®å ´åˆã«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã¨ã®ç›¸å¯¾å€¤ã§ç”»åƒã®å¤§ãã•を指定ã—ã¤ã¤ã€ç”»åƒã”ã¨ã«ç¸¦æ¨ªæ¯”を変更ã—ãŸã„å ´åˆã¯ã€æ¡ä»¶ãƒ•ァイルを使ã£ã¦ç”»åƒã”ã¨ã« **[サイズ [w, h] $]** を指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™(実行ä¸ã«ç”»åƒã®ç¸¦æ¨ªæ¯”を計算ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ãŒã€æœ¬æ›¸ã§æƒ³å®šã—ã¦ã„るレベルを超ãˆã¾ã™)。ã‚ã‚‹ã„ã¯ã€ãã†ã„ã†é¢å€’ãªã“ã¨ã«ãªã‚‰ãªã„よã†ã«ç”»åƒã®ç¸¦æ¨ªæ¯”ãŒã™ã¹ã¦åŒã˜ã«ãªã‚‹ã‚ˆã†ã«ç”»åƒã‚’用æ„ã™ã‚‹ã®ã‚‚よã„ã§ã—ょã†ã€‚ ã‚‚ã†ã²ã¨ã¤ã®è¦æ³¨æ„プãƒãƒ‘ティã§ã‚ã‚‹ **[剿™¯è‰²]** ã§ã™ãŒã€ç”»åƒã‚’æç”»ã™ã‚‹éš›ã«ã€ã“ã“ã«æŒ‡å®šã—ãŸè‰²ã¨ç”»åƒã®è‰²ã®ä¹—ç®—ãŒãŠã“ãªã‚れã¾ã™ã€‚ã¤ã¾ã‚Šã€ç”»åƒä¸Šã®ã‚ã‚‹ä½ç½®ã®è‰²ãŒPsychoPy風ã®è¡¨ç¾ã§(-0.3, 0.5, 0.7)ã§ã‚ã‚‹ã¨ãã« **[剿™¯è‰²]** ã«$(-1.0, 0.0, 0.3)ã¨æŒ‡å®šã•れã¦ã„ãŸã‚‰ã€RGB儿ˆåˆ†ã‚’ãれãžã‚Œä¹—ç®—ã—ã¦(0.3, 0.0, 0.21)ã¨ã—ã¦æã‹ã‚Œã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚ã“れを使ã†ã¨ã€Ræˆåˆ†ã ã‘ã‚’æç”»ã™ã‚‹ã¨ã‹Gæˆåˆ†ã ã‘ã‚’å転ã™ã‚‹ã¨ã„ã£ãŸç°¡å˜ãªç”»åƒå‡¦ç†ã ã£ãŸã‚‰ã€å‰ã‚‚ã£ã¦å‡¦ç†ã‚’ãŠã“ãªã£ãŸç”»åƒãƒ•ァイルを用æ„ã—ãªãã¦ã‚‚実行時ã«å‡¦ç†ã§ãã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚ **[剿™¯è‰²]** ã®åˆæœŸå€¤ã¯$(1, 1, 1)ã§ã™ã®ã§ã€ä¹—ç®—ã—ã¦ã‚‚何も起ã“らãšã«ç”»åƒã®è‰²ãã®ã¾ã¾ã«æç”»ã•れã¾ã™ã€‚ Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã§åˆç™»å ´ã®ãƒ—ãƒãƒ‘ティ㯠**[æ°´å¹³ã«å転]** 〠**[垂直ã«å転]** 〠**[ç”»åƒ]** ã§ã™ã€‚ **[æ°´å¹³ã«å転]** 㨠**[垂直ã«å転]** ã«ãƒã‚§ãƒƒã‚¯ã‚’入れã¦ãŠãã¨ã€ãれãžã‚Œç”»åƒãŒå·¦å³å転ã€ä¸Šä¸‹å転ã•れãŸçŠ¶æ…‹ã§æç¤ºã•れã¾ã™ã€‚ **[ç”»åƒ]** ã«ã¯ç”»åƒãƒ•ァイルåを指定ã—ã¾ã™ã€‚æ¡ä»¶ãƒ•ァイルã¨åŒæ§˜ã«ã€ãŸã ファイルåã ã‘ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã«ã¯ã€å®Ÿè¡Œã—ã¦ã„ã‚‹psyexpファイルã¨åŒã˜ãƒ•ォルダã‹ã‚‰ãƒ•ァイルを探ã—ã¾ã™ã€‚当然ファイルãŒè¦‹ã¤ã‹ã‚‰ãªã‘れã°ã‚¨ãƒ©ãƒ¼ã¨ãªã‚Šå®Ÿé¨“ã¯åœæ¢ã—ã¦ã—ã¾ã„ã¾ã™ã€‚psyexpã¨ç•°ãªã‚‹ãƒ•ォルダã«ã‚ã‚‹ç”»åƒãƒ•ァイルをå‚ç…§ã™ã‚‹å ´åˆã¯ã€çµ¶å¯¾ãƒ‘スãŠã‚ˆã³ç›¸å¯¾ãƒ‘スã«ã‚ˆã‚‹æŒ‡å®šãŒä½¿ãˆã¾ã™ã€‚絶対パスã€ç›¸å¯¾ãƒ‘スã¨è¨€ã‚れã¦ã‚‚ãƒ”ãƒ³ã¨æ¥ãªã„方もãŠã‚‰ã‚Œã‚‹ã¨æ€ã„ã¾ã™ã®ã§ã€ç¯€ã‚’改ã‚ã¦è§£èª¬ã—ã¦ãŠãã¾ã—ょã†ã€‚ ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ - ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«ã‚’ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ä¸Šã«æç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。 - ç”»åƒãƒ•ァイルを上下ã€ã¾ãŸã¯å·¦å³ã«å転ã•ã›ã¦æç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。 絶対パスã¨ç›¸å¯¾ãƒ‘ス -------------------------------- パス(path)ã¨ã¯ã€Œå°é“ã€ã®ã“ã¨ã§ã€PCã§ã¯ãƒ—ãƒã‚°ãƒ©ãƒ を実行ã™ã‚‹ã¨ãã«é–‹ã„ãŸã‚Šä¿å˜ã—ãŸã‚Šã—ãŸã„ファイルã¸ãŸã©ã‚Šç€ããŸã‚ã®çµŒè·¯ã‚’表ã—ã¾ã™ã€‚ç§ãŸã¡ã®èº«ã®å›žã‚Šã®ã‚‚ã®ã«ä¾‹ãˆã‚‹ã¨ã™ã‚Œã°ã€ã€Œä½æ‰€ã€ã«ã‚ˆãä¼¼ã¦ã„ã¾ã™ã€‚「X県Y市Z町1ä¸ç›®1-1ã€ã¨ã„ã†ä½æ‰€ãŒã‚ã‚‹ã¨ã—ã¦ã€æ‰‹ç´™ã®å®›å…ˆã«ã“ã®ä½æ‰€ã‚’書ã„ã¦ãŠã‘ã°ã€å…¨å›½ã©ã“ã‹ã‚‰ç™ºé€ã—ã¦ã‚‚åŒã˜ã¨ã“ã‚ã¸é…é€ã•れã¾ã™ã€‚PCã®å ´åˆã§ã‚‚åŒæ§˜ã«ã€PCã®ãƒ•ァイルシステム(ãƒãƒ¼ãƒ‰ãƒ‡ã‚£ã‚¹ã‚¯ã‚„USBメモリç‰ï¼‰ã§ãƒ•ァイルã®ä½ç½®ã‚’特定ã§ãã‚‹ã€Œä½æ‰€ã€ãŒã‚りã¾ã™ã€‚ã“ã®ä½æ‰€ã‚’絶対パスã¨å‘¼ã³ã¾ã™ã€‚ Microsoft Windowsã®å ´åˆã€USBメモリを差ã—込むã¨ã€Œãƒ‰ãƒ©ã‚¤ãƒ–F:ã€ãªã©ã®ã‚ˆã†ã«ã‚¢ãƒ«ãƒ•ァベットãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã‚‹ã®ã¯å¾¡å˜çŸ¥ã®ã“ã¨ã¨æ€ã„ã¾ã™ã€‚ã“ã®ã‚¢ãƒ«ãƒ•ァベットをドライブレターã¨å‘¼ã³ã¾ã™ã€‚ã“ã®USBメモリã«ã€Œpsychologyã€ã¨ã„ã†ãƒ•ォルダãŒã‚ã£ã¦ã€ã•らã«ãã®ä¸ã«ã€Œreportã€ã¨ã„ã†ãƒ•ォルダãŒã‚ã£ã¦ã€ãã®ä¸ã®ã€Œreport01.docxã€ã¨ã„ã†ãƒ•ァイルãŒã‚ã‚‹ã¨ã—ã¾ã™ã€‚ã“ã®report01.docxを絶対パスã§è¡¨ã™ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãƒ‰ãƒ©ã‚¤ãƒ–レターã®å¾Œã«ã‚³ãƒãƒ³ã¨ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’書ãã€ä»¥å¾Œãƒ•ォルダåã‚’ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§åŒºåˆ‡ã£ã¦è¨˜è¿°ã—ã¾ã™ã€‚ :: F:\psychology\report\report01.docx 日本語Windowsã§ã¯ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã¯åŠè§’ã®å††è¨˜å·(ï¿¥)ã§è¡¨ç¤ºã•れã¾ã™ã®ã§ã”注æ„ãã ã•ã„(「 :numref:`{number}:{name} <topic-dollar-character-in-string>` ã€ã‚’å‚ç…§)。日本ã§ã®ä½æ‰€ã®è¡¨è¨˜ãŒéƒ½é“府県ã€å¸‚町æ‘ã€ã¨å¤§ããªåŒºåˆ†ã‹ã‚‰å°ã•ãªåŒºåˆ†ã«å‘ã‹ã£ã¦æ›¸ã‹ã‚Œã‚‹ã®ã¨ä¼¼ã¦ã„ã¾ã™ã€‚ Ubuntuãªã©ã®Linuxç³»OSã§ã¯ã€ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ã¯ãªã以下ã®ã‚ˆã†ã«ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ãƒ•ォルダを区切りã¾ã™ã€‚ã¾ãŸã€ãƒ‰ãƒ©ã‚¤ãƒ–レターã¯ä½¿ç”¨ã•れãšã€çµ¶å¯¾ãƒ‘スã®å…ˆé ã¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§ã™ã€‚ :: /home/user/Documents/Report/report01.txt 言ã†ãªã‚Œã°å…ˆé ã®ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã®å‰ã«ã€Œåå‰ãŒãªã„ã€ãƒ•ォルダãŒã‚ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ãŒã€ã“ã®åç„¡ã—フォルダã®äº‹ã‚’rootã¨å‘¼ã³ã¾ã™ã€‚ファイルシステムãŒã“ã®åç„¡ã—ãƒ•ã‚©ãƒ«ãƒ€ã‚’æ ¹ã¨ã—ã¦æžãŒåºƒãŒã£ã¦ã„ãよã†ã«è¦‹ãˆã‚‹ã¨ã“ã‚ã«ç”±æ¥ã™ã‚‹åç§°ã§ã™ã€‚ 絶対パスã®è‰¯ã„ã¨ã“ã‚ã¯ã€ã©ã®ä½ç½®ã«ç›®çš„ã®ãƒ•ァイルãŒã‚ã‚‹ã‹ã‚’曖昧ã•ãªã—ã«ç‰¹å®šã§ãã‚‹ã“ã¨ã§ã™ã€‚妿œŸæœ«ã®ãƒ¬ãƒãƒ¼ãƒˆã®æ™‚期ã«ã€Œâ—‹â—‹æ¦‚è«–ã€ã‚„「△△特殊講義ã€ã¨ã„ã£ãŸã‚ã¡ã“ã¡ã®ãƒ•ォルダã«report.docã¨ã„ã†åå‰ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ•£ã‚‰ã‹ã£ã¦ã„ã¦è¨³ãŒåˆ†ã‹ã‚‰ãªããªã‚‹ã“ã¨ãŒã‚りã¾ã™ãŒã€çµ¶å¯¾ãƒ‘スã§ã‚れã°ã©ã®ãƒ•ォルダã®report.docã§ã‚ã‚‹ã‹ã‚’見失ã†ã“ã¨ãŒã‚りã¾ã›ã‚“。ã—ã‹ã—ã€ã“ã®æ€§è³ªãŒé€†ã«ã€Œèžé€šã®åˆ©ã‹ãªã•ã€ã¨ã„ã†æ¬ 点ã«ãªã‚‹å ´é¢ã‚‚ã‚りã¾ã™ã€‚例ãˆã°è‡ªå®…ã®PCã§USBメモリãŒF:ドライブã¨ã—ã¦æŽ¥ç¶šã•れã¦ã„ã¦ã€ãã®ä¸ã«ã‚ã‚‹F:\\Exp07\\stim01.jpgã¨ã„ã†åˆºæ¿€ç”»åƒã‚’Builderã‹ã‚‰çµ¶å¯¾ãƒ‘スã§å‚ç…§ã™ã‚‹ã‚ˆã†ã«ã—ãŸã¨ã—ã¾ã™ã€‚ãã—ã¦psyexpファイルをä¿å˜ã—ã¦å¤§å¦ã®å®Ÿé¨“室ã¸å…¥ã‚Šã€å®Ÿé¨“室ã®PCã«USBメモリを接続ã—ãŸã‚‰ã€E:ドライブã¨ã—ã¦èªè˜ã•れã¦ã—ã¾ã£ãŸã¨ã—ã¾ã—ょã†ã€‚ãã†ã™ã‚‹ã¨psyexpファイルã§å‚ç…§ã—ã¦ã„ã‚‹F:\\Exp07\\stim01.jpgã®çµ¶å¯¾ãƒ‘スã¯ä»Šã‚„E:\\Exp07\\stim01.jpgã«å¤‰ã‚ã£ã¦ã„ã¾ã™ã®ã§ã€ãれã«åˆã‚ã›ã¦psyexpãƒ•ã‚¡ã‚¤ãƒ«ã‚’æ›¸ãæ›ãˆãªã„ã¨ã„ã‘ã¾ã›ã‚“。ã“れã¯ã‚ã¾ã‚Šã«ã‚‚é¢å€’ã§ã™ã€‚ã“ã®ã‚ˆã†ãªã¨ãã«ä¾¿åˆ©ãªã®ãŒç›¸å¯¾ãƒ‘スã«ã‚ˆã‚‹æŒ‡å®šã§ã™ã€‚ 相対パスã¨ã¯ã€ä½æ‰€ã®ä¾‹ãˆã§è¨€ã†ãªã‚‰ã°ã€ä½•県ã®è©±ã‚’ã—ã¦ã„ã‚‹ã®ã‹æ–‡è„ˆã‹ã‚‰æ˜Žã‚‰ã‹ãªã¨ãã«çœŒã‚’çœç•¥ã—ã¦ã€ŒY市Z町1ä¸ç›®1-1ã€ã®ã‚ˆã†ã«æ›¸ãã“ã¨ã«ä¼¼ã¦ã„ã¾ã™ã€‚ã—ã‹ã—ã€ä½æ‰€ã®ä¾‹ãˆã§ã¯PCã®ç›¸å¯¾ãƒ‘スã¯ä¸Šæ‰‹ã説明ã§ãã¾ã›ã‚“。PCã®ç›¸å¯¾ãƒ‘スã§ã¯ã€ã¾ãšåŸºæº–ã¨ãªã‚‹ä½ç½®ã‚’決ã‚ã¦ã€ãã“ã‹ã‚‰ä½æ‰€ã‚’ã©ã®ã‚ˆã†ã«è¾¿ã£ã¦ã„ãã‹ã‚’記述ã—ã¾ã™ã€‚基準ã¨ãªã‚‹ä½ç½®ã®ã“ã¨ã‚’カレントフォルダã¨å‘¼ã³ã¾ã™ã€‚今ã€F:\\experiment\\exp01ã¨ã„ã†ãƒ•ォルダã«exp01.psyexpã¨ã„ã†Builderã®å®Ÿé¨“ファイルãŒã‚ã‚‹ã¨ã—ã¾ã—ょã†( :numref:`fig-path-example` )。ã“ã®exp01.psyexpを実行ã™ã‚‹æ™‚ã«ã¯ã€F:\\experiment\\exp01ãŒã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã¨ãªã‚Šã¾ã™ã€‚exp01.psyexpã‹ã‚‰ä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’æŽ¢ã™æ™‚ã€çµ¶å¯¾ãƒ‘スã§ã¯ãªã„パス(ドライブレターやrootã‹ã‚‰å§‹ã¾ã£ã¦ã„ãªã„æ›¸ãæ–¹)ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã¨ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã‹ã‚‰ãƒ•ァイルを探ã—ã¾ã™ã€‚:numref:`第%sç« <chapter-basic-experiment>` 以é™ã§æ¡ä»¶ãƒ•ァイルを指定ã™ã‚‹æ™‚ã«exp01cnd.xlsxã¨ã„ã†å…·åˆã«ãƒ•ァイルåã ã‘を書ã„ãŸã“ã¨ã‚’æ€ã„出ã—ã¦ãã ã•ã„。ã“れã¯çµ¶å¯¾ãƒ‘スã§ã¯ãªã„ã®ã§ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã§ã‚ã‚‹F:\\experiment\\exp01ã®exp01cnd.xlsxを指ã™ã“ã¨ã«ãªã‚Šã¾ã™( :numref:`fig-path-example` (1))。image\\stim01.pngã¨æŒ‡å®šã•れãŸã‚‰ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã®ä¸ã«å«ã¾ã‚Œã‚‹imageã¨ã„ã†ãƒ•ォルダã®ä¸ã«ã‚ã‚‹stim01.pngを指ã—ã¦ã„ã‚‹ã¨è§£é‡ˆã•れã¾ã™( :numref:`fig-path-example` (2))。ã“ã®ã‚ˆã†ãªã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダを基準ã«ã—ãŸæŒ‡å®šæ–¹æ³•を相対パスã¨å‘¼ã³ã¾ã™ã€‚ .. _fig-path-example: .. figure:: fig06/path-example.png :width: 80% 相対パスã«ã‚ˆã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã®æŒ‡å®šã€‚ 普通ã®ä½æ‰€ã®è¡¨è¨˜ã¨ç›¸å¯¾ãƒ‘スãŒå¤§ããç•°ãªã‚‹ã®ã¯ã€ç›¸å¯¾ãƒ‘スã«ã¯éšŽå±¤ã‚’ã•ã‹ã®ã¼ã‚‹è¨˜æ³•ãŒç”¨æ„ã•れã¦ã„る点ã§ã™ã€‚相対パスã®ä¸ã«ãƒ”リオドãŒ2æ–‡å—ã ã‘ã®ãƒ•ォルダ( ..\\ )ãŒå«ã¾ã‚Œã¦ã„ã‚‹ã¨ã€ãれã¯ç¾åœ¨ã®ãƒ•ォルダをå«ã‚“ã§ã„る上ä½ã®ãƒ•ォルダを指ã—ã¾ã™ã€‚ :numref:`fig-path-example` ã®ä¾‹ã§ã¯ã€..\\ãŒF:\\experimentを指ã—ã¾ã™ã€‚ã“ã®è¨˜æ³•ã¯é‡ãã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã®ã§ã€..\\..\\ã¨æ›¸ãã¨F:\\experimentã®ã•らã«ä¸Šä½ã®ãƒ•ォルダã§ã‚ã‚‹F:\\を指ã—ã¾ã™ã€‚..\\ã§æŒ‡ã—示ã•れる上ä½ãƒ•ォルダã®ã“ã¨ã‚’親フォルダã¨å‘¼ã³ã¾ã™ã€‚ã“ã®è¨˜æ³•を用ã„ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダより上ä½ã®ãƒ•ォルダã«å«ã¾ã‚Œã‚‹ãƒ•ァイルã§ã‚‚è‡ªåœ¨ã«æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ :numref:`fig-path-example` ã®(3)ã®exp02cnd.xlsxã¸åˆ°é”ã™ã‚‹ãŸã‚ã«ã¯ã¾ãš..\\ã§è¦ªãƒ•ォルダã«ç§»å‹•ã—ã€ãã“ã‹ã‚‰exp02フォルダã¸ä¸‹ã‚Œã°ãŸã©ã‚Šç€ã‘ã¾ã™ã‹ã‚‰..\\exp02\\exp02cnd.xlsxã¨æ›¸ãã¾ã™ã€‚åŒæ§˜ã«(4)ã®face001.jpgã«ãŸã©ã‚Šç€ããŸã‚ã«ã¯ã€..\\..\\ã¨æ›¸ã„ã¦è¦ªãƒ•ォルダを二ã¤é¡ã£ã¦F:\\ã¾ã§ç§»å‹•ã—ã€ãã“ã‹ã‚‰photoフォルダã€faceフォルダã¨ä¸‹ã‚Œã°ãŸã©ã‚Šç€ãã¾ã™ã‹ã‚‰..\\..\\photo\\face\\face001.jpgã¨æ›¸ã‘ã°ã‚ˆã„ã¨ã„ã†ã“ã¨ã§ã™ã€‚Builderã§å¤§é‡ã®ç”»åƒãƒ•ァイルを刺激ã¨ã—ã¦ä½¿ã†å ´åˆã‚„ã€è¤‡æ•°ã®å®Ÿé¨“ã§åŒã˜ç”»åƒã‚’使ã„ã¾ã‚ã™å ´åˆãªã©ã«ã¯ã€ã“ã®ç›¸å¯¾ãƒ‘スã®è¡¨è¨˜æ³•を覚ãˆã¦ãŠãã¨å¿…ãšå½¹ã«ç«‹ã¡ã¾ã™ã€‚ã—ã£ã‹ã‚Šç†è§£ã—ã¦ãŠãã¾ã—ょã†ã€‚ 相対パスã®ã‚‚ã†ä¸€ã¤ã®åˆ©ç‚¹ã¯ã€ã€Œç›¸å¯¾ãƒ‘スを使ãˆã°PythonãŒOSã«ã‚ˆã‚‹ãƒ‘スã®åŒºåˆ‡ã‚Šæ–‡å—ã®é•ã„ã‚’å¸åŽã—ã¦ãれるã€ã¨ã„ã†ç‚¹ã§ã™ã€‚å…ˆã»ã©ã‹ã‚‰ç¹°ã‚Šè¿”ã—例を示ã—ã¦ã„るよã†ã«ã€Microsoft Windowsã§ã¯ãƒ•ォルダåを区切る文å—ã¨ã—ã¦ãƒãƒƒã‚¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã‚’用ã„ã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€Windows上ã§å‹•作ã™ã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ ã§ç›¸å¯¾ãƒ‘スを記述ã™ã‚‹æ™‚ã«ã¯image\\stim01.pngã¨ã„ã†å…·åˆã«æ›¸ã‹ãªã‘れã°ã„ã‘ã¾ã›ã‚“。ã—ã‹ã—ã€å…ˆè¿°ã®ã‚ˆã†ã«Linuxã§ã¯ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã§åŒºåˆ‡ã‚Šã¾ã™ã®ã§ã€Windows上ã§å‹•ã„ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã‚’ãã®ã¾ã¾æŒã£ã¦ãã¦ã‚‚動作ã—ã¾ã›ã‚“。ã“ã®å•題ã¯ã€Œå€‹äººç”¨PCã¯Windowsã ã‘ã©å¤§å¦ã®å®Ÿé¨“室ã§ã¯Linuxã€ã¨ã„ã£ãŸçжæ³ã§ã¯å›°ã‚Šã‚‚ã®ãªã®ã§ã™ãŒã€ã‚りãŒãŸã„ã“ã¨ã«Windows版ã®Pythonã«ã¯ãƒ‘スをLinuxæµã«image/stim01.pngã¨æ›¸ã„ã¦ã‚‚é©åˆ‡ã«è§£é‡ˆã—ã¦ãれる機能ãŒã‚りã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€Linuxæµã®ç›¸å¯¾ãƒ‘スを書ã„ã¦ãŠã‘ã°Windowsã§ã‚‚Linuxã§ã‚‚動作ã™ã‚‹Builderã®å®Ÿé¨“を作るã“ã¨ãŒã§ãã‚‹ã®ã§ã™ã€‚「Windows上ã§ã‚‚スラッシュをパスã®åŒºåˆ‡ã‚Šæ–‡å—ã¨è¦‹ãªã—ã¦ãれる機能ã¯çµ¶å¯¾ãƒ‘ã‚¹ã®æ™‚ã«ã‚‚有効ãªã‚“ã˜ã‚ƒãªã„ã®ï¼Ÿã€ã¨æ€ã‚れる方もã„ã‚‹ã‹ã‚‚知れã¾ã›ã‚“ãŒã€çµ¶å¯¾ãƒ‘スã®å ´åˆã¯ãƒ‰ãƒ©ã‚¤ãƒ–レターã®å•題ãŒç«‹ã¡ã¯ã ã‹ã‚Šã¾ã™ã€‚ã•ã™ãŒã®Pythonã§ã‚‚ドライブレターを自動的ã«è£œã£ãŸã‚Šå‰Šé™¤ã—ãŸã‚Šã¯ã§ãã¾ã›ã‚“ã®ã§ã€çµ¶å¯¾ãƒ‘ã‚¹ã§æ›¸ãã¨OSä¾å˜ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚ 最後ã«ã€è¦ªãƒ•ォルダã®è¨˜æ³•を紹介ã—ãŸã¤ã„ã§ã«ã€ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã®è¨˜æ³•も一応紹介ã—ã¦ãŠãã¾ã™ã€‚ピリオド1æ–‡å—ã ã‘ã®ãƒ•ォルダåã¯ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダã¨ã—ã¦è§£é‡ˆã•れã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€ :numref:`fig-path-example` ã®(1)ã¯.\\exp01cnd.xlsxã¨ã‚‚書ãã“ã¨ãŒã§ãã¾ã™ã€‚ (2)ã‚‚åŒæ§˜ã«.\\image\\stim01.pngã¨æ›¸ãã“ã¨ãŒã§ãã¾ã™ã€‚Builderを使ã†ã ã‘ã§ã—ãŸã‚‰è¦šãˆã‚‹å¿…è¦ã¯ãªã„ã®ã§ã™ãŒã€ä»Šå¾Œæœ¬æ ¼çš„ãªãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚’å¦ç¿’ã—ãŸã‚Šã™ã‚‹æ™‚ã«ã¯çŸ¥ã£ã¦ã„ã‚‹ã¨å½¹ã«ç«‹ã¤ã‹ã‚‚ã—れã¾ã›ã‚“。 ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ - ç”»åƒãƒ•ァイルやæ¡ä»¶ãƒ•ァイルç‰ã®ä½ç½®ã‚’çµ¶å¯¾ãƒ‘ã‚¹ã§æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãる。 - ç”»åƒãƒ•ァイルやæ¡ä»¶ãƒ•ァイルç‰ã®ä½ç½®ã‚’ç›¸å¯¾ãƒ‘ã‚¹ã§æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãる。 - OSã«ã‚ˆã‚‹ãƒ‘ã‚¹ã®æ›¸ãæ–¹ã®é•ã„を説明ã§ãる。 - 複数ã®OSã§å®Ÿè¡Œã§ãã‚‹Builderã®å®Ÿé¨“を作æˆã™ã‚‹ãŸã‚ã«ã¯ã©ã®è¨˜æ³•ã§ãƒ‘スを記述ã—ãŸã‚‰ã‚ˆã„ã‹ç”ãˆã‚‰ã‚Œã‚‹ã€‚ 実験ã®ä½œæˆ ------------------------------------- コンãƒãƒ¼ãƒãƒ³ãƒˆã®è§£èª¬ãŒçµ‚ã‚ã£ãŸã®ã§ã€å®Ÿé¨“ã®ä½œæˆã«å…¥ã‚Šã¾ã—ょã†ã€‚ã“ã®ç« ã®è§£èª¬ã§ã¯ã€Builderã§å®Ÿé¨“ã‚’æ–°è¦ä½œæˆã—ã€ä»¥ä¸‹ã®ä½œæ¥ã‚’行ã£ã¦exp06.psyexpã®åå‰ã§ä¿å˜ã—ãŸã‚‚ã®ã¨ã—ã¾ã™ã€‚ - 実験è¨å®šãƒ€ã‚¤ã‚¢ãƒã‚° - **[å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°]** ã«wordã¨ã„ã†é …ç›®ã¨ã€conditionã¨ã„ã†é …ç›®ã‚’è¿½åŠ ã™ã‚‹ã€‚ - PsychoPyã®è¨å®šã§height以外ã®å˜ä½ã‚’標準ã«è¨å®šã—ã¦ã„ã‚‹å ´åˆã¯ **[å˜ä½]** ã‚’heightã«ã—ã¦ãŠã。 - trialルーãƒãƒ³ - Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã¦ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’faceImageã«ã€ **[終了]** を空白ã«ã™ã‚‹ã€‚「レイアウトã€ã‚¿ãƒ–ã® **[サイズ [w, h] $]** ã‚’(0.5, 0.5)ã«ã€ **[ä½ç½® [x, y] $]** ã‚’(0.0,0.1)ã«è¨å®šã™ã‚‹ã€‚ - Textコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã¦ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¨å®šã™ã‚‹ã€‚最終的ã«3ã¤ã®Textコンãƒãƒ¼ãƒãƒ³ãƒˆãŒé…ç½®ã•れる。 - 「基本ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’textYesã€**[終了]** を空白ã«ã—〠**[æ–‡å—列]** ã«ã€Œã¯ã„ã€ã¨å…¥åŠ›ã™ã‚‹ã€‚ - 「書å¼ã€ã‚¿ãƒ–ã® **[æ–‡å—ã®é«˜ã• $]** ã‚’0.05ã«ã™ã‚‹ã€‚ - ã‚¹ã‚¯ãƒªãƒ¼ãƒ³å·¦ä¸‹ã«æç¤ºã•れるよã†ã«ã€ã€Œãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã€ã‚¿ãƒ–ã® **[ä½ç½® [x, y] $]** ã‚’(-0.2,-0.3)ã«è¨å®šã™ã‚‹ã€‚ - textYesをコピーã—ã¦ã€textNoã€textQuestionã¨ã„ã†åå‰ã§è²¼ã‚Šä»˜ã‘る。 - textNoãŒã‚¹ã‚¯ãƒªãƒ¼ãƒ³å³ä¸‹ã«æç¤ºã•れるよã†ã« **[ä½ç½® [x, y] $]** ã‚’(0.2,-0.3)ã«è¨å®šã™ã‚‹ã€‚ **[æ–‡å—列]** ã«ã€Œã„ã„ãˆã€ã¨å…¥åŠ›ã™ã‚‹ã€‚ - textQuestionãŒfaceImageã®ä¸‹ã«æç¤ºã•れるよã†ã« **[ä½ç½® [x, y] $]** ã‚’(0,-0.2)ã«è¨å®šã™ã‚‹ã€‚textQuestionã® **[æ–‡å—列]** ã¯å¾Œã§å¤‰æ›´ã™ã‚‹ã®ã§ã¨ã‚Šã‚ãˆãšãã®ã¾ã¾ã§ã‚ˆã„。 - Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¨å®šã™ã‚‹ã€‚ - 「基本ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’key_choiceã¨ã—〠**[終了]** ãŒç©ºç™½ã¨ãªã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚ - 「データã€ã‚¿ãƒ–ã® **[検出ã™ã‚‹ã‚ー $]** ã‚’'left', 'right'ã«ã™ã‚‹ã€‚ **[æ£ç”を記録]** ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ã€ **[æ£ç”]** ã«$correctAnsã¨å…¥åŠ›ã™ã‚‹ã€‚ - instructionルーãƒãƒ³(作æˆã™ã‚‹) - フãƒãƒ¼ã®å…ˆé ã«æŒ¿å…¥ã™ã‚‹ã€‚ - Textコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’textInstã«ã€ **[終了]** を空白ã«ã™ã‚‹ã€‚「書å¼ã€ã‚¿ãƒ–ã® **[æ–‡å—ã®é«˜ã• $]** ã«0.05を入力ã™ã‚‹ã€‚ - Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ– **[終了]** を空白ã§ã‚ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚「データã€ã‚¿ãƒ–ã® **[検出ã™ã‚‹ã‚ー $]** ã‚’'left','right'ã«ã—〠**[記録]** を「ãªã—ã€ã«ã™ã‚‹ã€‚ - feedbackルーãƒãƒ³(作æˆã™ã‚‹) - フãƒãƒ¼ã®trialルーãƒãƒ³ã®ç›´å¾Œã«æŒ¿å…¥ã™ã‚‹ã€‚ - Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã¦ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’faceImage_2ã«ã€ **[終了]** を空白ã«ã™ã‚‹ã€‚ **[サイズ [w, h] $]** ã‚’(0.5, 0.5)ã«ã€ **[ä½ç½® [x, y] $]** ã‚’(0.0,0.1)ã«ã™ã‚‹ã€‚ - Textコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’textFeedbackã«ã€ **[終了]** を空白ã«ã™ã‚‹ã€‚「書å¼ã€ã‚¿ãƒ–ã® **[æ–‡å—ã®é«˜ã• $]** ã‚’0.08ã«ã™ã‚‹ã€‚faceImage_2ã®ä¸‹ã«æç¤ºã•れるよã†ã«ã€Œãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã€ã‚¿ãƒ–ã® **[ä½ç½® [x, y] $]** ã‚’(0,-0.28)ã«è¨å®šã™ã‚‹ã€‚ - Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[終了]** ãŒç©ºç™½ã§ã‚ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚「データã€ã‚¿ãƒ–ã® **[検出ã™ã‚‹ã‚ー $]** ã‚’'left','right'ã«ã—〠**[記録]** を「ãªã—ã€ã«ã™ã‚‹ã€‚ - reportルーãƒãƒ³(作æˆã™ã‚‹) - フãƒãƒ¼ã®æœ«å°¾ã«æŒ¿å…¥ã™ã‚‹ã€‚ - Textコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¨å®šã™ã‚‹ã€‚ - 「基本ã€ã‚¿ãƒ–ã® **[åå‰]** ã‚’textReportã«ã€ **[終了]** を空白ã«ã™ã‚‹ã€‚ - 「書å¼ã€ã‚¿ãƒ–ã® **[æ–‡å—ã®é«˜ã• $]** ã«0.05を入力ã™ã‚‹ã€‚ - Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’ã²ã¨ã¤é…ç½®ã—ã€ã€ŒåŸºæœ¬ã€ã‚¿ãƒ–ã® **[終了]** ãŒç©ºç™½ã§ã‚ã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã€‚「データã€ã‚¿ãƒ–ã® **[検出ã™ã‚‹ã‚ー $]** ã‚’'space'ã«ã—〠**[記録]** を「ãªã—ã€ã«ã™ã‚‹ã€‚ - trialsループ(作æˆã™ã‚‹) - trialルーãƒãƒ³ã¨feedbackルーãƒãƒ³ã‚’繰り返ã™ã‚ˆã†ã«æŒ¿å…¥ã™ã‚‹ã€‚ - **[繰り返ã—回数 $]** ã‚’1ã«ã™ã‚‹ã€‚ - åˆºæ¿€ç”»åƒ - ã“ã¡ã‚‰ã®ãƒªãƒ³ã‚¯(http://www.s12600.net/psy/python/ppb/chapter06/image.zip)ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹ã€‚ - exp06.psyexpã®ä¿å˜ãƒ•ォルダã«imageã¨ã„ã†ãƒ•ォルダを作æˆã—ã€ãã®ä¸ã«ä¿å˜ã—ã¦ãŠã。 - exp06cnd01.xlsx(æ¡ä»¶ãƒ•ァイル) - imageFileã€correctAnsã®2パラメータをè¨å®šã™ã‚‹ã€‚ - imageFileã«32種類ã®åˆºæ¿€ç”»åƒã®ãƒ•ァイルåã‚’è¨å®šã™ã‚‹ã€‚ファイルå(FileXXXXX.png)ã®ã¿ã§ãƒ‘スã¯å…¥åŠ›ã—ãªã„ã“ã¨ã€‚ - imageFileã®åˆ—ã§ãƒ•ァイルåã®5æ¡ã®æ•°å—ã®å·¦ã‹ã‚‰1æ¡ç›®ãŒ1ã§ã‚る行ã®correctAnsã‚’leftã«ã€ãれ以外ã®è¡Œã®correctAnsã‚’rightã«ã™ã‚‹ã€‚ã“れã§çœ¼é¡ã‚’ã‹ã‘ã¦ã„ã‚‹ç”»åƒãƒ•ァイルã«å¯¾å¿œã™ã‚‹correctAnsãŒleftã¨ãªã‚‹ã€‚ - exp06cnd02.xlsx(æ¡ä»¶ãƒ•ァイル) - exp06cnd01.xlsxをコピーã—ã€correctAnsã®åˆ—ã®rightã‚’leftã«ã€leftã‚’rightã«æ›¸ãæ›ãˆã‚‹ã€‚ã“れã§çœ¼é¡ã‚’ã‹ã‘ã¦ã„ãªã„ç”»åƒãƒ•ァイルã«å¯¾å¿œã™ã‚‹correctAnsãŒleftã¨ãªã‚‹ã€‚ ä»¥ä¸Šã§æº–備完了ã§ã™ã€‚Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[ç”»åƒ]** ã‚’ã¯ã˜ã‚ã€ã„ãã¤ã‹ã®Textコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[æ–‡å—列]** やループ㮠**[ç¹°ã‚Šè¿”ã—æ¡ä»¶]** ãªã©ãŒæœªè¨å®šã®ã¾ã¾æ®‹ã£ã¦ã„ã¾ã™ã€‚ã“れã‹ã‚‰ã€ä»¥ä¸‹ã®ä½œæ¥ã«å–り組ã¿ãŸã„ã¨æ€ã„ã¾ã™ã€‚ - Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[ç”»åƒ]** ã«ã€æ¡ä»¶ãƒ•ァイルã‹ã‚‰èªã¿è¾¼ã‚“ã 刺激画åƒãƒ•ァイルåã«ãƒ•ォルダåを付ã‘è¶³ã—ã¦ç›¸å¯¾ãƒ‘スを完æˆã•ã›ã‚‹å¼ã‚’入力ã™ã‚‹ã€‚ - 実験実行時ã«å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®wordã‹ã‚‰ã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã‚’å–å¾—ã—ã€instructionã‚„trialルーãƒãƒ³ã®Textコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[æ–‡å—列]** ã€ãŠã‚ˆã³reportルーãƒãƒ³ã®textReportã§æç¤ºã™ã‚‹æ•™ç¤ºæ–‡ã«çµ„ã¿è¾¼ã‚€ã€‚ - 実験実行時ã«å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®conditionã‹ã‚‰æ¡ä»¶ãƒ•ァイルåã®ç•ªå·(01ã€02)ã‚’å–å¾—ã—ã€å‰ã«exp06cndã€å¾Œã‚ã«.xlsxã‚’çµåˆã—ã¦æ¡ä»¶ãƒ•ァイルåを得る。æ¡ä»¶ãƒ•ァイルåã‚’å…¨ã¦å…¥åŠ›ã™ã‚‹æ‰‹é–“ã‚’çœã‘る。 æ–‡å—列をçµåˆã—ã¦ç”»åƒãƒ•ァイルã®ãƒ‘スや教示文を作æˆã—よㆠ-------------------------------------------------------------------- ã¾ãšã€Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[ç”»åƒ]** プãƒãƒ‘ティをè¨å®šã—ã¾ã—ょã†ã€‚ **[ç”»åƒ]** ã«ã¯èªã¿è¾¼ã‚€ç”»åƒãƒ•ァイルåを指定ã—ã¾ã™ã€‚ファイルåã¯æ¡ä»¶ãƒ•ァイルã®imageFileã¨ã„ã†ãƒ‘ラメータã‹ã‚‰èªã¿è¾¼ã¾ã‚Œã¾ã™ãŒã€å˜ã«$imageFileã¨æ›¸ãã¨ç”»åƒãƒ•ァイルãŒexp06.psyexpã¨åŒã˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚ã‚‹ã¨è¦‹ãªã•れã¦ã—ã¾ã„ã¾ã™ã€‚ãã“ã§ãƒ•ォルダåã®image/をファイルåã®å‰ã«è£œã„ãŸã„ã®ã§ã™ãŒã€$image/imageFileã¨ã‹$"image/"imageFileã¨ã‹æ›¸ã„ã¦ã‚‚エラーã«ãªã‚Šã¾ã™ã€‚ã§ã¯ã©ã†æ›¸ã‘ã°ã„ã„ã‹ã¨è¨€ã„ã¾ã™ã¨ã€+演算åを使ã„ã¾ã™ã€‚æ•°å€¤ã¨æ•°å€¤ã®é–“ã«+演算åを書ã‘ã°è¶³ã—ç®—ã«ãªã‚Šã¾ã™ãŒã€æ–‡å—åˆ—ã¨æ–‡å—列ã®é–“ã«+演算åを書ãã¨ä¸¡è€…を連çµã—ãŸæ–‡å—列ãŒå¾—られã¾ã™ã€‚今回ã®å ´åˆã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã« **[ç”»åƒ]** ã«è¨˜å…¥ã™ã‚Œã°ç›®çš„ã‚’é”æˆã§ãã¾ã™ã€‚image/ã‚’æ–‡å—列ã¨ã—ã¦èªè˜ã•ã›ã‚‹ãŸã‚ã«ã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚©ãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã¾ãŸã¯ãƒ€ãƒ–ルクォーテーションã§å›²ã‚€ã“ã¨ã‚’忘れãªã„ã§ãã ã•ã„。 :: $'image/' + imageFile trialsルーãƒãƒ³ã®faceImageã¨feedbackルーãƒãƒ³ã®faceImage_2ã®ä¸¡æ–¹ã® **[ç”»åƒ]** ã«ã“ã®å¼ã‚’入力ã—ã¦ãã ã•ã„。ãã—ã¦ã€å¿˜ã‚Œãšã«ã€Œç¹°ã‚Šè¿”ã—æ¯Žã«æ›´æ–°ã€ã‚’è¨å®šã—ã¦ãŠãã¾ã—ょã†ã€‚ 教示文ã¸ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžã®çµ„ã¿è¾¼ã¿ã‚‚åŒæ§˜ã®æ–¹æ³•ã§å®Ÿç¾ã§ãã¾ã™ã€‚expInfo['word']ã¨ã„ã†å¼ã§å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã‹ã‚‰æ–‡å—列をå–å¾—ã§ãã‚‹ã®ã§ã™ã‹ã‚‰ã€ä»¥ä¸‹ã®ã‚ˆã†ãªå¼ã‚’用ã„れã°ã€Œã“れã¯ã€Œâ—‹â—‹ã€ã§ã™ã‹ï¼Ÿã€ã¨ã„ã†æ–‡å—列ãŒå¾—られã¾ã™ã€‚ :: $'ã“れã¯ã€Œ' + expInfo['word'] + 'ã€ã§ã™ã‹ï¼Ÿ' trialルーãƒãƒ³ã‚’é–‹ã„ã¦textQuestionã® **[æ–‡å—列]** ã«ã“ã®å¼ã‚’入力ã—ã¦ãã ã•ã„。実験ã®å®Ÿè¡Œä¸ã«ã¯expInfo['word']ã®å€¤ã¯å¤‰åŒ–ã—ã¾ã›ã‚“ã®ã§ã€ã€Œç¹°ã‚Šè¿”ã—æ¯Žã«æ›´æ–°ã€ã«è¨å®šã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。ã“ã®å¼ã¯å°‘々複雑ãªã®ã§ã€+演算åã®å‰å¾Œã«ã‚¹ãƒšãƒ¼ã‚¹ã‚’入れã¦è¦‹æ˜“ãã—ã¦ã¿ã¾ã—ょã†ã€‚ :: $ 'ã“れã¯ã€Œ' + expInfo['word'] + 'ã€ã§ã™ã‹ï¼Ÿ' 三ã¤ã®æ–‡å—列を2ã¤ã®+演算ã—ã¦çµåˆã—ã¦ã„ã‚‹ã“ã¨ãŒã‚ã‹ã‚Šã¾ã™ã€‚数値演算ã«ãŠã‘ã‚‹+演算åãŒ5+3+8ã¨ã„ã†å…·åˆã«3ã¤ä»¥ä¸Šã®å€¤ã«æ¬¡ã€…ã¨é©ç”¨ã§ãã‚‹ã®ã¨åŒã˜ã“ã¨ã§ã™ã€‚ãŸã ã—ã€æ•°å€¤æ¼”ç®—ã§ã¯5+3+8ã§ã‚‚8+3+5ã§ã‚‚åŒã˜ã§ã™ãŒã€æ–‡å—列ã®+演算ã§ã¯å¸¸ã«æ¼”ç®—åã®å·¦å´ã®æ–‡å—åˆ—ã®æœ€å¾Œå°¾ã«å³å´ã®æ–‡å—列ã®å…ˆé ãŒçµåˆã•れã¾ã™ã€‚ æœ€å¾Œã®æ•™ç¤ºã‚‚åŒæ§˜ã«è¨å®šã—ã¦ã—ã¾ã„ã¾ã—ょã†ã€‚reportルーãƒãƒ³ã‚’é–‹ã„ã¦ã€textReportã® **[æ–‡å—列]** ã«ä»¥ä¸‹ã®å¼ã‚’入力ã—ã¦ãã ã•ã„。 **ç´™é¢ã®éƒ½åˆä¸Š2行ã«ãªã£ã¦ã„ã¾ã™ãŒã€å…¥åŠ›ã™ã‚‹æ™‚ã¯é€”ä¸ã§æ”¹è¡Œã›ãšã«1行ã§å…¥åŠ›ã—ã¦ãã ã•ã„。** :: $'「' + expInfo['word'] + 'ã€ã«ã‚ã¦ã¯ã¾ã‚‹ç”»åƒã®æ¡ä»¶ã‚’考ãˆã¦ã€ 実験者ã«å£é ã§ç”ãˆã¦ãã ã•ã„。 ç¶šã„ã¦instructionルーãƒãƒ³ã®textInstã® **[æ–‡å—列]** ã§ã™ãŒã€ã“ã“ã¯å°‘々解説ãŒå¿…è¦ã§ã™ã€‚目標ã¨ã—ã¦ã€ä»¥ä¸‹ã®ã‚ˆã†ãªè¤‡æ•°è¡Œã«ã‚ãŸã‚‹æ•™ç¤ºæ–‡ã‚’ã²ã¨ã¤ã®Textコンãƒãƒ¼ãƒãƒ³ãƒˆã§è¡¨ç¤ºã™ã‚‹ã‚‚ã®ã¨ã—ã¾ã™ã€‚â—‹â—‹ã«ã¯å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®wordã‹ã‚‰å–å¾—ã—ãŸæ–‡å—列ãŒå…¥ã‚‹ã‚‚ã®ã¨ã—ã¾ã™ã€‚ :: 「○○ã€ã¯äººã®é¡”を形容ã™ã‚‹è¨€è‘‰ã§ã™ã€‚ æç¤ºã•れãŸé¡ã®çµµãŒå½“ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€ 当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„。 â—‹â—‹ã«ã‚ãŸã‚‹éƒ¨åˆ†ã‚’expInfo['word']ã«ã—ã¦å‰å¾Œã‚’ + ã§ã¤ãªã’ã°ã‚ˆã„ã ã‘ã®ã‚ˆã†ã«æ€ã‚れるã‹ã‚‚ã—れã¾ã›ã‚“。ã—ã‹ã—実際ã«è©¦ã—ã¦ã¿ã‚‹ã¨ã€ :numref:`fig-string-error` ã®ã‚ˆã†ã«Builderã«ã€Œæ§‹æ–‡ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚‹ã€ã¨æ€’られã¦OKボタンをクリックã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。 .. _fig-string-error: .. figure:: fig06/string-error.png :width: 80% 改行ãŒã‚る文㨠$ã®æŒ‡å®šã¯ä¸¡ç«‹ã—ãªã„ :numref:`第%sç« <chapter-draw-basic-stimuli>` ã§è¿°ã¹ãŸã¨ãŠã‚Šã€Textコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[æ–‡å—列]** ã«ã¯æ”¹è¡Œã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ãれãªã®ã«ãªãœ :numref:`fig-string-error` ã¯ã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦ã—ã¾ã†ã®ã§ã—ょã†ã‹ã€‚ã“ã®å•題ã®éµã¯ã€Builder㌠**[æ–‡å—列]** ã«å…¥åŠ›ã•れã¦ã„る値をã©ã†è§£é‡ˆã™ã‚‹ã‹ã«ã‚りã¾ã™ã€‚ **[剿™¯è‰²]** ã®è¨å®šã‚’æ€ã„出ã—ã¦ãã ã•ã„(:numref:`第%sç« <chapter-basic-experiment>`)。 **[剿™¯è‰²]** ã«ã¯$ãŒä»˜ã„ã¦ã„ãªã„ã‹ã‚‰ã€redã¨æ›¸ã‘ã°redã¨ã„ã†æ–‡å—列ãŒå…¥åŠ›ã•れã¦ã„ã‚‹ã¨Builderã¯åˆ¤æ–ã™ã‚‹ã®ã§ã—ãŸã€‚一方ã€$redã¨æ›¸ã‘ã°ã€å¤‰æ•°redã«æ ¼ç´ã•れãŸå€¤ãŒæŒ‡å®šã•れã¦ã„ã‚‹ã¨Builderã¯åˆ¤æ–ã™ã‚‹ã¨è¿°ã¹ã¾ã—ãŸã€‚実ã¯å¾Œè€…ã¯ä¸æ£ç¢ºãªè¨˜è¿°ã§ã€æ£ç¢ºã«ã¯$ãŒæ›¸ã‹ã‚Œã¦ã„ã‚‹ã¨ã€Builderã¯$を除ã„ãŸéƒ¨åˆ†ãŒPythonã®å¼ã§ã‚る判æ–ã™ã‚‹ã®ã§ã™ã€‚$redã‹ã‚‰$を除ãã¨redãŒæ®‹ã‚Šã€redã¨ã„ã†å¼ã‚’「評価ã€ã™ã‚‹ã¨ã€å¤‰æ•°redã«æ ¼ç´ã•れãŸå€¤ãŒå¾—られるã®ã§ã™ã€‚ã“ã“ã§è¨€ã†ã€Œè©•価ã€ã¨ã¯ã€å¼ã®ä¸ã«+ãªã©ã®æ¼”ç®—åãŒå«ã¾ã‚Œã¦ã„ãŸã‚‰ãã®è¨ˆç®—ã‚’ã—ãŸã‚Šã€é–¢æ•°ãŒå«ã¾ã‚Œã¦ã„ãŸã‚‰ãã®æˆ»ã‚Šå€¤ã‚’計算ã—ãŸã‚Šã¨ã„ã£ãŸä½œæ¥ã‚’行ã£ã¦ã€æœ€çµ‚çš„ãªå¼ã®è¨ˆç®—çµæžœã‚’å¾—ã‚‹ã“ã¨ã§ã™ã€‚ã“ã®ã€Œè©•価ã€ã¨ã„ã†è€ƒãˆæ–¹ã¯Builderã‚’ç†è§£ã™ã‚‹ä¸Šã§ã¨ã¦ã‚‚大切ã§ã™ã€‚例ãˆã° :numref:`第%sç« <chapter-python-code-basic>` ã§å‡ºã¦ããŸæ™‚刻ã«å¿œã˜ã¦è‰²ã‚’変化ã•ã›ã‚‹å¼ $[t/6.0, t/6.0, t/6.0] ã§ã¯ã€t/6.0ãŒè©•価ã•れã¦tã‚’6.0ã§å‰²ã£ãŸå€¤ã«ç½®ãæ›ãˆã‚‰ã‚Œã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€RGB値ã¨ã—ã¦è§£é‡ˆã§ãるリストã¨ãªã‚‹ã®ã§ã™ã€‚ ã“れをè¸ã¾ãˆã¦ :numref:`fig-string-error` ã«æˆ»ã‚Šã¾ã™ã€‚ã“ã“ã«ã¯$ãŒå…¥åŠ›ã•れã¦ã„ã‚‹ã®ã§Builderã¯ã“れをPythonã®å¼ã¨è¦‹ãªã—ã¾ã™ã€‚Pythonã®å¼ã¨ã—ã¦ã“れを解釈ã™ã‚‹ã¨ã€1è¡Œç›®ã®æœ€å¾ŒãŒæ–‡å—列ã®é€”ä¸ã§çµ‚ã‚ã£ã¦ã—ã¾ã£ã¦ã„ã¾ã™ã€‚ã“ã®ã‚ˆã†ãªæ›¸ãæ–¹ã¯Pythonã®æ–‡æ³•ã§è¨±ã•れã¦ã„ã¾ã›ã‚“ã€‚åŒæ§˜ã«2行目ã€3行目も文å—列ãŒé©åˆ‡ã«ã‚¯ã‚©ãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã§å›²ã¾ã‚Œã¦ã„ã¾ã›ã‚“ã®ã§Pythonã®æ–‡æ³•を満ãŸã—ã¦ã„ã¾ã›ã‚“。ã“れã§ã¯Builderã«æ‹’å¦ã•れるã®ã¯å½“ç„¶ã§ã™ã€‚ ã§ã¯ç›®æŒ‡ã—ã¦ã„る出力を得るã«ã¯ã©ã†ã™ã‚Œã°ã‚ˆã„ã§ã—ょã†ã‹ã€‚ãµãŸã¤æ–¹æ³•ãŒã‚りã¾ã™ãŒã€ç°¡å˜ãªæ–¹æ³•を紹介ã—ã¾ã—ょã†ã€‚Pythonã§ã¯ã€ã‚·ãƒ³ã‚°ãƒ«ã‚¯ã‚©ãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã¾ãŸã¯ãƒ€ãƒ–ルクォーテーションを3個連ãã‚‹ã“ã¨ã«ã‚ˆã‚Šã€è¤‡æ•°è¡Œã«ã‚ãŸã‚‹æ–‡å—列を表記ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例ãˆã°ä»¥ä¸‹ã®ã‚ˆã†ã«æ›¸ãã¨2行ã«è¡¨ç¤ºã•れã¾ã™ã€‚ .. code-block:: python '''å¿…è¦ã«å¿œã˜ã¦ä¼‘憩をå–ã£ã¦ãã ã•ã„。 準備ãŒã§ããŸã‚‰ã‚¹ãƒšãƒ¼ã‚¹ã‚ーを押ã—ã¦å®Ÿé¨“ã‚’å†é–‹ã—ã¦ãã ã•ã„。''' ã“ã®ãƒ†ã‚¯ãƒ‹ãƒƒã‚¯ã‚’使ã†ã¨ã€textInstã® **[æ–‡å—列]** ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«æ›¸ãã“ã¨ãŒã§ãã¾ã™ã€‚ .. code-block:: python '「'+expInfo['word']+'''ã€ã¯äººã®é¡”を形容ã™ã‚‹è¨€è‘‰ã§ã™ã€‚ æç¤ºã•れãŸé¡ã®çµµãŒå½“ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€ 当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„。''' 以上㧠**[æ–‡å—列]** ã«$記å·ã‚’使ã£ã¦Pythonã®å¼ã‚’記述ã—ãŸå ´åˆã§ã‚‚複数行ã«ã‚ãŸã‚‹æ–‡å—列を表示ã§ãã¾ã—ãŸã€‚ã“ã®æ–¹æ³•を知ã£ã¦ã„れã°Builderを使ã†åˆ†ã«ã¯å›°ã‚‹ã“ã¨ã¯ãªã„ã¨æ€ã„ã¾ã™ãŒã€ä»Šå¾Œã•らã«ã‚¹ãƒ†ãƒƒãƒ—アップã™ã‚‹ã“ã¨ã‚’考ãˆã‚‹ã®ãªã‚‰ã°ã‚‚ã†ã²ã¨ã¤ã®æ–¹æ³•も知ã£ã¦ãŠãã¨å½¹ã«ç«‹ã¤ã‹ã‚‚ã—れã¾ã›ã‚“。「:numref:`{number}:{name} <topic-newline-code>` ã€ã«è§£èª¬ã—ã¦ãŠãã¾ã™ã®ã§ã€èˆˆå‘³ãŒã‚る人ã¯èªã‚“ã§ãã ã•ã„。 最後ã«å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®conditionã¸å…¥åŠ›ã•れãŸå€¤ã‹ã‚‰æ¡ä»¶ãƒ•ァイルåã‚’å¾—ã‚‹å•é¡ŒãŒæ®‹ã£ã¦ã„ã¾ã™ãŒã€ã“ã“ã¾ã§ã®è§£èª¬ã‚’ç†è§£ã—ã¦ã„れã°ã‚‚ã†ã“れ以上ã®è§£èª¬ã¯ä¸è¦ã§ã—ょã†ã€‚trialsループã®è¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’é–‹ã〠**[ç¹°ã‚Šè¿”ã—æ¡ä»¶]** ã«ä»¥ä¸‹ã®å¼ã‚’入力ã—ã¦ãã ã•ã„。ã“れã§01ã¨ã ã‘入力ã™ã‚Œã°exp06cnd01.xlsxを指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ :: $'exp06cnd' + expInfo['conditionFile'] + '.xlsx' ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ - è¤‡æ•°ã®æ–‡å—列をçµåˆã—ãŸæ–‡å—列を得るå¼ã‚’書ãã“ã¨ãŒã§ãる。 - æ¡ä»¶ãƒ•ã‚¡ã‚¤ãƒ«ã‚„å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã‹ã‚‰èªã¿è¾¼ã‚“ã æ–‡å—列ãŒçµ„ã¿è¾¼ã¾ã‚ŒãŸæ–‡ã‚’æç¤ºã™ã‚‹ã“ã¨ãŒã§ãる。 - Textコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[æ–‡å—列]** ã«Pythonã®å¼ã‚’書ã„ãŸæ™‚ã«ã€è¡¨ç¤ºã™ã‚‹æ–‡å—列を改行ã•ã›ã‚‹ã“ã¨ãŒã§ãる。 Pythonã«ãŠã‘る比較演算åã€è«–ç†æ¼”ç®—åã€æ¡ä»¶åˆ†å²ã‚’å¦ã¼ã† -------------------------------------------------------------------------------- ã“ã“ã¾ã§ã®ä½œæ¥ã§ã¨ã‚Šã‚ãˆãšå®Ÿé¨“を実行ã§ãã‚‹ã¨ã“ã‚ã¾ã§ãŸã©ã‚Šç€ãã¾ã—ãŸãŒã€æœ€å¾Œã®é›£é¡Œã§ã‚る「判æ–ã®æ£èª¤ã‚’フィードãƒãƒƒã‚¯ã™ã‚‹ã€ãŒæ®‹ã£ã¦ã„ã¾ã™ã€‚フィードãƒãƒƒã‚¯ã®æç¤ºã¯feedbackルーãƒãƒ³ã®textFeedbackを用ã„ã¦è¡Œã„ã¾ã™ã€‚trialルーãƒãƒ³ã§ã®åˆ¤æ–ãŒæ£ã—ã‘れã°textFeedbackã® **[æ–‡å—列]** ã«ã€Œæ£è§£ã€ã€èª¤ã£ã¦ã„れã°ã€Œä¸æ£è§£ã€ã¨æç¤ºã—ãŸã„ã®ã§ã™ãŒã€å½“然実験å‚åŠ è€…ãŒæ£è§£ã™ã‚‹ã‹å¦ã‹ã¯å®Ÿé¨“を実行ã™ã‚‹å‰ã«ã¯ã‚ã‹ã‚‰ãªã„ã®ã§ã€æ¡ä»¶ãƒ•ァイルã§ã¯å®Ÿç¾ã§ãã¾ã›ã‚“。実ã¯ã“ã®ç¨®ã®å‚åŠ è€…ã®å応ã«å¿œã˜ãŸåˆºæ¿€ã‚„課題ã®å¤‰åŒ–ã¯BuilderãŒè‹¦æ‰‹ã¨ã™ã‚‹ã¨ã“ã‚ã§ã€ç¾çжã®Builderã§ã¯ã©ã†ã—ã¦ã‚‚Pythonã®æ–‡æ³•知è˜ã€Pythonコードã®è¨˜è¿°ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚ ã•ã¦ã€ã“れã‹ã‚‰ã€Œåå¿œãŒæ£ã—ã‘れã°ã€Žæ£è§£ã€ã€èª¤ã£ã¦ã„れã°ã€Žä¸æ£è§£ã€ã¨æç¤ºã™ã‚‹ã€ã¨ã„ã†ä½œæ¥ã‚’Pythonã®ã‚³ãƒ¼ãƒ‰ã¸å¤‰æ›ã™ã‚‹ã‚ã‘ã§ã™ãŒã€ã“ã®ã‚ˆã†ã«æ¡ä»¶ã«å¿œã˜ã¦è¡Œã†å‡¦ç†ã‚’変更ã™ã‚‹ã“ã¨ã‚’æ¡ä»¶åˆ†å²ã¨è¨€ã„ã¾ã™ã€‚æ¡ä»¶åˆ†å²ã¯ :: ã‚‚ã—AãŒæˆã‚Šç«‹ã¤ãªã‚‰ã°Bを行ã†ã€‚ã•ã‚‚ãªã‘れã°Cã‚’ãŠã“ãªã†ã€‚ ã¨ã„ã†æ–‡ã§è¡¨ç¾ã§ãã¾ã™ã€‚一般ã«ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã§ã¯ã€Œæˆã‚Šç«‹ã¤ã€ã“ã¨ã‚’「真(True)ã§ã‚ã‚‹ã€ã¨è¨€ã„ã€æˆã‚Šç«‹ãŸãªã„ã“ã¨ã‚’「å½(False)ã§ã‚ã‚‹ã€ã¨è¨€ã„ã¾ã™ã€‚ã“ã®ç”¨èªžã‚’用ã„ã‚‹ã¨ã€å…ˆã®æ–‡ã¯ :: AãŒçœŸã§ã‚れã°Bを行ã†ã€‚å½ã§ã‚れã°Cã‚’ãŠã“ãªã†ã€‚ ã¨æ›¸ãç›´ã™ã“ã¨ãŒã§ãã¾ã™ã€‚Pythonã§ã¯ã€ã“ã®æ–‡ã‚’if, elseã¨ã„ã†èªžã‚’使ã£ã¦ :numref:`fig-if-else-statement` ã®ã‚ˆã†ã«æ›¸ãã¾ã™ã€‚ifã¨elseã®å¾Œã‚ã«ã‚³ãƒãƒ³( : )ãŒã‚る点ã¨ã€Bã€CãŒifã‚„elseより「å—下ã’ã€ã•れã¦ã„ã‚‹(行é ã«ç©ºç™½æ–‡å—ãŒã‚ã‚‹)ç‚¹ã«æ³¨æ„ã—ã¦ãã ã•ã„。空白文å—を何文å—入れるã‹ã«ã¤ã„ã¦ã®Pythonã§ã®æ–‡æ³•上ã®å–り決ã‚ã¯å°‘々複雑ãªã®ã§ã™ãŒã€Python Enhancement Proposals (PEP)ã¨å‘¼ã°ã‚Œã‚‹Pythonã®å…¬å¼æ–‡æ›¸ã«ãŠã„ã¦ã€Œå—下ã’ã«ã¯åŠè§’スペース4æ–‡å—を用ã„ã‚‹ã€ã“ã¨ãŒæŽ¨å¥¨ã•れã¦ã„ã¾ã™ã®ã§ã€ã“ã®æ–‡æ›¸ã§ã¯åŠè§’スペース4æ–‡å—ã§çµ±ä¸€ã—ã¾ã™ã€‚:numref:`第%sç« <chapter-quit-routine>` ã§è©³ã—ã触れã¾ã™ãŒã€Pythonã®æ–‡æ³•ã§ã¯å—下ã’ãŒé‡è¦ãªæ„味をæŒã£ã¦ã„ã¾ã™ã€‚ .. _fig-if-else-statement: .. figure:: fig06/if-else-statement.png :width: 80% æ¡ä»¶åˆ†å²(ifæ–‡)ã®æ›¸å¼ã€‚å³ã¯å®Ÿéš›ã®ã‚³ãƒ¼ãƒ‰ã®ä¾‹ã§ã™ã€‚ åå¿œãŒæ£ã—ã‘れã°ã€Žæ£è§£ã€ã€èª¤ã£ã¦ã„れã°ã€Žä¸æ£è§£ã€ã¨æç¤ºã™ã‚‹ã€ã¨ã„ã†ç›®æ¨™ã‚’ã“ã®ifæ–‡ã®å½¢å¼ã«å½“ã¦ã¯ã‚ã‚‹ã“ã¨ãŒã§ãれã°ç›®çš„ã¯é”æˆã•れã¾ã™ãŒã€ã©ã†å½“ã¦ã¯ã‚ãŸã‚‰ã‚ˆã„ã§ã—ょã†ã‹ã€‚ã“ã®ç›®æ¨™ã®ã¾ã¾ã§ã¯PCã«ã¨ã£ã¦ã¯ã¾ã 抽象的ã™ãŽã¾ã™ã®ã§ã€ã‚‚ã†å°‘ã—æ›¸ãç›´ã—ã¦ã¿ã¾ã—ょã†ã€‚ :: ・åå¿œãŒæ£ã—ã‘れ㰠↓ ・「押ã•れãŸã‚ーã®åå‰ãŒå¤‰æ•°correctAnsã®å€¤ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã€ãŒçœŸã§ã‚れ㰠「押ã•れãŸã‚ーã®åå‰ã€ã‚’Pythonã®ã‚³ãƒ¼ãƒ‰ã¨ã—ã¦è¡¨ç¾ã™ã‚‹æ–¹æ³•ã¯ã¾ã 解説ã—ã¦ã„ãªã„ã®ã§ã€ã¨ã‚Šã‚ãˆãšå¤‰æ•°responseã«æŠ¼ã•れãŸã‚ーã®åå‰ãŒæ ¼ç´ã•れã¦ã„ã‚‹ã‚‚ã®ã¨ã—ã¦æ›¸ãæ›ãˆã‚’進ã‚ã¾ã™ã¨ã€ä»¥ä¸‹ã®æ–‡ãŒå¾—られã¾ã™ã€‚ :: ・「押ã•れãŸã‚ーã®åå‰ãŒå¤‰æ•°correctAnsã®å€¤ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã€ãŒçœŸã§ã‚れ㰠↓ ・「変数responseã®å€¤ãŒå¤‰æ•°correctAnsã®å€¤ã¨ä¸€è‡´ã—ã¦ã„ã‚‹ã€ãŒçœŸã§ã‚れ㰠続ã„ã¦ã€Œã€Žæ£è§£ã€ã¨æç¤ºã™ã‚‹ã€ã¨ã„ã†éƒ¨åˆ†ã«ã¤ã„ã¦ã‚‚書ãç›´ã—ã¦ã¿ã¾ã—ょã†ã€‚æç¤ºã«ã¯Textコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’使ã†ã®ã§ã™ã‹ã‚‰ã€ä»¥ä¸‹ã®ã‚ˆã†ã«æ›¸ãç›´ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ :: ・『æ£è§£ã€ã¨æç¤ºã™ã‚‹ ↓ ・Textコンãƒãƒ¼ãƒãƒ³ãƒˆã®ã€Œæ–‡å—列ã€ã«'æ£è§£'ã¨è¨å®šã™ã‚‹ :numref:`第%sç« <chapter-basic-experiment>` 以é™ã®è§£èª¬ã§ã¯ã€Builderã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ãƒ—ãƒãƒ‘ティ値を実行ä¸ã«å¤‰æ›´ã™ã‚‹æ™‚ã«ã¯å¤‰æ•°ã‚’用ã„ã¦ãã¾ã—ãŸã€‚今回もã“ã®æ–¹æ³•ãŒæœ‰åйã§ã—ょã†ã€‚feedbackMsgã¨ã„ã†å¤‰æ•°ã‚’用ã„ã‚‹ã“ã¨ã«ã—ã¾ã—ょã†ã€‚ :: ・Textコンãƒãƒ¼ãƒãƒ³ãƒˆã®ã€Œæ–‡å—列ã€ã«'æ£è§£'ã¨è¨å®šã™ã‚‹ ↓ ・変数feedbackMsgã«'æ£è§£'を代入ã™ã‚‹ ã€Œã€Žä¸æ£è§£ã€ã¨æç¤ºã™ã‚‹ã€ã¯ã€Œã€Žæ£è§£ã€ã¨æç¤ºã™ã‚‹ã€ã¨åŒæ§˜ã§ã™ã®ã§çœç•¥ã—ã¾ã™ã€‚ã“ã“ã¾ã§æ›¸ãç›´ã™ã“ã¨ãŒã§ãれã°ã€Pythonã®ã‚³ãƒ¼ãƒ‰ã¸å¤‰æ›ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ :numref:`fig-if-else-statement` ã®å³å´ãŒå®Ÿéš›ã«Pythonã®ã‚³ãƒ¼ãƒ‰ã«ç½®ãæ›ãˆã¦ã¿ãŸçµæžœã§ã™ã€‚ :numref:`fig-if-else-statement` å·¦å´ã¨è¦‹æ¯”ã¹ã¦ã€ :numref:`fig-if-else-statement` å·¦å´ã®Aã€Bã€Cã«å¯¾å¿œã™ã‚‹å³å´ã®ã‚³ãƒ¼ãƒ‰ã‚’見ã¦ãã ã•ã„。å³å´ã®ã‚³ãƒ¼ãƒ‰ã®æ„味ãŒä½•ã¨ãªã分ã‹ã‚‹ã¨æ€ã†ã®ã§ã™ãŒã€ã“ã“ã§ã€Œãªã‚“ã¨ãªãã€ã§æ¸ˆã¾ã›ã‚‹ã¨å¾Œã§èº“ãã®ã§ã—ã£ã‹ã‚Šç†è§£ã—ã¦ãŠãã¾ã—ょã†ã€‚ ã¾ãšifã®å¾Œã«ç¶šãresponse == correctAnsã§ã™ãŒã€responseã¨correctAnsã¯ã™ã§ã«ä½•度も出ã¦ãã¦ã„ã‚‹Pythonã®å¤‰æ•°ã§ã‚りã€ãã®ä¸ã«å€¤ãŒä¿æŒã•れã¦ã„ã¾ã™ã€‚両者ã®é–“ã«ã‚ã‚‹ ==ã¨ã„ã†è¨˜å·ã§ã™ãŒã€ã“ã‚Œã¯æ¯”較演算åã¨å‘¼ã°ã‚Œã‚‹æ¼”ç®—åã§ã™ã€‚==ã®å‰å¾Œã«ç½®ã‹ã‚ŒãŸå€¤ã‚’比較ã—ã¦ã€ä¸¡è€…ãŒä¸€è‡´ã—ã¦ã„れã°Trueã€ä¸€è‡´ã—ã¦ã„ãªã‘れã°Falseã¨ã„ã†ã€Œå€¤ã€ã‚’è¿”ã—ã¾ã™ã€‚Trueã‚„Falseを「値ã€ã¨è¨€ã‚れるã¨å¥‡å¦™ã«æ„Ÿã˜ã‚‹ã‹ã‚‚知れã¾ã›ã‚“ãŒã€ãã†ã„ã†ã‚‚ã®ã ã¨æ€ã£ã¦ãã ã•ã„。10+5を評価ã™ã‚‹ã¨15ã¨ã„ã†å€¤ãŒå¾—られるã®ã¨åŒæ§˜ã«ã€æ¯”較演算åã‚’å«ã‚€å¼ã‚’評価ã™ã‚‹ã¨Trueã‚„Falseã¨ã„ã†ã€Œå€¤ã€ãŒå¾—られるã®ã§ã™(æ£ç¢ºã«çŸ¥ã‚ŠãŸã„æ–¹ã¯ã€Œ :numref:`{number}:{name} <topic-true-false-value>` ã€å‚ç…§)。比較演算åã«ã¯==ã®ä»–ã«ã‚‚ :numref:`tbl-comparison-operator` ã«ç¤ºã™ã‚‚ã®ãŒã‚りã¾ã™ã€‚表ä¸ã®Xã¨YãŒä¸¡æ–¹ã¨ã‚‚数値ã§ã‚ã‚‹å ´åˆã¯ç‰¹ã«é›£ã—ã„ã“ã¨ã¯ãªã„ã¨æ€ã†ã®ã§ã™ãŒã€ã©ã¡ã‚‰ã‹ä¸€æ–¹ã«æ–‡å—列やリストãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã¯è©±ãŒåބ介ã§ã™ã€‚詳ã—ã知りãŸã„æ–¹ã¯ã€Œ :numref:`{number}:{name} <topic-compare-sequences>` ã€ã‚’èªã‚“ã§ã„ãŸã ããŸã„ã®ã§ã™ãŒã€æ…£ã‚Œãªã„ã†ã¡ã¯ä»¥ä¸‹ã®ç‚¹ã‚’守ã£ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ - æ–‡å—åˆ—ã‚„ã‚·ãƒ¼ã‚±ãƒ³ã‚¹åž‹ã®æ¯”較ã®å ´åˆã¯==(ç‰ã—ã„)ã¨!=(ç‰ã—ããªã„)以外使用ã—ãªã„ - ç•°ãªã‚‹ç¨®é¡žã®ãƒ‡ãƒ¼ã‚¿åž‹ã®æ¯”較(æ•°å€¤ã¨æ–‡å—åˆ—ã®æ¯”較)ã¯ã—ãªã„ .. _tbl-comparison-operator: .. csv-table:: Pythonã®æ¯”較演算å X == Y, Xã¨Yã¯ç‰ã—ã„, X != Y, Xã¨Yã¯ç‰ã—ããªã„ X < Y, Xã¯Yよりå°ã•ã„, X <= Y, Xã¯Y以下 X > Y, Xã¯Yより大ãã„, X >= Y, Xã¯Y以上 比較演算åã¯ã€äºŒã¤ä»¥ä¸ŠåŒæ™‚ã«ä½¿ã†ã“ã¨ã‚‚ã§ãã¾ã™ã€‚例ãˆã°ä»¥ä¸‹ã®ä¾‹ã§ã¯xãŒ1以上ã§5æœªæº€ã®æ™‚ã«Trueã€ãã‚Œä»¥å¤–ã®æ™‚ã¯Falseã«ãªã‚Šã¾ã™ã€‚数値ãŒã‚る範囲ã«åŽã¾ã£ã¦ã„ã‚‹ã‹å¦ã‹ã§å‡¦ç†ã‚’分å²ã•ã›ã‚‹æ™‚ã«ä¾¿åˆ©ã§ã™ã€‚ .. code-block:: python 1 <= x < 5 比較演算åã«ã¤ã„ã¦å¦ã‚“ã ã¤ã„ã§ã«ã€ã‚‚ã†ã²ã¨ã¤æ¼”ç®—åã‚’å¦ã‚“ã§ãŠãã¾ã—ょã†ã€‚「刺激ã®ä½ç½®ãŒã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã®å·¦ä¸Šã ã£ãŸå ´åˆã€ã¨ã„ã£ãŸæ¡ä»¶ã§åˆ†å²ã•ã›ãŸã„å ´åˆã«ã¯ã€X座標ãŒè² ã®å€¤ã§ã‚ã‚‹ã“ã¨ã€Yåº§æ¨™ãŒæ£ã®å€¤ã§ã‚ã‚‹ã“ã¨ã®äºŒã¤ã®æ¡ä»¶ã‚’åŒæ™‚ã«æº€ãŸã™å¿…è¦ãŒã‚りã¾ã™ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã¯è«–ç†æ¼”ç®—å( :numref:`tbl-logical-operator` )を用ã„ã¾ã™ã€‚X座標ã¨Y座標ã®å€¤ãŒãれãžã‚ŒXã€Yã¨ã„ã†å¤‰æ•°ã«æ ¼ç´ã•れã¦ã„ã‚‹ã®ã§ã‚れã°ã€ã“ã®æ¡ä»¶ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«è¨˜è¿°ã§ãã¾ã™ã€‚ .. code-block:: python X<0 and Y>0 逆ã«ã€ã€Œåˆºæ¿€ã®ä½ç½®ãŒã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã®å·¦ä¸Šã§ã¯ãªã‹ã£ãŸå ´åˆã€ã¨ã†ã„æ¡ä»¶ã‚’指定ã—ãŸã„å ´åˆã¯ã€X座標ãŒ0以上ã€ã¾ãŸã¯Y座標ãŒ0以下ã®ã©ã¡ã‚‰ã‹ä¸€æ–¹ãŒæˆç«‹ã™ã‚Œã°ã„ã„ã®ã§ã™ã‹ã‚‰ã€ä»¥ä¸‹ã®ã‚ˆã†ã«è¨˜è¿°ã§ãã¾ã™ã€‚ .. code-block:: python X>=0 or Y<=0 å¦å®šæ¼”ç®—åを使ã†ã¨ä»¥ä¸‹ã®ã‚ˆã†ã«æ›¸ãã“ã¨ã‚‚ã§ãã¾ã™ã€‚演算åã‚’é©ç”¨ã™ã‚‹é †åºã‚’指定ã™ã‚‹ãŸã‚ã«( )を使用ã—ã¦ã„ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。ã¾ãš( )ã®ä¸ãŒè©•価ã•れã¦ã€ãã®å¾Œã«notãŒé©ç”¨ã•れã¾ã™ã€‚ .. code-block:: python not ( X<0 and Y>0 ) .. _tbl-logical-operator: .. csv-table:: Pythonã«ãŠã‘ã‚‹è«–ç†æ¼”ç®—å :widths: 20, 30, 50 X and Y, Xã‹ã¤Y (è«–ç†ç©), Xã¨YãŒã¨ã‚‚ã«Trueã®æ™‚ã«True X or Y, Xã¾ãŸã¯Y (è«–ç†å’Œ), Xã¨Yã®ã„ãšã‚Œã‹ãŒTrueã®æ™‚ã«True not X, Xã®å¦å®š, XãŒTrueãªã‚‰ã°Falseã€Falseãªã‚‰ã°True 比較演算åã¨è«–ç†æ¼”ç®—åã«ã¤ã„ã¦ã®è§£èª¬ã¯ã“ã®ãらã„ã«ã—ã¦ã€ 図6.8 ã®Bã¨Cã«å¯¾å¿œã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚‚見ã¦ãŠãã¾ã—ょã†(#以下ã®éƒ¨åˆ†ã¯Pythonã«ã‚ˆã£ã¦ç„¡è¦–ã•れるã®ã§ã‚³ãƒ¡ãƒ³ãƒˆã‚’æ›¸ãæ™‚ã«ç”¨ã„られã¾ã™)。 .. code-block:: python # Bã«ã‚ãŸã‚‹ã‚³ãƒ¼ãƒ‰ feedbackMsg = 'æ£è§£' # Cã«ã‚ãŸã‚‹ã‚³ãƒ¼ãƒ‰ feedbackMsg = '䏿£è§£' ã™ã§ã«å‰ç« ã§ä»£å…¥æ¼”ç®—åã‚’å¦ã‚“ã 皆ã•ã‚“ã«ã¯ã€ã‚‚ã†ãŠã‚ã‹ã‚Šã§ã™ã。feedbackMsgã¨ã„ã†å¤‰æ•°ã«è¡¨ç¤ºã—ãŸã„æ–‡å—列を代入ã—ã¦ã„ã¾ã™ã€‚ ã“れã§å‚åŠ è€…ã®å応ã«å¿œã˜ã¦è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’変更ã™ã‚‹ãŸã‚ã®Pythonã®ã‚³ãƒ¼ãƒ‰ã®æ›¸ãæ–¹ãŒã‚ã‹ã‚Šã¾ã—ãŸã€‚残ã•れãŸå•題ã¯ã€ã“ã®ç¯€ã®è§£èª¬ã§ã¯ã€Œå¤‰æ•°responseã«æ ¼ç´ã•れã¦ã„ã‚‹ã‚‚ã®ã¨ã™ã‚‹ã€ã¨ä»®å®šã—ãŸå応ã‚ーåã‚’ã©ã†ã‚„ã£ã¦å–å¾—ã™ã‚‹ã‹ã§ã™ã€‚ã“ã“ã§ã¾ãŸæ–°ãŸãªæ¦‚念ãŒç™»å ´ã™ã‚‹ã®ã§ç¯€ã‚’改ã‚ã¾ã—ょã†ã€‚ ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ - æ¡ä»¶ã«å¿œã˜ã¦å‡¦ç†ã‚’分å²ã•ã›ã‚‹Pythonコードを書ãã“ã¨ãŒã§ãる。 - 数値ã®å¤§å°ã‚„一致・ä¸ä¸€è‡´ã«å¿œã˜ã¦å‡¦ç†ã‚’分å²ã•ã›ã‚‹ã“ã¨ãŒã§ãる。 - æ–‡å—列ã®ä¸€è‡´ãƒ»ä¸ä¸€è‡´ã«å¿œã˜ã¦å‡¦ç†ã‚’分å²ã•ã›ã‚‹ã“ã¨ãŒã§ãる。 - Pythonã®æ¯”較演算åã‚’6ã¤æŒ™ã’ã¦ãれらã®åƒãを説明ã™ã‚‹ã“ã¨ãŒã§ãる。 - Pythonã®è«–ç†æ¼”ç®—åã‚’3ã¤æŒ™ã’ã¦ãれらã®åƒãを説明ã™ã‚‹ã“ã¨ãŒã§ãる。 オブジェクトã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚’利用ã—ã¦å応ã«ãƒ•ィードãƒãƒƒã‚¯ã—よㆠ------------------------------------------------------------------------------------------- ã„よã„よã“ã®ç« ã®å®Ÿé¨“ã®å®ŒæˆãŒè¿‘ã¥ã„ã¦ãã¾ã—ãŸã€‚å応ã‚ーåを得るコードã§ã™ãŒã€ã“れã¯çŸ¥ã£ã¦ã„ãªã„ã¨ã„ãら考ãˆã¦ã‚‚ã‚ã‹ã‚‰ãªã„ã“ã¨ãªã®ã§ã€è§£ç”ã‹ã‚‰å§‹ã‚ã¾ã™ã€‚key_choiceã¨ã„ã†åå‰ã®Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã‹ã‚‰å応ã‚ーåã‚’å¾—ã‚‹ã«ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«æ›¸ãã¾ã™ã€‚ .. code-block:: python key_choice.keys プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã®çµŒé¨“ãŒãªã„æ–¹ã«ã¯é›£ã—ã„話ãŒç¶šãã¾ã™ãŒã€ã“ã®éƒ¨åˆ†ã‚’ç†è§£ã—ã¦ã„ãªã„ã¨æ¬¡ç« 以é™ã®å†…容をç†è§£ã§ãã¾ã›ã‚“。ã˜ã£ãり解説ã—ã¾ã™ã®ã§ã€é ‘å¼µã£ã¦ã¤ã„ã¦ãã¦ãã ã•ã„。 ã“ã®key_choice.keysã¨ã„ã†å¼ã§ã™ãŒã€Pythonã®æ–‡æ³•ã§ã¯åå‰ã«ãƒ”リオドをå«ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“ã®ã§ã€key_choiceã¨keysã¨ã„ã†åå‰ãŒãƒ”リオドã§çµã°ã‚Œã¦ã„ã‚‹ã¯ãšã§ã™ã€‚key_choiceã¨ã„ã†ã®ã¯ãƒ«ãƒ¼ãƒãƒ³ã«é…ç½®ã—ã¦ã„ã‚‹Keyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã¨åŒã˜åå‰ãªã®ã§ã€‚æã‚‰ãKeyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã¨é–¢ä¿‚ãŒã‚る「何ã‹ã€ã ã¨ã„ã†ã®ã¯å®¹æ˜“ã«æƒ³åƒã§ãã‚‹ã®ã§ã¯ãªã„ã‹ã¨æ€ã„ã¾ã™ã€‚ã“ã®key_choiceã¨ã„ã†ã®ã¯å¤‰æ•°ã§ã€ãã®ä¸ã«ã¯Builderã®ã‚ーボードå応計測用オブジェクト(psychopy.event.BuilderKeyResponse:以下BuilderKeyResponse)ã¨ã„ã†ãƒ¢ãƒŽãŒå…¥ã£ã¦ã„ã¾ã™ã€‚オブジェクトã¨ã¯ã€ã‚³ãƒ³ãƒ”ãƒ¥ãƒ¼ã‚¿ä¸Šã§æ‰±ã†ã•ã¾ã–ã¾ãªå¯¾è±¡ã€ã‚ーボードやマウスã¨ã„ã£ãŸç‰©ç†çš„ãªã‚‚ã®ã‹ã‚‰å„種ソフトウェアã®å‹•作ã®ãŸã‚ã«ç”¨ã„られるデータãªã©ã‚’プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžä¸Šã‹ã‚‰æ‰±ã„ã‚„ã™ãã™ã‚‹ãŸã‚ã®ä»•組ã¿ã§ã™ã€‚ ã¨ã¦ã‚‚æŠ½è±¡çš„ãªæ¦‚念ã§ã‚¤ãƒ¡ãƒ¼ã‚¸ã—ã«ãã„ã¨æ€ã„ã¾ã™ã®ã§ã€å…·ä½“çš„ãªä¾‹ã‚’挙ã’ã¾ã—ょã†ã€‚ :numref:`fig-what-is-object` ã¯webãƒ–ãƒ©ã‚¦ã‚¶ã¨æ–‡æ›¸ä½œæˆã‚½ãƒ•トã€ãƒ•ォルダ内容表示ã®3ã¤ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‹ã„ã¦ã„る様åを示ã—ã¦ã„ã¾ã™ã€‚ã“れらã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯å³ä¸Šã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ãŸã‚Šæœ€å¤§åŒ–ã€æœ€å°åŒ–ã—ãŸã‚Šã¨ã„ã£ãŸæ“作やã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æž をドラッグã—ã¦ä½ç½®ã‚„大ãã•を変更ã™ã‚‹å‹•作ã¯å…±é€šã—ã¦ã„ã¾ã™ã€‚ã—ã‹ã—ã€ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’å‹•ã‹ã—ã¦ã—ã¾ã†ã¨ä»Šã¾ã§åˆ¥ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«éš ã•れã¦ã„ãŸéƒ¨åˆ†ãŒè¦‹ãˆã‚‹ã‚ˆã†ã«ãªã‚‹ã®ã§OSã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®æãç›´ã—を行ã†ã®ã§ã™ãŒã€æãç›´ã—ã®æ–¹æ³•ã¯webブラウザや文書作æˆã‚½ãƒ•トãªã©ã€å€‹ã€…ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§ç•°ãªã‚‹ã§ã—ょã†ã€‚ã“ã®ã‚ˆã†ã«ã€ã‚³ãƒ³ãƒ”ãƒ¥ãƒ¼ã‚¿ä¸Šã§æ‰±ã†å¯¾è±¡ã«ã¯å…±é€šåŒ–ã§ãる部分ã¨ã€å›ºæœ‰ã®éƒ¨åˆ†ãŒã‚りã¾ã™ã€‚ã“ã®å…±é€šåŒ–ã§ãる部分を共通化ã™ã‚‹ãŸã‚ã®ä»•組ã¿ãŒã‚ªãƒ–ジェクトã§ã™ã€‚実ã¯ã€ã‚ªãƒ–ジェクトã¨ã„ã†è€ƒãˆæ–¹ã¯ã“ã“ã¾ã§è§£èª¬ã—ã¦ããŸBuilderã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã«ã‚‚利用ã•れã¦ã„ã¾ã™ã€‚例ãˆã°åˆºæ¿€ã«å¯¾å¿œã™ã‚‹ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã«ã¯ã„ãšã‚Œã‚‚ **[ä½ç½®n [x, y] $]** ã‚„ **[サイズ [w, h] $]** ã¨ã„ã†ãƒ—ãƒãƒ‘ティãŒã‚りã€ã“れらを使ã£ã¦ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ä¸Šã®ã©ã®ä½ç½®ã«ã©ã®ãらã„ã®å¤§ãã•ã§æç”»ã•れるã‹ã‚’指定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸã€‚ **[剿™¯è‰²]** プãƒãƒ‘ティã§è‰²ã‚’指定ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã—ãŸãŒã€Imageコンãƒãƒ¼ãƒãƒ³ãƒˆã¨Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã§ã¯åŒã˜å€¤ã‚’ **[剿™¯è‰²]** ã«æŒ‡å®šã—ã¦ã‚‚ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã«æã‹ã‚Œã‚‹åˆºæ¿€ã®è‰²ã¯å…¨ãç•°ãªã‚Šã¾ã—㟠( :numref:`fig-what-is-object` )。ã“ã†ã„ã£ãŸåˆºæ¿€é–“ã®å…±é€šç‚¹ã‚„相é•点を効率よãã™ã‚‹ãŸã‚ã«ã€Builderã®å†…部ã§ã¯ã‚ªãƒ–ジェクトãŒä½¿ç”¨ã•れã¦ã„ã¾ã™ã€‚ .. _fig-what-is-object: .. figure:: fig06/what-is-object.png :width: 70% オブジェクトã®ä¾‹ã€‚個々ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã¯ãれãžã‚Œå›ºæœ‰ã®ä½ç½®ã‚„大ãã•ã‚’æŒã¡ã¾ã™ãŒã€é–‰ã˜ãŸã‚Šç§»å‹•ã•ã›ãŸã‚Šã¨ã„ã£ãŸæ“作方法ã¯å…±é€šã—ã¦ã„ã¾ã™ã€‚ã“れã¾ã§ã«æ‰±ã£ãŸBuilderã®åˆºæ¿€ã«ã‚‚ã€ãれãžã‚Œã«å…±é€šã™ã‚‹ç‚¹ã‚„ç•°ãªã‚‹ç‚¹ãŒã‚りã¾ã™ã€‚ Pythonã«ãŠã‘るオブジェクトã§ã¯ã€ã“ã†ã„ã£ãŸã•ã¾ã–ã¾ãªå¯¾è±¡ã‚’表ç¾ã™ã‚‹ãŸã‚ã«ã€ãƒ‡ãƒ¼ã‚¿å±žæ€§ã¨ãƒ¡ã‚½ãƒƒãƒ‰ã¨å‘¼ã°ã‚Œã‚‹ã‚‚ã®ã‚’用ã„ã¾ã™ã€‚Builderã®åˆºæ¿€ã‚ªãƒ–ジェクトã®ä¾‹ã‚’用ã„ã‚‹ã¨ã€ãƒ‡ãƒ¼ã‚¿å±žæ€§ã¨ã¯ **[ä½ç½® [x, y] $]** ã‚„ **[サイズ [w, h] $]** ã®ã‚ˆã†ã«ã€ãれãžã‚Œã®åˆºæ¿€ã§å›ºæœ‰ã®å€¤ã‚’ã¨ã‚‹ãƒ‡ãƒ¼ã‚¿ã®ã“ã¨ã§ã™ã€‚メソッドã«ã¤ã„ã¦ã¯è©³ã—ãã¯æ¬¡ç« ã§è§¦ã‚Œã¾ã™ãŒã€ãれãžã‚Œã®åˆºæ¿€ã‚’スクリーンã«åˆºæ¿€ã‚’æç”»ã™ã‚‹æ‰‹ç¶šãã®ã‚ˆã†ã«ã€ãã®ã‚ªãƒ–ジェクトã«å¯¾ã™ã‚‹æ“作をãŠã“ãªã†ã‚‚ã®ã§ã™ã€‚ãれãžã‚Œã®ã‚ªãƒ–ジェクトã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚„メソッドã®å®šç¾©ã‚’クラスã¨å‘¼ã³ã€ã‚¯ãƒ©ã‚¹ã«å¾“ã£ã¦ç”Ÿæˆã•れãŸã‚ªãƒ–ジェクトを該当ã™ã‚‹ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¨å‘¼ã³ã¾ã™ã€‚ :numref:`fig-class-attributes-methods` ã¯ãƒ‡ãƒ¼ã‚¿å±žæ€§ã€ãƒ¡ã‚½ãƒƒãƒ‰ã€ã‚¯ãƒ©ã‚¹ã€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®é–¢ä¿‚を示ã—ã¦ã„ã¾ã™ã€‚Gratingクラスã¯ã‚°ãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°åˆºæ¿€ã‚’æç”»ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ã§ã€**[ä½ç½® [x, y] $]** 〠**[回転角度 $]** 〠**[テクスãƒãƒ£]** ã«å¯¾å¿œã™ã‚‹Positionã€Orientationã€Textureã¨ã„ã£ãŸãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚’æŒã£ã¦ã„ã¾ã™ã€‚ã¾ãŸã€ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã«æç”»ã‚’行ã†ãŸã‚ã®drawã¨ã„ã†ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æŒã£ã¦ã„ã¾ã™ã€‚グレーティング刺激をスクリーンã«2個æç”»ã™ã‚‹ãŸã‚ã«ã€Gratingクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’2個生æˆã—ã¦ã€ãれãžã‚ŒgratingPatchã¨stripePatchã¨ã„ã†å¤‰æ•°ã«æ ¼ç´ã—ã¾ã—ãŸã€‚å„インスタンスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã«å€¤ã‚’代入ã™ã‚‹æ™‚ã«ã¯ã€gratingPatch.Position = (0,0)ã¨ã„ã†å…·åˆã«ã€å¤‰æ•°åã¨ãƒ‡ãƒ¼ã‚¿å±žæ€§åをドット演算å( . )ã§çµåˆã—ã¦è¨˜è¿°ã—ã¾ã™ã€‚ドット演算åを用ã„ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ã©ã¡ã‚‰ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã«ä»£å…¥ã™ã‚‹ã®ã‹æ··ä¹±ã™ã‚‹ã“ã¨ãŒã‚りã¾ã›ã‚“。drawメソッドを用ã„ã¦åˆºæ¿€ã‚’æç”»ã™ã‚‹æ™‚ã«ã¯ã€gratingPatch.draw( )ã¨ã„ã†å…·åˆã«ã‚„ã¯ã‚Šãƒ‰ãƒƒãƒˆæ¼”ç®—åを使ã£ã¦å¤‰æ•°åã¨ãƒ¡ã‚½ãƒƒãƒ‰åã‚’çµåˆã—ã¦è¨˜è¿°ã—ã¾ã™ã€‚メソッドã¯é–¢æ•°ã¨åŒæ§˜ã«å¼•æ•°ã‚’ã¨ã‚‹ã“ã¨ãŒã§ãã¾ã™ã®ã§ã€( )ãŒdrawã®å¾Œã«ä»˜ãã¾ã™ã€‚drawメソッドã§ã¯å„インスタンスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã®å€¤ã‚’用ã„ã¦åˆºæ¿€ã®ä½ç½®ã‚„æ³¢å½¢ãŒæ±ºå®šã•れã¦åˆºæ¿€ãŒæç”»ã•れã¾ã™ã€‚ .. _fig-class-attributes-methods: .. figure:: fig06/class-attributes-methods.png :width: 80% データ属性ã¨ãƒ¡ã‚½ãƒƒãƒ‰ã€ã‚¯ãƒ©ã‚¹ã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã€‚データ属性ã®å€¤ã¯å€‹ã€…ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§ç•°ãªã‚Šã¾ã™ã€‚メソッドを呼ã¶ã¨è‡ªåˆ†ã®ã‚¯ãƒ©ã‚¹ã§å®šç¾©ã•れã¦ã„るメソッドãŒå‘¼ã³å‡ºã•れるã®ã§ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹é–“ã§åŒåã®ãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚ã£ã¦ã‚‚æ··ä¹±ã—ã¾ã›ã‚“。 グレーティング刺激ã«è¿½åŠ ã—ã¦ã€å¤šè§’å½¢ã®åˆºæ¿€ã‚’æç”»ã™ã‚‹Polygonクラスを用ã„ã¦ä¸‰è§’å½¢ã¨äº”角形を1個ãšã¤æç”»ã™ã‚‹ã¨ã—ã¾ã™ã€‚Polygonクラスã¯Gratingクラスã¨ä¼¼ã¦ã„ã¾ã™ãŒGratingクラスã«ã¯ç„¡ã„N_Verticesã¨ã„ã†ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚’æŒã£ã¦ã„ã¾ã™( **[é ‚ç‚¹æ•°]** ã«å¯¾å¿œ)。ã¾ãŸã€Gratingクラスã¨åŒæ§˜ã«drawã¨ã„ã†ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æŒã£ã¦ã„ã¾ã™ãŒã€ãã®å‡¦ç†å†…容ã¯ç•°ãªã‚Šã¾ã™ã€‚多角形を2個æç”»ã™ã‚‹ã®ã§ã™ã‹ã‚‰ã€Polygonクラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’2個生æˆã—ã¦triangleã¨pentagonã¨ã„ã†å¤‰æ•°ã«æ ¼ç´ã—ã¾ã™ã€‚triangleã¨pentagonã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã«é©åˆ‡ãªå€¤ã‚’è¨å®šã—ã¦ã€drawメソッドを呼ã³ã¾ã™ã€‚triangleã«æ ¼ç´ã•れãŸPolygonã‚’æç”»ã™ã‚‹æ™‚ã«ã¯trialgle.draw()ã¨è¨˜è¿°ã—ã¾ã™ãŒã€ã“ã®ã‚ˆã†ã«å¤‰æ•°åã¨ãƒ¡ã‚½ãƒƒãƒ‰åをドット演算åã§çµåˆã—ã¦è¨˜è¿°ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦ã€ã“ã®draw( )ã¯Polygonクラスã®ã‚ªãƒ–ジェクトã®drawメソッドã§ã‚ã‚‹ã“ã¨ãŒPythonã«ã¯ã‚ã‹ã‚Šã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€Gratingクラスã«åŒåã®ãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚ã£ã¦ã‚‚PythonãŒä¸¡è€…ã‚’æ··åŒã™ã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。 ãªãŠã€ã“ã“ã§æƒ³å®šã—ãŸGratingクラスやPolygonクラスãŠã‚ˆã³ãã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã¯ã€å®Ÿéš›ã®Builderã§ä½¿ç”¨ã•れã¦ã„ã‚‹ã‚‚ã®ã¨ç•°ãªã‚Šã¾ã™ã€‚クラスãŠã‚ˆã³ãƒ‡ãƒ¼ã‚¿å±žæ€§ã®æ£ç¢ºãªåç§°ãŠã‚ˆã³Builderã¨ã®å¯¾å¿œé–¢ä¿‚を「 :numref:`{number}:{name} <topic-component-class-correspondence>` ã€ã«è¨˜ã—ã¦ãŠãã¾ã™ã®ã§ã€è©³ã—ãå¦ã³ãŸã„æ–¹ã¯ã”覧ãã ã•ã„。Builderã®é€šå¸¸ã®ç”¨é€”ã§ã¯ãã“ã¾ã§çŸ¥ã£ã¦ãŠãå¿…è¦ã¯ã‚りã¾ã›ã‚“。 ã“ã“ã¾ã§èª¬æ˜Žã—ã¦ã€ã‚ˆã†ã‚„ãkey_choice.keysã¨ã„ã†å¼ã®æ„味を解説ã§ãã¾ã™ã€‚key_choiceã«ã¯BuilderKeyResponseã¨ã„ã†ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚BuilderKeyResponseã¯ã‚ーボードã®çŠ¶æ…‹ã‚’è¨˜éŒ²ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ©ã‚¹ã§ã€ :numref:`tbl-attributes-of-BuilderKeyResponse` ã«ç¤ºã™ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚’æŒã£ã¦ã„ã¾ã™ã€‚ã“ã®è¡¨ã«ã‚ˆã‚‹ã¨ã€keysã«ã¯æŠ¼ã•れãŸã‚ーåãŒä¿æŒã•れã¦ã„ã¾ã™ã€‚key_choiceã¨ã„ã†å¤‰æ•°åã¯Builderã®trialルーãƒãƒ³ã«é…ç½®ã—ãŸKeyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã® **[åå‰]** ã«å¯¾å¿œã—ã¦ã„ã¾ã™ã‹ã‚‰ã€key_choice.keysã¨ã„ã†å¼ã¯trialルーãƒãƒ³ã«é…ç½®ã—ãŸKeyboardコンãƒãƒ¼ãƒãƒ³ãƒˆã§è¨˜éŒ²ã—ãŸã‚ーåã§ã™ã€‚具体的ã«è¨€ãˆã°'left'ã‹'right'ã®ã„ãšã‚Œã‹ã®æ–‡å—åˆ—ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€Codeコンãƒãƒ¼ãƒãƒ³ãƒˆã«å…¥åŠ›ã—ãŸkey_choice.keys == correctAnsã¯å®Ÿé¨“å‚åŠ è€…ãŒæŠ¼ã—ãŸã‚ーã®ã‚ーåãŒcorrectAnsã¨ä¸€è‡´ã™ã‚Œã°Trueã€ä¸€è‡´ã—ãªã‘れã°FalseãŒå¾—られã¾ã™ã€‚ .. tabularcolumns:: |p{8zw}|p{34zw}| .. _tbl-attributes-of-BuilderKeyResponse: .. csv-table:: BuilderKeyResponseクラスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ :header: データ属性, æ¦‚è¦ :widths: 36, 64 keys, ルーãƒãƒ³ã§è¨˜éŒ²ã•れãŸã‚ーåãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ã‚ãƒ¼ãŒæŠ¼ã•れã¦ã„ãªã‘れã°ç©ºã®ãƒªã‚¹ãƒˆã€ã€Œæœ€å¾Œã®ã‚ーã€ã¾ãŸã¯ã€Œæœ€åˆã®ã‚ーã€ã‚’記録ã—ã¦ã„ã‚‹å ´åˆã¯è©²å½“ã™ã‚‹ã‚ーåã€ã€Œå…¨ã¦ã®ã‚ーã€ã‚’記録ã—ã¦ã„ã‚‹å ´åˆã¯æŠ¼ã•れãŸã‚ーã®ã‚ーåãŒé †ç•ªã«ä¸¦ã‚“ã ãƒªã‚¹ãƒˆãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ corr, åå¿œãŒæ£ç”ã§ã‚れã°1ã€èª¤ç”ã§ã‚れã°0ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ã‚ãƒ¼ãŒæŠ¼ã•れるå‰ã¯0ã§ã™ã€‚ rt, ã‚ãƒ¼ãŒæŠ¼ã•ã‚ŒãŸæ™‚åˆ»ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ã‚ãƒ¼ãŒæŠ¼ã•れã¦ã„ãªã‘れã°ç©ºã®ãƒªã‚¹ãƒˆã€ã€Œæœ€å¾Œã®ã‚ーã€ã¾ãŸã¯ã€Œæœ€åˆã®ã‚ーã€ã‚’記録ã—ã¦ã„ã‚‹å ´åˆã¯è©²å½“ã™ã‚‹ã‚ãƒ¼ãŒæŠ¼ã•ã‚ŒãŸæ™‚刻ã€ã€Œå…¨ã¦ã®ã‚ーã€ã‚’記録ã—ã¦ã„ã‚‹å ´åˆã¯å„ã‚ãƒ¼ãŒæŠ¼ã•ã‚ŒãŸæ™‚刻ãŒé †ç•ªã«ä¸¦ã‚“ã ãƒªã‚¹ãƒˆãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ clock, BuilderãŒæ™‚刻を計測ã™ã‚‹ãŸã‚ã®æ™‚計オブジェクトã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚直接æ“作ã™ã¹ãã§ã¯ã‚りã¾ã›ã‚“。 ã“れã§å¿…è¦ãªè¦ç´ ã¯ã™ã¹ã¦ãã‚ã„ã¾ã—ãŸã€‚Builderã§exp06.psyexpã‚’é–‹ã„ã¦ã€trialルーãƒãƒ³ã‚’é–‹ã„ã¦Codeコンãƒãƒ¼ãƒãƒ³ãƒˆã‚’é…ç½®ã—ã¦ãã ã•ã„。ãã—㦠**[Routine終了時]** ã«ä»¥ä¸‹ã®ã‚³ãƒ¼ãƒ‰ã‚’入力ã—ã¾ã—ょã†ã€‚ .. code-block:: python if key_choice.keys == correctAns: feedbackMsg = 'æ£è§£' else: feedbackMsg = '䏿£è§£' ã¤ã„ã«exp06.psyexpã®å®Œæˆã§ã™ã€‚ã•ã£ããexp06.psyexpを実行ã—ã¦ãã ã•ã„ã€‚å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®conditionã«ã¯01ã¨ã ã‘入力ã—ã€wordã«ã€Œãƒªãƒ‹ã€ãªã©ã®ç„¡æ„味語をターゲット語ã¨ã—ã¦å…¥åŠ›ã—ã¦OKをクリックã—ã¦ãã ã•ã„。æ¡ä»¶ãƒ•ァイルã¨ã—ã¦exp06cnd01.xlsxãŒèªã¿è¾¼ã¾ã‚Œã¦ã€æœ€åˆã®æ•™ç¤ºæ–‡ã«ã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆèªžãŒåŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„ã‚‹ã¯ãšã§ã™ã€‚ãã—ã¦ã€åˆºæ¿€ãŒå‡ºã¦ããŸã‚‰é©å½“ã«å応ã—ã¦ã€çœ¼é¡ã‚’ã‹ã‘ã¦ã„る顔画åƒã«å¯¾ã—ã¦ã€Œã¯ã„ã€ã‚’é¸æŠžã™ã‚‹(カーソルã‚ーã®å·¦ã‚’押ã™)ã¨æ£è§£ã€ãれ以外ã®é¡”ç”»åƒã«å¯¾ã—ã¦ã€Œã¯ã„ã€ã‚’é¸æŠžã™ã‚‹ã¨ä¸æ£è§£ã«ãªã‚‹ã“ã¨ã‚’確èªã—ã¾ã—ょã†ã€‚実験ãŒçµ‚了ã—ãŸã‚‰ã‚‚ã†ä¸€åº¦å®Ÿé¨“を実行ã—ã¦ã€ä»Šåº¦ã¯å®Ÿé¨“æƒ…å ±ãƒ€ã‚¤ã‚¢ãƒã‚°ã®conditionã«02ã¨å…¥åŠ›ã—ã¦OKをクリックã—ã¦ã¿ã¾ã—ょã†ã€‚眼é¡ã‚’ã‹ã‘ã¦ã„る顔画åƒã«ã€Œã¯ã„ã€ã‚’é¸æŠžã™ã‚‹ã¨ä¸æ£è§£ã€ãれ以外ã®ç”»åƒã«å¯¾ã—ã¦ã€Œã¯ã„ã€ã‚’é¸æŠžã™ã‚‹ã¨æ£è§£ã«ãªã‚‹ã¯ãšã§ã™ã€‚ 以上ã§ã“ã®ç« ã®è§£èª¬ã¯ãŠã—ã¾ã„ã§ã™ã€‚ifæ–‡ã«ã¤ã„ã¦ã¯ã¾ã ã¾ã 説明ã—ãŸã„ã“ã¨ãŒãŸãã•ã‚“ã‚りã¾ã™ãŒã€ã“ã®ç« ã‚‚ãšã„ã¶ã‚“é•·ããªã£ã¦ã—ã¾ã£ãŸã®ã§ã€ã“ã“ã§ä¸€åŒºåˆ‡ã‚Šã«ã—ã¦æ¬¡ã®ç« ã§å–り扱ã†ã“ã¨ã«ã—ã¾ã—ょã†ã€‚ ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ - クラスã¨ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®é•ã„を説明ã™ã‚‹ã“ã¨ãŒã§ãる。 - データ属性ã¨ã¯ä½•ã‹ã‚’説明ã™ã‚‹ã“ã¨ãŒã§ãる。 - 変数xã«æ ¼ç´ã•れãŸã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®ãƒ‡ãƒ¼ã‚¿å±žæ€§fooã«å€¤ã‚’代入ã—ãŸã‚Šå€¤ã‚’å‚ç…§ã—ãŸã‚Šã™ã‚‹ã¨ãã®Pythonã®å¼ã‚’書ãã“ã¨ãŒã§ãる。 - BuilderKeyResponseã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚’å‚ç…§ã—ã¦æŠ¼ã•れãŸã‚ーåを知るã“ã¨ãŒã§ãる。 ç·´ç¿’å•題:データ属性corrã§æ£èª¤ã‚’判定ã—よㆠ-------------------------------------------------------- ã“ã®ç« ã®è§£èª¬ã§ã¯ã€æ¡ä»¶ãƒ•ァイルã¨ã—ã¦çœ¼é¡ã‚’ã‹ã‘ã¦ã„る顔画åƒãŒæ£äº‹ä¾‹ã¨ãªã‚‹exp06cnd01.xlsxã¨ã€çœ¼é¡ã‚’ã‹ã‘ã¦ã„ãªã„顔画åƒãŒæ£äº‹ä¾‹ã¨ãªã‚‹exp06cnd02.xlsxã®äºŒç¨®é¡žã—ã‹ä½œæˆã—ã¾ã›ã‚“ã§ã—ãŸã€‚ã—ã‹ã—ã€å®Ÿéš›ã«exp06.psyexpを使ã£ã¦æ¦‚念è˜åˆ¥ã®å®Ÿé¨“ã‚’ã™ã‚‹ãŸã‚ã«ã¯ã€ä»–ã®ç‰¹å¾´ãŒæ£äº‹ä¾‹ã¨ãªã‚‹æ¡ä»¶ãƒ•ァイルを準備ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ç·´ç¿’å•題ã¨ã—ã¦ã€ã€Œçœ¼é¡ã‚’ã‹ã‘ã¦ã„ã¦çœ‰ãŒä¸ŠãŒã£ã¦ã„ã‚‹(è«–ç†ç©)ã€é¡”ç”»åƒãŒæ£äº‹ä¾‹ã¨ãªã‚‹æ¡ä»¶ãƒ•ァイルã¨ã€ã€Œé¡”ãŒä¸¸ã„ã€ã¾ãŸã¯çœ‰æ¯›ãŒä¸‹ãŒã£ã¦ã„ã‚‹(è«–ç†å’Œ)ã€é¡”ç”»åƒãŒæ£äº‹ä¾‹ã¨ãªã‚‹æ¡ä»¶ãƒ•ァイルを作æˆã—ã¦ãã ã•ã„。 ã‚‚ã†ã²ã¨ã¤ã€ifæ–‡ã¨BuilderKeyResponseã®å¾©ç¿’å•題ã¨ã—ã¦ã€trialルーãƒãƒ³ã®åå¿œãŒæ£ç”ã§ã‚ã£ãŸã‹èª¤ç”ã§ã‚ã£ãŸã‹ã«å¿œã˜ã¦feedbackMsgã«ä»£å…¥ã™ã‚‹æ–‡å—列を変更ã™ã‚‹éƒ¨åˆ†ã§ã€ãƒ‡ãƒ¼ã‚¿å±žæ€§keysを使ã‚ãšã«ãƒ‡ãƒ¼ã‚¿å±žæ€§corrを使ã†ã‚ˆã†ã«Codeコンãƒãƒ¼ãƒãƒ³ãƒˆã®å†…å®¹ã‚’æ›¸ãæ›ãˆã¦ãã ã•ã„。 :numref:`tbl-attributes-of-BuilderKeyResponse` ã«ç¤ºã™ã‚ˆã†ã«ã€ãƒ‡ãƒ¼ã‚¿å±žæ€§corrã«ã¯åå¿œãŒæ£ç”ã§ã‚れã°1ã€èª¤ç”ã§ã‚れã°0ãŒæ ¼ç´ã•れã¦ã„ã¾ã™ã€‚ã“れã¯ã»ã¼ç”ãˆã‚’言ã£ã¦ã„るよã†ãªã‚‚ã®ãªã®ã§ã€ã“れ以上ã¯ãƒŽãƒ¼ãƒ’ãƒ³ãƒˆã§æŒ‘戦ã—ã¦ãã ã•ã„。 ã“ã®ç« ã®ãƒˆãƒ”ックス --------------------------------------------- .. _topic-newline-code: 改行文å—を使ã£ãŸè¤‡æ•°è¡Œã®æ–‡å—列ã®è¡¨ç¾(上級) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Microsoft Wordãªã©ã®æ–‡æ›¸ä½œæˆã‚¢ãƒ—リケーションを使ã£ãŸã“ã¨ãŒã‚ã‚‹æ–¹ã¯ã€ã“ã®ç¨®ã®ã‚¢ãƒ—リケーションã§ã¯ :numref:`fig-newline-characters` æ–‡ã®æœ«å°¾ã«çŸ¢å°ã®ã‚ˆã†ãªè¨˜å·ãŒ(ã—ã°ã—ã°æœ¬æ–‡ã¨ã¯ç•°ãªã‚‹è‰²ã§)æã‹ã‚Œã¦ã„ã‚‹ã“ã¨ã«æ°—付ã„ã¦ãŠã‚‰ã‚Œã‚‹ã¨æ€ã„ã¾ã™ã€‚実ã¯ã€ã‚¢ãƒ—リケーションã®å†…部ã§ã¯ã€ã“ã®ã€ŒçŸ¢å°ã€ã‚‚ã²ã‚‰ãŒãªã‚„æ¼¢å—ã€è‹±æ•°å—ã¨åŒã˜ã€Œæ–‡å—ã€ã®ä¸€ç¨®ã§ã€ã“ã“ã§ã€Œè¡ŒãŒå¤‰ã‚ã‚‹ã€ã“ã¨ã‚’表ã—ã¦ã„ã¾ã™ã€‚æ–‡å—ã¨ã—ã¦æ‰±ã‚れã¦ã„ã‚‹è¨¼æ‹ ï¼ˆï¼Ÿï¼‰ã«ã€æ™®é€šã®æ–‡å—ã¨åŒæ§˜ã«BackSpaceã‚ーやDelã‚ーã§å‰Šé™¤ã§ãã¾ã™ã—ã€å‰Šé™¤ã—ãŸã‚‰å‰å¾Œã®æ–‡ãŒ1行ã«ã¤ãªãŒã‚Šã¾ã™ã‚ˆã。ã“ã®ã€Œè¡ŒãŒå¤‰ã‚ã‚‹ã€ã“ã¨ã‚’è¡¨ã™æ–‡å—ã‚’ **改行文å—** ã¨å‘¼ã³ã¾ã™ã€‚「 :numref:`{number}:{name} <topic-dollar-character-in-string>` ã€ã§ã€Œã‚³ãƒ³ãƒ”ュータã«ãŠã„ã¦æ–‡å—ã¯ã€Žæ–‡å—コードã€ã¨å‘¼ã°ã‚Œã‚‹æ•°å€¤ã§è¡¨ã•れるã€ã¨æ›¸ãã¾ã—ãŸãŒã€æ”¹è¡Œæ–‡å—ã«ã‚‚数値ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚例ãˆã°Windowsã§ã¯0x0D0Aã€Linuxã§ã¯0x0Aã§ã™ã€‚ .. _fig-newline-characters: .. figure:: fig06/newline-characters.png :width: 80% 改行文å—ã®è¡¨ç¤ºä¾‹ã€‚行末ã®çŸ¢å°ã®ã‚ˆã†ãªè¨˜å·ãŒæ”¹è¡Œæ–‡å—ã§ã™ã€‚ Pythonã‚’å«ã‚€å¤šãã®ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°è¨€èªžã§ã¯ã€ã“ã®æ”¹è¡Œæ–‡å—をエスケープシーケンス(「:numref:`{number}:{name} <topic-dollar-character-in-string>` ã€å‚ç…§)を使ã£ã¦\\nã¨è¡¨ã™ã“ã¨ãŒã§ãã¾ã™ã€‚ã¤ã¾ã‚Š :: '当ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€\n当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„。' ã¨æ›¸ãã¨ã€ | 当ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€ | 当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„ ã®ã‚ˆã†ã«\\nã®ä½ç½®ã§æ”¹è¡Œã•れã¦å‡ºåŠ›ã•れã¾ã™ã€‚\\nã‚’ä½¿ã†æ–¹æ³•を知ã£ã¦ã„ã‚‹ã¨ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆä¸Šã§èª°ã‹ãŒæ›¸ã„ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã‚’å‚考ã«ã—ã¦å‹‰å¼·ã™ã‚‹ã¨ããªã©ã«ãã£ã¨å½¹ã«ç«‹ã¡ã¾ã™ã®ã§ãœã²ã¨ã‚‚覚ãˆã¦ãŠããŸã„ã¨ã“ã‚ã§ã™ã€‚ ã•ã¦ã€æœ¬ç« ã®æ•™ç¤ºã‚‚\\nを使ã£ã¦è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€ä¸€è¡Œã«æ›¸ãã«ã¯é•·ã™ãŽã¾ã™ã€‚ã“ã®ã‚ˆã†ãªå ´åˆã€Pythonã®æ–‡æ³•ã«ã¯ - 行末㌠\\ ã®ã¿ã§çµ‚ã‚ã‚‹å ´åˆã¯æ¬¡ã®è¡Œã«ã¤ãªãŒã£ã¦ã„ã‚‹ã¨ã¿ãªã™ - '今日ã¯' 'ã„ã„天気' ã®ã‚ˆã†ã«äºŒã¤ã®æ–‡å—列ã®é–“ã«ç©ºç™½æ–‡å—ã—ã‹ãªã„å ´åˆã¯è‡ªå‹•çš„ã«æŽ¥ç¶šã—㦠'今日ã¯ã„ã„天気' ã¨åŒã˜ã¨ã¿ãªã™ ã¨ã„ã†è¦å‰‡ãŒã‚ã‚‹ã“ã¨ã‚’利用ã—㦠.. code-block:: python '「' + expInfo['word'] + 'ã€ã¯äººã®é¡”を形容ã™ã‚‹è¨€è‘‰ã§ã™ã€‚\n' \ 'æç¤ºã•れãŸé¡ã®çµµãŒå½“ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€\n' \ '当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„。' ã¨æ›¸ãã“ã¨ãŒã§ãã¾ã™ã€‚\\ã¯æœ€å¾Œã®è¡Œã«ã¯ä¸è¦ï¼ˆã¨ã„ã†ã‹æ›¸ã„ã¦ã¯ã„ã‘ãªã„)点ã«ã”注æ„ãã ã•ã„。\\nã¯å„è¡Œã®æœ«å°¾ä»¥å¤–ã«ç½®ã„ã¦ã‚‚æ§‹ã‚ãªã„ã®ã§ã€ .. code-block:: python '「' + expInfo['word'] + 'ã€ã¯äººã®é¡”を形容ã™ã‚‹è¨€è‘‰ã§ã™ã€‚\næç¤ºã•れãŸé¡ã®çµµãŒ' \ '当ã¦ã¯ã¾ã‚‹ãªã‚‰ã‚«ãƒ¼ã‚½ãƒ«ã‚ーã®å·¦ã€\n当ã¦ã¯ã¾ã‚‰ãªã„ãªã‚‰å³ã‚’押ã—ã¦ãã ã•ã„。 ' ã¨æ›¸ãã“ã¨ã‚‚ã§ãã¾ã™ã€‚上ã®ä¾‹ã¨ã˜ã£ãり見比ã¹ã¦ã€åŒã˜çµæžœã«ãªã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。 .. _topic-true-false-value: Trueã¨Falseã®ã€Œå€¤ã€ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Pythonã§ã¯ã€ifæ–‡ã«Trueã‚„False以外ã®å€¤ã‚’è¿”ã™å¼ã‚’書ãã“ã¨ãŒã§ãã¾ã™ã€‚ãã®å ´åˆã€å¼ã‚’評価ã—ãŸçµæžœãŒ0ã§ã‚れã°Falseã€0以外ã§ã‚れã°Trueã¨ã—ã¦å‡¦ç†ã•れã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€ :numref:`fig-true-false-value` 上段ã«ç¤ºã—ãŸä¾‹ã§ã¯ã„ãšã‚Œã®å ´åˆã‚‚ifæ–‡ã«ç¶šãx=7ãŒå®Ÿè¡Œã•れã¾ã™ã€‚ã“ã®ã“ã¨ã‚’ç©æ¥µçš„ã«åˆ©ç”¨ã—ãŸãƒ—ãƒã‚°ãƒ©ãƒ を書ãã“ã¨ã‚‚å¯èƒ½ã§ã™ãŒã€ã‚ã‹ã‚Šã«ãã„ã®ã§ãŠå‹§ã‚ã—ã¾ã›ã‚“。 ãŠå‹§ã‚ã—ãªã„ã¨è¨€ãˆã°ã€Python2ã«ãŠã‘ã‚‹Trueã‚„Falseã¯ã€ã‚ãŸã‹ã‚‚通常ã®å¤‰æ•°ã§ã‚ã‚‹ã‹ã®ã‚ˆã†ã«å€¤ã‚’代入ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã§ã™ã‹ã‚‰ã€True=0ãªã©ã¨æ›¸ã„ã¦Trueã«0を代入ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ãŸã ã€ã“ã®ã‚ˆã†ã«ã—ã¦ã—ã¾ã†ã¨Trueを評価ã™ã‚‹ã¨0ãŒå¾—られã¦ã€0ã¯Falseã¨ã—ã¦æ©Ÿèƒ½ã™ã‚‹ãŸã‚〠:numref:`fig-true-false-value` 下段ã®ä¾‹ã®ã‚ˆã†ãªéžå¸¸ã«ã‚„ã‚„ã“ã—ã„事態ãŒç”Ÿã˜ã¦ã—ã¾ã„ã¾ã™ã€‚Trueã‚„Falseã¸ã®ä»£å…¥ã¯çµ¶å¯¾ã«è¡Œã†ã¹ãã§ã¯ã‚りã¾ã›ã‚“。 **Python3ã§ã¯Trueã¨FalseãŒäºˆç´„語ã¨ãªã£ãŸãŸã‚ã€ã“ã®ã‚ˆã†ãªä»£å…¥ã¯ã§ããªããªã£ã¦ã„ã¾ã™ã€‚** .. _fig-true-false-value: .. figure:: fig06/true-false-value.png :width: 60% Trueã¨Falseã«é–¢ã™ã‚‹æ³¨æ„äº‹é …(True/Falseã¸ã®ä»£å…¥ã¯Python2ã®ã¿)。 .. _topic-compare-sequences: æ–‡å—列ã€ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«å¯¾ã™ã‚‹æ¯”較演算å ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 本文ã§ã¯<ã‚„>=ã¨ã„ã£ãŸæ¯”較演算åを使ã£ã¦æ•°å€¤ã®å¤§å°ã‚’比較ã™ã‚‹æ–¹æ³•ã«ã¤ã„ã¦è§£èª¬ã—ã¾ã—ãŸãŒã€Pythonã§ã¯æ–‡å—列やシーケンス型ã®ãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦ã‚‚比較演算åを使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れらã®ãƒ‡ãƒ¼ã‚¿ã«å¯¾ã—ã¦æ¯”較演算åãŒé©ç”¨ã•れãŸå ´åˆã¯ã€Œè¾žæ›¸é †ã€ã«å¾“ã£ã¦æ¯”較ãŒè¡Œã‚れã¾ã™ã€‚ 例ãˆã°memoryã¨mindã¨ã„ã†æ–‡å—列を比較ã™ã‚‹ã¨ã—ã¾ã—ょã†ã€‚英和辞典ã®é †ç•ªã§ã¯ã€1æ–‡å—ç›®ã‹ã‚‰é †ç•ªã«æ¯”較ã—ã¦ã„ã£ã¦ã€æœ€åˆã«ç•°ãªã‚‹æ–‡å—ã®ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ã§ã©ã¡ã‚‰ãŒå…ˆã«æŽ²è¼‰ã•れるã‹ãŒæ±ºã¾ã‚Šã¾ã™ã€‚memoryã¨mindã§ã—ãŸã‚‰1æ–‡å—ç›®ã¯ã©ã¡ã‚‰ã‚‚mã€2æ–‡å—ç›®ã¯eã¨iã§ã™ã‹ã‚‰ã€eã®æ–¹ãŒå‰ã§ã™ã€‚Pythonã§ã¯ã€è¾žæ›¸é †ã§å‰ã«ãã‚‹æ–‡å—列ã»ã©ã€Œå°ã•ã„ã€ã¨åˆ¤å®šã•れã¾ã™ã®ã§ã€'memory' < 'mind'ã¯Trueã¨ãªã‚Šã¾ã™ã€‚'memory' > 'mind'ã¯Falseã§ã™ã€‚ å°‘ã—æ³¨æ„ãŒå¿…è¦ãªã®ã¯ã€æ•°å€¤ã‚„æ¼¢å—ãŒæ–‡å—列ã«å«ã¾ã‚Œã‚‹å ´åˆã§ã™ã€‚åŠè§’æ•°å—ã¯ã™ã¹ã¦ã®ã‚¢ãƒ«ãƒ•ァベットより「å°ã•ã„ã€ã¨åˆ¤æ–ã•れã¾ã™ã€‚ã§ã™ã‹ã‚‰'magical number' < '7'を評価ã™ã‚‹ã¨FalseãŒå¾—られã¾ã™('7'ã¯'m'よりå°ã•ã„ã¨åˆ¤æ–ã•れる)。ã‹ãªæ–‡å—ã‚„æ¼¢å—ã¯æ–‡å—コードã«å¾“ã£ã¦è§£é‡ˆã•れã¾ã™ã®ã§ã€æ–‡å—コードをç†è§£ã—ã¦ã„ãªã‘れã°çµæžœã‚’予測ã™ã‚‹ã®ã¯å›°é›£ã§ã™ã€‚例ãˆã°Unicodeã§ã€Œå¿ƒã€ã¯ã€Œè¨˜ã€ã‚ˆã‚Šå°ã•ã„値ã§è¡¨ã•れã¾ã™ã®ã§ï¼ˆãれãžã‚Œ0x5fc3ã¨0x8a18)'記憶' < '心'を評価ã™ã‚‹ã¨FalseãŒå¾—られã¾ã™ã€‚ç†è€…ã®å€‹äººçš„ãªæ„見ã¨ã—ã¦ã¯ã€ã“ã®ã‚ˆã†ãªæ¯”較ã¯éžå¸¸ã«ã‚ã‹ã‚Šã«ãã„ã®ã§å¯èƒ½ãªé™ã‚Šä½¿ç”¨ã™ã‚‹ã¹ãã§ã¯ãªã„ã¨æ€ã„ã¾ã™ã€‚ シーケンスã®å ´åˆã¯ã€è¦ç´ ã‚’å…ˆé ã‹ã‚‰é †ç•ªã«æ¯”較ã—ã¦ã„ãã¾ã™ã€‚[7,8,2] < [7,1,5,9]ã¨ã„ã†æ¯”較ã§ã—ãŸã‚‰ã€æœ€åˆã®è¦ç´ ã®7ã¯åŒä¸€ã€2番目ã®è¦ç´ ã¯8ã¨1ã§å·¦è¾ºã®æ–¹ãŒå¤§ãã„値ã§ã™ã®ã§ã€å·¦è¾ºã®æ–¹ãŒå¤§ãã„ã¨åˆ¤å®šã•れã¾ã™ã€‚従ã£ã¦[7,8,2] < [7,1,5,9]ã¯Falseã§ã™ã€‚シーケンスã®è¦ç´ ã«æ–‡å—列ãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆã‚‚ã€åŒæ§˜ã«å€‹ã€…ã®è¦ç´ ã‚’å…ˆé ã‹ã‚‰é †ç•ªã«æ¯”較ã—ã¾ã™ã€‚['theory', 7, 'mind'] > ['theory', 7, 'memory']ã§ã—ãŸã‚‰æœ€åˆã¨2番目ã®è¦ç´ ã¯åŒä¸€ã€3番目ã®è¦ç´ ã¯memoryよりmindã®æ–¹ãŒã€Œå¤§ãã„ã€ã®ã§ã—ãŸã‹ã‚‰TrueãŒå¾—られã¾ã™ã€‚ .. _topic-component-class-correspondence: Builderã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã¨PsychoPyã®ã‚¯ãƒ©ã‚¹ã®å¯¾å¿œ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :numref:`fig-grating-attributes-correspondence` ã«Builderã®Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã¨ã€ãれã«å¯¾å¿œã™ã‚‹PsychoPyã®ã‚¯ãƒ©ã‚¹ã‚’示ã—ã¾ã™ã€‚Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã«å¯¾å¿œã™ã‚‹ã‚¯ãƒ©ã‚¹ã¯psychopy.visual.GratingStimã¨ã„ã†åç§°(以下GratingStim)ã§ã™ã€‚Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã®å„プãƒãƒ‘ティã¯GratingStimクラスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã¨å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚Builderã«ãŠã„ã¦å„プãƒãƒ‘ティã«å¼ã‚„値をè¨å®šã™ã‚‹ã¨ã„ã†ä½œæ¥ã¯ã€å¯¾å¿œã™ã‚‹GratingStimクラスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã«ãれらをè¨å®šã™ã‚‹ã“ã¨ã¨åŒç¾©ã§ã™ã€‚自分ã§å®Ÿé¨“用ã®Pythonコードを書ãå ´åˆã¯ã€GratingStimクラスã®ãƒ‡ãƒ¼ã‚¿å±žæ€§åã‚„ãã®è¨å®šæ–¹æ³•を覚ãˆãªã‘れã°ã„ã‘ã¾ã›ã‚“。Builderã¯ãƒ—ãƒãƒ‘ティè¨å®šãƒ€ã‚¤ã‚¢ãƒã‚°ã¨ã„ã†å½¢ã§ãƒ—ãƒãƒ‘ティã®ä¸€è¦§ã‚’見ã¦è¨å®šãŒã§ãã‚‹ã®ã§ã€ã‚³ãƒ¼ãƒ‰ã‚’æ›¸ãæ–¹æ³•を覚ãˆã‚‹ã‚ˆã‚Šã‚‚手軽ã«è‡ªåˆ†ã®å®Ÿé¨“を作æˆã§ãる段階ã¾ã§å¦ç¿’ã§ãã¾ã™ã€‚ã“れãŒBuilderを利用ã™ã‚‹æœ€å¤§ã®åˆ©ç‚¹ã§ã™ã€‚ .. _fig-grating-attributes-correspondence: .. figure:: fig06/grating-attributes-correspondence.png :width: 80% Builderã®Gratingコンãƒãƒ¼ãƒãƒ³ãƒˆã®ãƒ—ãƒãƒ‘ティã¨ã€ãれã«å¯¾å¿œã™ã‚‹PsychoPyã®ã‚¯ãƒ©ã‚¹ã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã€‚ ãŸã ã—ã€ã®ä¸‹ã®æ–¹ã«å¯¾å¿œã™ã‚‹ãƒ—ãƒãƒ‘ティãŒå˜åœ¨ã—ãªã„データ属性ãŒã‚るよã†ã«ã€Builderã§ã¯GratingStimクラスã®å…¨ã¦ã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã‚„メソッドを利用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。PsychoPyã®æ©Ÿèƒ½ã‚’最大é™ã«æ´»ã‹ã™ãŸã‚ã«ã¯ã‚„ã¯ã‚Šã‚³ãƒ¼ãƒ‰ã‚’書ãå¿…è¦ãŒã‚りã¾ã™ã€‚ :numref:`tbl-polygon-classes-correspondence` ã¯ã€Polygonコンãƒãƒ¼ãƒãƒ³ãƒˆã¨PsychoPyã®ã‚¯ãƒ©ã‚¹ã®å¯¾å¿œé–¢ä¿‚を示ã—ã¦ã„ã¾ã™ã€‚Polygonコンãƒãƒ¼ãƒãƒ³ãƒˆã®å ´åˆã¯ã€ **[形状]** ã«å¿œã˜ã¦æœ€ã‚‚効率ãŒã‚ˆã„クラスをBuilderãŒé¸æŠžã—ã¾ã™ã€‚クラスã«ã‚ˆã£ã¦ãƒ‡ãƒ¼ã‚¿å±žæ€§ãŒç•°ãªã‚Šã¾ã™ã®ã§ã€Polygonコンãƒãƒ¼ãƒãƒ³ãƒˆã®ãƒ—ãƒãƒ‘ティã¨ãƒ‡ãƒ¼ã‚¿å±žæ€§ã®å¯¾å¿œã‚‚é¸æŠžã•れãŸã‚¯ãƒ©ã‚¹ã«å¿œã˜ã¦å¤‰åŒ–ã—ã¾ã™ã€‚ Builderã¯ã€èƒŒå¾Œã«ã‚ã‚‹PsychoPyã®ã‚¯ãƒ©ã‚¹ã‚„ãã®ãƒ‡ãƒ¼ã‚¿å±žæ€§ã«ã¤ã„ã¦ã®çŸ¥è˜ãŒãªãã¦ã‚‚使用ã§ãるよã†ã«è¨è¨ˆã•れã¦ã„ã¾ã™ã€‚実際ã€:numref:`第%sç« <chapter-python-code-basic>` ã¾ã§ã¯PsychoPyã®ã‚¯ãƒ©ã‚¹ã«ã¤ã„ã¦è§¦ã‚Œãšã«è§£èª¬ã‚’進ã‚ã¦ãã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸã€‚ã—ã‹ã—ã€ã“ã®ç« ã®å®Ÿé¨“ã®ã‚ˆã†ã«ã€å‚åŠ è€…ã®é¸æŠžã«å¿œã˜ã¦åˆºæ¿€ãªã©ãŒå‹•çš„ã«å¤‰åŒ–ã™ã‚‹å®Ÿé¨“を作æˆã™ã‚‹ãŸã‚ã«ã¯ã€æ®‹å¿µãªãŒã‚‰ç¾çжã®Builderã§ã¯PsychoPyã®ã‚¯ãƒ©ã‚¹ã«ã¤ã„ã¦è¨€åŠã›ã–ã‚‹ã‚’å¾—ã¾ã›ã‚“。 .. _tbl-polygon-classes-correspondence: .. csv-table:: Builderã®Polygonコンãƒãƒ¼ãƒãƒ³ãƒˆã«å¯¾å¿œã™ã‚‹PsychoPyã®ã‚¯ãƒ©ã‚¹ :widths: 25, 75 形状, 対応ã™ã‚‹ã‚¯ãƒ©ã‚¹ ç›´ç·š, psychopy.visual.Line 三角形, psychopy.visual.ShapeStim 長方形, psychopy.visual.Rect åå—, psychopy.visual.ShapeStim 星,psychopy.visual.ShapeStim æ£å¤šè§’å½¢..., psychopy.visual.Polygon