TouchDesigner Python 條件運算技巧|單行 if/else 與三元表達式寫法解析

學會在 TouchDesigner 中用 Python 寫單行條件運算(if/else)!本篇教你兩種高效語法:三元表達式與布林陣列索引,快速實現邏輯控制、文字切換與互動輸出。提升開發效率與可讀性,輕鬆應對 CHOP、DAT 與參數控制需求!

Jul 21, 2025
💡
最近我們新開了一個 Line TouchDesigner 討論群組,歡迎大家加入一起討論與進步!
https://line.me/ti/g2/5IkAcg_6dF_CbR0oChIRWVoTRWQdSEHEVmcjtw
 
我們開課囉!八月開設新課程 TD104 (SOP) & DCI-02 (互動電子控制課程),歡迎報名參加~

⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
在 TouchDesigner 中進行條件判斷時,我們經常會使用:
  • Logic (CHOP) 來判斷數值是否超出上下限 Outside Bounds
  • CHOP Execute (DAT) 來執行進一步的邏輯程式碼
但其實,還有一種簡潔又直觀的做法:單行 if/else 條件運算式

兩種常用單行條件運算寫法

寫法一:經典的 Python 三元表達式

'True' if op('constant1')['chan1'] < 0.5 else 'False'
這種語法非常接近自然語言,可讀性佳。語法結構如下:
{True的結果} if {條件邏輯} else {False的結果}
你可以把任何資料型別放進去,甚至是再撰寫額外指令,例如:
1 if val > 10 else 0 '播放' if op('slider1')['value0'] > 0.5 else '暫停'
 

寫法二:布林陣列索引邏輯表達

['False', 'True'][op('constant1')['chan1'] < 0.5]
這種寫法利用布林值 True / False 對應陣列的索引:
  • True 對應索引 1
  • False 對應索引 0
[{False的結果}, {True的結果}][{條件邏輯}]
等同於說:「根據條件布林值,去取陣列中第 0 或第 1 個值」
雖然不如方法一直觀,但當你習慣後,它的語法簡短、非常適合快速邏輯判斷與文字輸出
 

應用解析:兩者有什麼不同?

特性
三元運算子(方法一)
布林陣列索引(方法二)
可讀性
✅ 高
⭕ 中(熟悉後很快)
彈性
✅ 支援各種資料型別
✅ 同樣支援
複雜邏輯處理
✅ 可嵌套寫多層邏輯
⛔ 嵌套不直觀
適合用在
訊息判斷、數值轉換、狀態命名、多層邏輯
快速開發、簡單條件轉換
 

總結

無論你是 Python 新手還是熟練使用者,這兩種單行 if/else 寫法都值得學習起來。
而且別忘了,這些寫法也支援 intfloatstr 甚至 OP 物件,使用上非常彈性。
 
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
Luxmin Institute 互動研究院 策劃了一系列關於互動體驗技術、科技藝術與多媒體整合為核心的主題課程、工作坊、社群、聚會,以及 TXRX 互動體驗大會
關注我們最新的活動動態與報名資訊:https://www.threads.com/@luxmin.institute