paizaラーニングのレベルアップ問題集「Bランクレベルアップセット」からの出典です。
paiza.jp
Pythonによる「占い」問題集と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・STEP: 1 連想配列(辞書)を使う
「ユーザー」と「ユーザーに対応する血液型」を連想配列(辞書)として定義して、それらのキーと値のペアを順に出力してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い STEP: 1 連想配列(辞書)を使う https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 dic = {"Kyoko":"B", "Rio":"O", "Tsubame":"AB", "KurodaSensei":"A", "NekoSensei":"A"} for k, v in dic.items(): print(k, v)
・STEP: 2 ユーザーの血液型のデータ処理
n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
そのあとで連想配列(辞書)をそのまま表示してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い STEP: 2 ユーザーの血液型のデータ処理 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 dic = {} n = int(input()) for i in range(n): foo, bar = input().split() dic[foo] = bar for k, v in dic.items(): print(k, v)
・STEP: 3 1人の血液型
1行目でユーザーが1つ与えられます。
n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
その連想配列(辞書)の中で1行目で与えられたユーザー名と、ユーザー名に対応する血液型を表示してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い STEP: 3 1人の血液型 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 dic = {} s = input() n = int(input()) for i in range(n): foo, bar = input().split() dic[foo] = bar print(s, dic[s])
・STEP: 4 1つの血液型を占う
1行目で血液型が1つ与えられます。
m 行の血液型と占い結果の組が与えられるので、血液型をキー、占い結果を値として、連想配列(辞書)に保存してください。
その後、1行目で与えられた血液型に対応する占い結果を表示してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い STEP: 4 1つの血液型を占う https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 dic = {} t = input() m = int(input()) for i in range(m): foo, bar = input().split() dic[foo] = bar print(dic[t])
・STEP: 5 1人の占い結果
最初に「ユーザー」 U が1つ与えられます。
続いて n 人の「ユーザー」と「ユーザーに対応する血液型」が与えられます。
続いて m 種類の「血液型」と「血液型に対応する占い結果」が与えられます。
与えられたユーザー U に対応する占い結果を表示してください。
入力例の1つ目は、ユーザーの血液型についてのラッキーカラーの占いです。
入力例の2つ目は、ユーザーの星座についてのラッキーパーソンの占いになっています。
「血液型」として「星座」などのさまざまな文字列を利用できるようにすることで、他の占いにも対応する必要があることに注意してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い STEP: 5 1人の占い結果 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 U = input() dic1 = {} n = int(input()) for i in range(n): foo, bar = input().split() dic1[foo] = bar dic2 = {} m = int(input()) for i in range(m): foo, bar = input().split() dic2[foo] = bar ans = dic1[U] print(dic2[ans])
・FINAL問題: 占い
「ユーザー」と「ユーザーに対応する血液型」、「血液型」と「血液型に対応する占い結果」が与えられます。
それぞれのユーザーに対応する占い結果を表示してください。
入力例の1つ目は、ユーザーの血液型についてのラッキーカラーの占いです。
入力例の2つ目は、ユーザーの星座についてのラッキーパーソンの占いになっています。
「血液型」として「星座」などのさまざまな文字列を利用できるようにすることで、他の占いにも対応する必要があることに注意してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 占い FINAL問題: 占い https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 dic1 = {} n = int(input()) for i in range(n): foo, bar = input().split() dic1[foo] = bar dic2 = {} m = int(input()) for i in range(m): foo, bar = input().split() dic2[foo] = bar for k in dic1.keys(): ans = dic1[k] print(k, dic2[ans])
連想配列(辞書)についての問題です。
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。