> For the complete documentation index, see [llms.txt](https://jasonchang-ccs.gitbook.io/hello-python-tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jasonchang-ccs.gitbook.io/hello-python-tutorial/0-5/3.md).

# Dictionary Example

## Dictionary 範例

我們透過範例來學習dictionary的一些實際操作。

## 範例一

```python
import pprint

text = 'Welcome to the LearnPython.org interactive Python tutorial. ' \
       'Whether you are an experienced programmer or not, ' \
       'this website is intended for everyone who wishes to learn the Python programming language. ' \
       'You are welcome to join our group on Facebook for questions, discussions and updates. ' \
       'Just click on the chapter you wish to begin from, and follow the instructions. Good luck!'
       
counts = {}

for char in text:
    counts.setdefault(char, 0)
    counts[char] = counts[char] + 1

pprint.pprint(counts)
```

這個範例的text可以存放任何長度的文章，然後找出每個字元出現的次數，是個有趣的統計，你可以看看哪個英文字母被使用最多次。

另外，這邊也使用了pprint模組，可以將dictionary以比較好閱讀的形式打印出來。

## 範例二

```python
gameBoard = {'top-left': ' ', 'top-mid': ' ', 'top-right': ' ',
             'mid-left': ' ', 'mid-mid': ' ', 'mid-right': ' ',
             'bottom-left': ' ', 'bottom-mid': ' ', 'bottom-right': ' '}

def printBoard(board):
    print('{}|{}|{}'.format(board['top-left'], board['top-mid'], board['top-right']))
    print('-+-+-')
    print('{}|{}|{}'.format(board['mid-left'], board['mid-mid'], board['mid-right']))
    print('-+-+-')
    print('{}|{}|{}'.format(board['bottom-left'], board['bottom-mid'], board['bottom-right']))

for i in range(9):
    if i % 2 == 0:
        print('It is O turn. Please enter which position you wanna put: ')
        pos = input()
        gameBoard[pos] = 'O'
    else:
        print('It is X turn. Please enter which position you wanna put: ')
        pos = input()
        gameBoard[pos] = 'X'
    printBoard(gameBoard)
```

這個範例則是做出了大家熟知的井字遊戲，由O先攻，再換X，可以理解使用dictionary可以為真實世界的很多種狀況建模，是個非常好用的工具。

然而這個範例並沒有做出驗證誰已經勝利的程式，所以大家可以自己來試看看如何檢驗勝利，並且在勝利條件產生時，直接跳出。
