Pythonインタラクティブシェルとは?初心者でもすぐに使える!

python

Pythonを学び始めたとき、こんな風に思ったことはありませんか?

  • 「コードを書いてもすぐに結果が見られない」
  • 「簡単な計算や文字列操作を試してみたい」
  • 「エラーが出たとき、どこが間違っているか確認したい」

そんなときに便利なのが Pythonインタラクティブシェル です。

インタラクティブシェルとは

  • コードを1行書いて、すぐに結果を見ることができる
  • 「対話型」とも呼ばれる
  • プログラムを書く前の実験や学習に最適
  • Pythonに最初から付いている機能

この記事では、インタラクティブシェルの使い方を初心者にも分かりやすく説明します。

スポンサーリンク

インタラクティブシェルとは?

普通のプログラムとの違い

普通のプログラムの場合

# hello.py というファイルを作る
print("こんにちは")
print(2 + 3)
# ファイルを実行
python hello.py
# 結果:
# こんにちは
# 5

インタラクティブシェルの場合

>>> print("こんにちは")
こんにちは
>>> 2 + 3
5

インタラクティブシェルのメリット

  • ファイルを作らなくても実行できる
  • 1行ずつ結果を確認できる
  • 間違えてもすぐに修正できる
  • 実験や学習に最適

どんなときに使うの?

学習時

  • 新しい文法を試すとき
  • 関数の動作を確認するとき
  • エラーの原因を調べるとき

開発時

  • 複雑な計算をちょっと試すとき
  • データの中身を確認するとき
  • ライブラリの使い方を確認するとき

インタラクティブシェルの起動方法

Windows

方法1:コマンドプロンプトから

  1. スタートメニューで「cmd」と検索
  2. コマンドプロンプトを開く
  3. python と入力してEnter

方法2:PowerShellから

  1. スタートメニューで「PowerShell」と検索
  2. PowerShellを開く
  3. python と入力してEnter

方法3:スタートメニューから直接

  1. スタートメニューで「Python」と検索
  2. 「Python 3.x」をクリック

macOS

ターミナルから起動

  1. 「アプリケーション」→「ユーティリティ」→「ターミナル」
  2. python3 と入力してEnter
# macOSの場合
python3

Linux

ターミナルから起動

# Ubuntuなどの場合
python3

起動確認

正常に起動すると、このような画面が表示されます:

