
【Python初心者向け】10問の練習問題で基礎力をUPしよう!🚀
Pythonを学び始めたけれど、なかなか実践できていない...そんな方へ!
今回は、Pythonの基礎を強化するための10問の練習問題を紹介します。🎯
問題を解くことで、実際にコードを書く力がつくだけでなく、プログラミングの考え方も身につきます!
ぜひ、手を動かしながら学んでいきましょう💡
📌 本記事の内容
Pythonの基礎力を上げる10問の問題を紹介
各問題の解答例と解説つき
初心者でも理解しやすいシンプルなコード
実践的なスキルアップにつながる内容
すぐに使えるプログラミングのヒント
🏆 Python初心者向け練習問題 10選
1️⃣ 今年があと何日?
📌 問題
本日の日付を取得し、今年があと何日あるかを計算して出力してください。
✅ ヒント
datetime モジュールを使う
date.today() で今日の日付を取得
来年の1月1日との差を計算
💡 解答例
from datetime import date
today = date.today()
next_year = date(today.year + 1, 1, 1)
days_remaining = (next_year - today).days
print(f"今年はあと {days_remaining} 日")
2️⃣ リストの売上合計を計算
📌 問題
前期と後期の売上データをリストで管理し、合計売上を計算して出力してください。
✅ ヒント
リストの結合は + を使う
sum() 関数を活用
💡 解答例
first_half_sales = [100, 200, 150, 300]
second_half_sales = [250, 400, 100, 350]
total_sales = sum(first_half_sales + second_half_sales)
print(f"通年の売上合計: {total_sales}")
3️⃣ 3科目の平均点を計算
📌 問題
辞書で管理された5科目の点数から、特定の3科目(国語、数学、英語)の平均点を求める関数を作成してください。
✅ ヒント
dict のキーを使ってデータを抽出
平均を計算 (sum() / len())
💡 解答例
def calculate_average(scores):
subjects = ['国語', '数学', '英語']
selected_scores = [scores[subject] for subject in subjects]
return sum(selected_scores) / len(selected_scores)
scores = {'国語': 80, '数学': 75, '英語': 85, '理科': 90, '社会': 70}
average = calculate_average(scores)
print(f"3科目の平均点: {average}")
4️⃣ フォルダ内のCSVファイル一覧を取得
📌 問題
指定フォルダ内の .csv ファイル名をすべて取得し、一覧表示してください。
✅ ヒント
pathlib モジュールを使用
glob("*.csv") で取得
💡 解答例
from pathlib import Path
data_folder = Path("data")
csv_files = list(data_folder.glob("*.csv"))
for file in csv_files:
print(file.name)
5️⃣ 5つのテキストファイルの共通データを抽出
📌 問題
複数のテキストファイルに書かれている数値のうち、すべてのファイルに共通して存在するものを出力してください。
✅ ヒント
set(集合)を使い、積集合(&)を取る
💡 解答例
file_paths = ["file1.txt", "file2.txt", "file3.txt", "file4.txt", "file5.txt"]
common_numbers = None
for file in file_paths:
with open(file, "r") as f:
numbers = set(f.read().splitlines())
common_numbers = numbers if common_numbers is None else common_numbers & numbers
print("共通の数値:", common_numbers)
6️⃣ ログファイルから特定のエラーメッセージを抽出
📌 問題
ログファイルから特定の時間(22時台)の「WARNING」と「ERROR」メッセージだけを抽出してください。
✅ ヒント
re(正規表現)を活用
match() を使ってパターンマッチング
💡 解答例
import re
with open("app.log", "r", encoding="utf-8") as log_file:
for line in log_file:
if re.match(r"\d{4}-\d{2}-\d{2} 22:\d{2}:\d{2} \[(WARNING|ERROR)\]", line):
print(line.strip())
7️⃣ JSONデータからタイトルを取得
📌 問題
JSONファイルの中にある書籍情報から、タイトルのデータをすべて抽出してください。
✅ ヒント
json モジュールを使用
dict のキーを指定して取得
💡 解答例
import json
with open("books.json", "r", encoding="utf-8") as json_file:
data = json.load(json_file)
for book in data["books"]:
print(book["title"])
8️⃣ 2つのCSVデータを統合
📌 問題
「名前.csv」と「職業.csv」のデータを「ユーザーID」で結合し、新しいCSVファイルとして保存してください。
✅ ヒント
pandas の merge() を活用
to_csv() で出力
💡 解答例
import pandas as pd
df_names = pd.read_csv("names.csv")
df_jobs = pd.read_csv("jobs.csv")
df_merged = df_names.merge(df_jobs, on="user_id")
df_merged.to_csv("merged_data.csv", index=False)
9️⃣ 平均気温データをグラフ化
📌 問題
CSVファイルに格納された月ごとの平均気温データを、折れ線グラフで可視化してください。
✅ ヒント
pandas と matplotlib を使用
plot() メソッドで描画
💡 解答例
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("temperature.csv")
df.plot(x="month", y="temperature", marker="o", linestyle="-")
plt.title("2021年の平均気温")
plt.xlabel("月")
plt.ylabel("気温 (°C)")
plt.grid(True)
plt.savefig("temperature_chart.png")
plt.show()
🔟 Webスクレイピングで書籍リストを取得
📌 問題
特定のWebサイトに掲載されている「おすすめ書籍」のタイトルをすべて取得し、出力してください。
✅ ヒント
requests でWebページを取得
BeautifulSoup で解析し、タイトルタグを取得
💡 解答例
import requests
from bs4 import BeautifulSoup
url = "https://example.com/books"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
for book in soup.find_all("h2", class_="book-title"):
print(book.text.strip())
📚 参考ツール・資料
🔗 Python公式ドキュメント: https://docs.python.org/ja/3/
🔗 pandas公式ドキュメント: https://pandas.pydata.org/docs/
🔗 matplotlib公式ドキュメント: https://matplotlib.org/stable/contents.html 🔗 BeautifulSoup公式ドキュメント:https://www.crummy.com/software/BeautifulSoup/bs4/doc/
✍️ まとめ
今回の10問を解くことで、Pythonの基本的なスキルを身につけられます!✨
「プログラミングは実践が大事!」
ぜひ、手を動かしながら学習を進めてみてくださいね!📖💻
今後もPythonに関する学習記事を投稿していくので、フォロー&コメントお待ちしています😊