# Python 辞書(dict)練習問題 ###### tags: `考試題庫` ## 1 次の表はゲームの価格表で、価格表を辞書にしてください。 | Game | Price | | -------- | -------- | | BIOHAZARD Village | 9990 | | Fatal Frame: Maiden of Black Water | 6600 | | SILENT HILL 3 | 8990 | | SIREN 2 | 9800 | | Kuon | 6126 | | Corpse Party | 1520 | 出力例のようなテーブルを表示してください ### 出力例: ![](https://i.imgur.com/9yXDXnX.png) ```python= dict = {"BIOHAZARD Village":"9990", "Fatal Frame: Maiden of Black Water":"6600", "SILENT HILL 3":"8990", "SIREN 2":"9800", "Kuon":"6126", "Corpse Party":"1520"} for i in dict.keys(): Game = i price = dict[i] print('-------------------------------------') print("|{} |{}".format(Game,price)) ``` ![](https://i.imgur.com/G19aqsk.png) ## 2、以下の条件を満たすシーザーサラダならぬ「シーザー暗号」の暗号化プログラムを作成してください。 * 平文を入力すること。 * アルファベットをずらす数を入力すること。 * 辞書を出力すること * 平文と暗号文を出力すること。 **ヒント1**:シーザー暗号とは文字を指定した数だけずらす暗号で、換字式暗号とも言われる簡単な暗号です。例えば、3文字をすらした場合、「a」は「d」に置き換わり「b」は「e」に置き換わります。 ![](https://i.imgur.com/Vy20YPh.png) **ヒント2**:Pythonで暗号化する際に辞書を換字表として利用できます。要は、概念としては平文(暗号化される前の文)をキー(key)にし、暗号文を値にすることで、暗号化を可能にします。 入力例1: ![](https://i.imgur.com/IUSXLM4.png) 出力例1: ![](https://i.imgur.com/0wqc2rr.png) 入力例2: ![](https://i.imgur.com/qAntJoS.png) 出力例2: ![](https://i.imgur.com/MIM19Qc.png) ![](https://i.imgur.com/U8iMw4L.png) ```python= A = int(input("何文字ずらすか入力して下さい:")) dict = {"A":"A","B":"B","C":"C","D":"D","E":"E","F":"F","G":"G","H":"H","I":"I","J":"J","K":"K","L":"L","M":"M","N":"N","O":"O","P":"P","Q":"Q","R":"R","S":"S","T":"T","U":"U","V":"V","W":"W","X":"X","Y":"Y","Z":"Z"} dict1 = dict.copy() ``` ## 3、入力した数字をモールス信号に変換するプログラムを作成してください。 以下はモール信号の一覧です。 1: .---- 2: ..--- 3: ...-- 4: ....- 5: ..... 6: -.... 7: --... 8: ---.. 9: ----. 10:----- 入力例1: ![](https://i.imgur.com/zqK2A8z.png) 出力例1: ![](https://i.imgur.com/WjAySvr.png) 入力例2: ![](https://i.imgur.com/G8l3fSK.png) 出力例2: ![](https://i.imgur.com/b3j8s7Z.png) ![](https://i.imgur.com/mZthY0h.png) ```python= i = int((input("")) list = [] while i > 0: list.append(i%10) i //= 10 list.reverse() dict = {1:" .----",2:" …—",3:"…–",} for i in range : print(dict.i) ``` ## 4. 1セット13枚のトランプ(2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A)が存在し、2名のプレイヤーがそれぞれ13枚の中からランダムに5枚引く。プレイヤーは自身で引いたトランプにある数値を全て加算(A = 1, J = 11, Q = 12, K = 13)して自身のポイントとし、プレイヤーは互いのポイントの比較を行うこと。最後にはポイントが多い方を勝者として名前を表示して、引き分けであれば「Draw」と表示すること。 ### 出力例 ``` player 1: ['3', '6', 'A', '4', '7'], Total number: 21 player 2: ['K', '5', 'J', '9', '2'], Total number: 40 Winners: player 2 player 1: ['Q', '6', '2', '10', '8'], Total number: 38 player 2: ['5', 'J', 'K', '3', 'A'], Total number: 33 Winners: player 1 ``` ```python= a = [] b = [] dict = {"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"J":11,"Q":12,"K":13,"A":1} for i in range(10): random.randent(1,13) ``` ![](https://i.imgur.com/5OCxMJn.png)