前提・実現したいこと
「いちばんやさしいPythonの教本」のChapter7
コマンドを実行して結果を返したい。
干支を教えてくれるプログラムを作っています。
例)
コマンド 干支2000
結果 2000年生マレノ干支ハ 「辰」 デス。
コマンドを打った時に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ ```mba:python yuto$ python pybot.py pybot>平成2000 Traceback (most recent call last): File "pybot.py", line 34, in <module> command = input('pybot>') File "<string>", line 1 平成2000 ^ ### 該当のソースコード ![イメージ説明](a7e96d1cceab9c42bc88cd0f857d6583.png) _ #coding: UTF-8 from pybot_eto import eto_command def len_command(command): cmd, text = command.split() length = len(text) response = '文字列ノ長サハ {} 文字デス'.format(length) return response def heisei_command(command): heisei, year_str = command.split() year = int(year_str) if year >= 1989: heisei_year = year - 1988 response = '西暦{}年ハ、平成{}年デス'.format(year, heisei_year) else: response = '西暦{}年ハ、平成デハアリマセン'.format(year) return response command_file = open('pybot.txt') raw_data = command_file.read() command_file.close() lines = raw_data.splitlines() bot_dict = {} for line in lines: word_list = line.split(',') key = word_list[0] response = word_list[1] bot_dict[key] = response while True: **command = input('pybot> ')** ←エラー該当の34行目 response = "" for key in bot_dict: if key in command: response = bot_dict[key] break if '平成' in command: response = heisei_command(command) if '長さ' in command: response = len_command(command) if '干支' in command: response = eto_command(command) if not response: response = '何ヲ言ッテイルカ、ワカラナイ' print(response) if 'さようなら' in command: break ### 試したこと ネットで調べたり、空欄が紛れ込んでないか確認しましたが、依然としてエラーのままです。 どこが間違っているのかわからないです。 ### 補足情報(FW/ツールのバージョンなど) テキストファイルはSublimeText コマンド操作はターミナルで行なっています ここにより詳細な情報を記載してください。
インデントがなくなっていますので、ソースコードはコードブロックで囲んでください。
回答2件
あなたの回答
tips
プレビュー