Python 3.11.5 (main, Aug 24 2023, 15:18:16) [Clang 14.0.3 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

画面の見方

  • 1行目:Pythonのバージョン情報
  • 2行目:システム情報
  • 3行目:ヘルプの説明
  • >>> :これがプロンプト(入力待ち状態)

うまく起動しない場合

「’python’ は、内部コマンドまたは外部コマンド…」エラー

  • Pythonがインストールされていない
  • パスが設定されていない

解決方法

  1. Pythonの公式サイトからダウンロード:https://python.org
  2. インストール時に「Add Python to PATH」にチェック
  3. パソコンを再起動

基本的な使い方

計算をしてみる

>>> 2 + 3
5
>>> 10 - 4
6
>>> 3 * 4
12
>>> 15 / 3
5.0
>>> 2 ** 3  # 2の3乗
8
>>> 17 % 5  # 17を5で割った余り
2

文字列を使ってみる

>>> "こんにちは"
'こんにちは'
>>> name = "田中"
>>> name
'田中'
>>> "こんにちは、" + name + "さん"
'こんにちは、田中さん'
>>> name.upper()  # 大文字に変換(英語の場合)
'田中'
>>> "Hello".upper()
'HELLO'

変数を使ってみる

>>> age = 25
>>> age
25
>>> age + 5
30
>>> message = "私は" + str(age) + "歳です"
>>> message
'私は25歳です'

リストを使ってみる

>>> fruits = ["りんご", "バナナ", "みかん"]
>>> fruits
['りんご', 'バナナ', 'みかん']
>>> fruits[0]  # 最初の要素
'りんご'
>>> fruits.append("ぶどう")  # 要素を追加
>>> fruits
['りんご', 'バナナ', 'みかん', 'ぶどう']
>>> len(fruits)  # 要素数
4

便利な機能

履歴機能(上下キー)

使い方

  1. 何かコマンドを入力して実行
  2. ↑キーを押すと、前に入力したコマンドが再表示される
  3. ↓キーで逆方向に移動
>>> print("テスト1")
テスト1
>>> print("テスト2")
テスト2
>>> # ここで↑キーを押すと「print("テスト2")」が再表示される

タブ補完

使い方 文字を途中まで入力してTabキーを押すと、候補が表示されます。

>>> import math
>>> math.sq[Tab]  # Tabキーを押す
math.sqrt(
>>> math.sqrt(25)
5.0

help関数 – 使い方を調べる

>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    ...

>>> help(str.upper)
Help on method_descriptor:

upper(...)
    Return a copy of the string converted to uppercase.

日本語で簡単に調べる方法

>>> print.__doc__
"print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)"

dir関数 – 何ができるか調べる

>>> dir(str)
['__add__', '__class__', ..., 'upper', 'zfill']

>>> dir(list)
['__add__', '__class__', ..., 'append', 'clear', 'copy', ...]

# 文字列で使えるメソッドの一部
>>> text = "hello"
>>> [method for method in dir(text) if not method.startswith('_')]
['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

type関数 – データの型を調べる

>>> type(123)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type("hello")
<class 'str'>
>>> type([1, 2, 3])
<class 'list'>
>>> type({"name": "田中"})
<class 'dict'>

実践的な使用例

ライブラリを試してみる

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2024, 1, 15, 14, 30, 45, 123456)
>>> now.strftime("%Y年%m月%d日")
'2024年01月15日'

>>> import math
>>> math.pi
3.141592653589793
>>> math.sin(math.pi / 2)
1.0

>>> import random
>>> random.randint(1, 100)
42
>>> random.choice(["石", "紙", "はさみ"])
'紙'

データ分析の基本

>>> scores = [85, 92, 78, 96, 88]
>>> sum(scores)
439
>>> len(scores)
5
>>> sum(scores) / len(scores)  # 平均
87.8
>>> max(scores)
96
>>> min(scores)
78
>>> sorted(scores)
[78, 85, 88, 92, 96]

文字列操作の実験

>>> text = "  Hello, World!  "
>>> text.strip()  # 前後の空白を削除
'Hello, World!'
>>> text.lower()
'  hello, world!  '
>>> text.replace("World", "Python")
'  Hello, Python!  '
>>> text.split(",")
['  Hello', ' World!  ']

>>> words = ["Python", "は", "楽しい"]
>>> "".join(words)
'Pythonは楽しい'
>>> " ".join(words)
'Python は 楽しい'

エラーの確認と修正

>>> 1 / 0
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

>>> int("abc")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'

# エラーを修正して再試行
>>> int("123")
123

より高機能なIPython

標準のインタラクティブシェルも便利ですが、IPythonという強化版があります。

IPythonの特徴

見た目の改善

  • シンタックスハイライト(色分け)
  • より見やすい出力形式
  • 行番号の表示

機能の強化

  • より強力なタブ補完
  • コマンド履歴の改善
  • マジックコマンド

IPythonのインストール

pip install ipython

IPythonの起動

ipython

起動すると、このような画面になります:

Python 3.11.5 (main, Aug 24 2023, 15:18:16) [Clang 14.0.3 ]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.15.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 

IPythonの便利機能

マジックコマンド

In [1]: %timeit sum(range(100))
2.78 µs ± 54.9 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

In [2]: %who
# 定義済み変数の一覧

In [3]: %history
# コマンド履歴の表示

オブジェクト情報の表示

In [4]: len?
# len関数の詳細情報を表示

In [5]: list.append??
# append メソッドのソースコードを表示

Jupyter Notebookとの違い

比較表

機能インタラクティブシェルIPythonJupyter Notebook
環境ターミナルターミナルWebブラウザ
見た目シンプル色分けありリッチな表示
セル機能なしなしあり
画像表示制限あり制限あり豊富
ファイル保存履歴のみ履歴のみノートブック形式
用途簡単な実験開発・実験データ分析・レポート

Jupyter Notebookの起動

pip install jupyter
jupyter notebook

よくある問題と解決方法

問題1:シェルから抜けられない

症状

>>> # どうやって終了するの?

解決方法

>>> exit()
# または
>>> quit()
# または Ctrl+D (Linux/macOS) または Ctrl+Z → Enter (Windows)

問題2:長いコードを書きたい

症状 インタラクティブシェルでは複数行のコードが書きにくい

解決方法

>>> def greet(name):
...     return f"こんにちは、{name}さん"
... 
>>> greet("田中")
'こんにちは、田中さん'

# または、IPythonを使う

問題3:結果をファイルに保存したい

解決方法

# IPythonの場合
In [1]: %save my_session.py 1-10  # 1番目から10番目のコマンドを保存

# または、結果をファイルに出力
>>> with open('result.txt', 'w') as f:
...     print("結果", file=f)

問題4:変数を間違えて上書きしてしまった

解決方法

# 重要な変数は別名でバックアップ
>>> important_data = [1, 2, 3, 4, 5]
>>> backup = important_data.copy()

# 間違えて変更してしまった場合
>>> important_data = "間違い"
>>> important_data = backup  # 復元

実際の学習での活用法

Python学習の進め方

ステップ1:基本文法をインタラクティブシェルで試す

>>> # 変数
>>> name = "太郎"
>>> age = 20

>>> # 条件分岐
>>> if age >= 18:
...     print("大人です")
... else:
...     print("未成年です")
...
大人です

>>> # ループ
>>> for i in range(3):
...     print(f"{i}回目")
...
0回目
1回目
2回目

ステップ2:関数を試す

>>> def add(a, b):
...     return a + b
...
>>> add(3, 5)
8

>>> def factorial(n):
...     if n <= 1:
...         return 1
...     return n * factorial(n - 1)
...
>>> factorial(5)
120

ステップ3:ライブラリを探索する

>>> import json
>>> data = {"name": "田中", "age": 25}
>>> json.dumps(data, ensure_ascii=False)
'{"name": "田中", "age": 25}'

>>> import os
>>> os.getcwd()  # 現在のディレクトリ
'/Users/username'

デバッグのコツ

エラーメッセージを読む

>>> numbers = [1, 2, 3]
>>> numbers[5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

# エラーの意味:リストのインデックスが範囲外
>>> len(numbers)  # リストの長さを確認
3
>>> numbers[2]    # 正しいインデックス
3

変数の中身を確認

>>> data = {"users": [{"name": "田中"}, {"name": "佐藤"}]}
>>> data.keys()  # 辞書のキーを確認
dict_keys(['users'])
>>> data["users"][0]  # 最初のユーザー
{'name': '田中'}

まとめ

Pythonインタラクティブシェルは、Python学習と開発の強力な味方です。

覚えておくべきポイント

  • 起動方法:ターミナルで python または python3
  • 基本操作:コードを入力してEnterで実行
  • 終了方法exit() または Ctrl+D
  • 便利機能:履歴(↑↓キー)、タブ補完、help関数

効果的な使い方

  • 新しい文法を試すとき
  • エラーの原因を調べるとき
  • ライブラリの動作を確認するとき
  • 簡単な計算をするとき

基本コマンド一覧

# 起動・終了
python          # 起動
exit()          # 終了

# 情報取得
help(関数名)     # ヘルプ表示
dir(オブジェクト) # 利用可能な属性・メソッド一覧
type(変数)      # データ型確認

# IPython専用
%timeit コード   # 実行時間測定
%who           # 変数一覧
%history       # 履歴表示

コメント

タイトルとURLをコピーしました