質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

1回答

1178閲覧

pythonでの会話Bot作成のエラー

moomo

総合スコア1

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2020/11/04 06:56

前提・実現したいこと

会話が表示できるようにしたいです。
pythonでpythonパーフェクトマスターという本を見ながらコードをうってます.

どうしてもわかりません、、宜しくおねがいします。

発生している問題・エラーメッセージ

prototype.pyでの実行結果

Ptna System prototype :ptna Traceback (most recent call last): File "prototype.py", line 10, in <module> ptna = Ptna('ptna') File "prototype.py", ltna\ptna.py", line 7, in __init__ine 10, in <module> ptna = Ptna('ptna') File "C:\Users\momom\ptna\ptna.py", line 7, in __init__ self.responder=RandomResponder('Random') NameError: name 'RandomResponder' is not defined

該当のソースコード

ptna.py↓

ptna.py

1from responder import * 2 3class Ptna: 4 def __init__(self,name): 5 self.name = name 6 7 self.responder=RandomResponder('Random') 8 def dialogue(self,input): 9 return self.responder.response(input) 10 def get_responder_name(self): 11 return self.responder.name 12 def gat_name(self): 13 return self.name 14

prototype.py↓

from ptna import * ###################################### def prompt(obj): """ docstring """ return obj.get_name()+':'+ obj.get_responder_name()+'>' print ('Ptna System prototype :ptna') ptna = Ptna('ptna') while True: inputs = input('>') if not inputs: print('ばいばい') break response = ptna.dialogue(inputs) print (prompt(ptna),response)

↓responder,py

import random class Responder: def __init__(self,name): self.name=name def response(self,input): return'' def get_name(self): return self.name class RepeatResponder(Responder): def response(self,input): return '{}ってなに?'.format(input) class RandomResponder(Responder): def __init__(self,name): super().__init__(name) self.responses =['今日もいい天気だね','',''] def response(self, input): return (random.choice(self.responses))

試したこと

誤字の確認
pip のインストールの確認 等

補足情報(FW/ツールのバージョンなど)

python3.8
vscode

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nto

2020/11/04 11:21

ptna.py内def gat_name()となっており、スペルミスとなっている様です。
guest

回答1

0

  • 「responder,py」が本当にそのファイル名だとしたら、,.に直してください。
  • ptna.pyに含まれるgat_nameは、get_nameの間違いです。

以上を修正し、これら3つのファイルを同じディレクトリにおいて、prototype.pyを実行すると、書かれた通りに動作しました。

投稿2020/11/04 13:26

編集2020/11/04 13:27
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問