【実践チャレンジその1】
第1章の学習お疲れ様でした! ここまでの知識を使って、簡単な課題に挑戦してみましょう。
課題:プロフィール画面を完成させよう
Section titled “課題:プロフィール画面を完成させよう”下の画面を見てください。「エンジニアプロフィール」というアプリですが、すべて st.write() だけで書かれているため、非常に見づらい状態です。
このコードをブラウザ上で直接書き換えて、以下の要件を満たすアプリに作り変えてください。
- タイトル:
st.title()を使って大きく表示する。 - 表データ:
st.dataframe()を使って、スキル一覧を表として表示する(pandasのDataFrameを使うこと)。 - 指標:
st.metric()を使って、学習時間をかっこよく表示する。
プレイグラウンド
Section titled “プレイグラウンド”コードを編集して Ctrl + Enter (または Cmd + Enter) を押すと、右側のプレビューに反映されます。
間違えても「リセット」ボタンで最初に戻せるので、自由に試してください!
思うように動きましたか? 以下は解答の一例です。
クリックして解答コードを見る
import streamlit as stimport pandas as pd
# 1. タイトルで見出しを強調st.title("エンジニア プロフィール")
st.write("---")
# 2. データフレームで見やすく表示st.subheader("▼ スキル一覧")
# 辞書をデータフレームに変換df = pd.DataFrame({ "言語": ["Python", "TypeScript", "SQL"], "レベル": ["得意", "勉強中", "普通"], "経験年数": [3, 1, 2]})st.dataframe(df)
st.write("---")
# 3. メトリックで数値を強調st.subheader("学習状況")st.metric(label="今月の学習時間", value="45時間", delta="+12時間")実行結果はこのようになります。
- 情報の強弱: アプリ作りにおいて「何が重要か」を伝えるのは大切です。タイトルは大きく、本文は普通に、と使い分けましょう。
- データの可視化: Pythonの辞書型(Dictionary)は見づらいですが、
pd.DataFrameに変換してst.dataframeに渡すだけで、ソート可能な綺麗な表になります。 - KPIの強調: 数値の変化を見せたい時は
st.metricが最適です。
これで第1章は完了です。次はボタンや入力フォームを使って、ユーザーと対話するアプリを作っていきましょう!