前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)電話帳プログラミングを学校の課題でつくっています
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
IndentationError : IndentationError : expected an indented blockが出てしまいました。
エラーメッセージ
IndentationError : expected an indented block
該当のソースコード
python>> 「電話帳DB」アルゴリズムのスケッチ
from sys import exit
import pickle # pickleモジュールを使う
import re # 正規表現モジュールを使う
phone = dict() # グローバル変数
def main():
global phone # グローバル変数を使うための宣言
pickleされたものがあるか調べる(step12参照)
あればphoneにloadする
なければ「初回起動」
# メインメニューを表示し、コマンド番号を受け取る while True: scenestr = input(''' # ユーザから文字列を受け取る 番号を入力してください 1:電話番号を検索 2:電話番号を登録 3:電話番号を削除 4:電話番号を一覧 0:プログラムの終了 ->''') if (not re.search(r'^[0-4]$',scenestr)): # 入力値をチェック continue scene = int(scenestr) # 整数に変換 # 各コマンドへの分岐(「マニュフォールド」) if scene == 0: 終了() elif scene == 1: 検索() elif scene == 2: 登録() elif scene == 3: 削除() elif scene == 4: 一覧()
def 終了():
# phoneをpickleする
exit()
コード
def 検索():
# ユーザーから名前を受け取る
# 電話番号を表示
pass # 関数が未実装ならこれを置いておくこと
def 登録():
global phone # ここは必須
# ユーザーから名前を受け取る
# ユーザーから電話番号を受け取る
if re.search(r'【正規表現パターン】', num): # 「電話番号として適切」かチェック
phone[name] = num
else:
# 「電話番号として不適切です」
def 削除():
# ユーザーから名前を受け取る
if (name in phone):
# del phone[name] # これは古い書き方
phone.pop(name) # こちらをお勧めする
else:
# 「その名前の番号は登録されていません」
def 一覧():
for kv in phone.items(): # キーと値のペアを1つずつ返す
k, v = kv
# ペアを表示
if name == 'main':
main()
試したこと
何度インデントを入れたり文字を打ち直しても直りません。。