Pythonはシンプルな文法で初心者にもなじみやすく、ライブラリも数多くある世界で人気のプログラミング言語です。Pythonによる数値計算からWebアプリケーション開発まで幅広い分野で利用されています。今回は、Pythonで作成できる面白いプログラムについていくつか紹介します。
目次
Python 面白いプログラム1: Webスクレイピングによる自動化
PythonはWeb上の情報収集の自動化にとても適した言語です。「自分の代わりにPC(=Pythonプログラム)が作業をしてくれる」という面白さを感じてみましょう。ここでは「Webスクレイピング」の例を紹介します。
「BeautifulSoup」というライブラリを使えば、Webサイトの情報を取得することが可能です。例えば、毎朝、自分がチェックしたいニュースサイトの見出しをPythonで自動取得して、Gmailのメールアドレスに送信してくれるプログラム例を作ってみましょう。
Python
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate
# ウェブサイトから情報を取得
url = "https://www.your-news-site.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# ニュースの見出しを取得
news_headlines = [headline.text for headline in soup.find_all('h2')]
# メールを作成
subject = "Today's Headlines"
body = "\n".join(news_headlines)
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = 'your-email@gmail.com'
msg['To'] = 'your-email@gmail.com'
msg['Date'] = formatdate()
# メールを送信
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login('your-email@gmail.com', 'your-password')
s.sendmail('your-email@gmail.com', 'your-email@gmail.com', msg.as_string())
s.close()
Python 面白いプログラム2: テキストベースのゲーム
Pythonで簡単なテキストベースのゲームを作ってみましょう。例えば、「数当てゲーム」を作ってみましょう。
Python
import random
print('「数当てゲーム」を始めます。1から10までの数を当ててください。')
answer = random.randint(1, 10)
while True:
guess = input('あなたの予想を入力してください: ')
if int(guess) == answer:
print('おめでとう!正解です!')
break
else:
print('残念、違います。再挑戦してください。')
Python 面白いプログラム3: アスキー(ASCII)アートの自動生成
最後に、文字だけで作られた絵(通称ASCIIアート)を自動生成するプログラムを作ってみましょう。Pythonのart
というライブラリを使うと簡単に作成できます。
Python
from art import *
# テキストをASCIIアートに変換
ascii_art = text2art("Python")
# 結果を表示
print(ascii_art)
以下のような結果が表示されます。
shell
____ _ _
| _ \ _ _ | |_ | |__ ___ _ __
| |_) || | | || __|| '_ \ / _ \ | '_ \
| __/ | |_| || |_ | | | || (_) || | | |
|_| \__, | \__||_| |_| \___/ |_| |_|
|___/
まとめ
以上のように、Pythonを使えば、Webスクレイピングによる情報取得や、テキストベースのゲーム、そしてASCIIアートの自動生成など、さまざまな面白いプログラムを簡単に作成することができます。Pythonの初心者は、これらの例を参考に、ぜひ自分の興味のある面白いプログラムを作ってみてください!